<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Nicholas Masters</title>
    <description>The latest articles on DEV Community by Nicholas Masters (@discgolfdev).</description>
    <link>https://dev.to/discgolfdev</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3300797%2F1099b944-5ba2-47bf-9eeb-67e4b570a7d6.png</url>
      <title>DEV Community: Nicholas Masters</title>
      <link>https://dev.to/discgolfdev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/discgolfdev"/>
    <language>en</language>
    <item>
      <title>Graph Engineering: Stop Thinking in Steps, Start Mapping Dependencies</title>
      <dc:creator>Nicholas Masters</dc:creator>
      <pubDate>Mon, 10 Aug 2026 18:45:13 +0000</pubDate>
      <link>https://dev.to/discgolfdev/graph-engineering-stop-thinking-in-steps-start-mapping-dependencies-bm2</link>
      <guid>https://dev.to/discgolfdev/graph-engineering-stop-thinking-in-steps-start-mapping-dependencies-bm2</guid>
      <description>&lt;p&gt;I learned about graph engineering this week.&lt;/p&gt;

&lt;p&gt;I expected another hyped-up AI framework.&lt;/p&gt;

&lt;p&gt;Instead, I found a simple idea that I now can’t stop seeing everywhere.&lt;/p&gt;

&lt;p&gt;It started with the platform I’m currently building.&lt;/p&gt;

&lt;p&gt;I was working on the dashboard the same way I normally work through any problem. I’m a list guy. I take the feature, problem, or issue in front of me and break it into smaller chunks of executable work.&lt;/p&gt;

&lt;p&gt;Then I work through them one at a time.&lt;/p&gt;

&lt;p&gt;It looks something like this…&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Determine what data the dashboard needs&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Define the API contracts and fetching strategy&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Decide how the data should be presented&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Break the work into an execution plan&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each step depends on the work that came before it. Finish one, move to the next.&lt;/p&gt;

&lt;p&gt;I’ve worked this way for so long that it feels efficient. And to be fair, I’ve gotten pretty fast at it.&lt;/p&gt;

&lt;p&gt;But learning about graph engineering made me realize there was another way to structure the same work.&lt;/p&gt;

&lt;p&gt;Let me show you what changed.&lt;/p&gt;

&lt;p&gt;Instead of asking:&lt;/p&gt;

&lt;p&gt;“What are the steps?”&lt;/p&gt;

&lt;p&gt;I started asking:&lt;/p&gt;

&lt;p&gt;“What actually depends on what?”&lt;/p&gt;

&lt;p&gt;That sounds like a small distinction.&lt;/p&gt;

&lt;p&gt;It isn’t.&lt;/p&gt;

&lt;p&gt;Because my original list implies a dependency that may not actually exist.&lt;/p&gt;

&lt;p&gt;For example, do I really need to finish the entire data strategy before thinking about how the dashboard should present information?&lt;/p&gt;

&lt;p&gt;Not necessarily.&lt;/p&gt;

&lt;p&gt;Once I know the questions the dashboard needs to answer, several pieces of work can begin independently.&lt;/p&gt;

&lt;p&gt;I can inspect the available data.&lt;/p&gt;

&lt;p&gt;I can sketch the information hierarchy.&lt;/p&gt;

&lt;p&gt;I can define loading, empty, and error states.&lt;/p&gt;

&lt;p&gt;I can investigate existing API patterns.&lt;/p&gt;

&lt;p&gt;I can think through what belongs in summary cards versus charts versus tables.&lt;/p&gt;

&lt;p&gt;Those are separate nodes of work.&lt;/p&gt;

&lt;p&gt;Some depend on the same input, but they don’t necessarily depend on each other.&lt;/p&gt;

&lt;p&gt;That changes the shape of the problem.&lt;/p&gt;

&lt;p&gt;My list looked roughly like this:&lt;/p&gt;

&lt;p&gt;A → B → C → D&lt;/p&gt;

&lt;p&gt;A graph might look more like:&lt;/p&gt;

&lt;p&gt;A → B → D&lt;br&gt;&lt;br&gt;
A → C → D&lt;/p&gt;

&lt;p&gt;B and C can happen independently.&lt;/p&gt;

&lt;p&gt;D waits for both.&lt;/p&gt;

&lt;p&gt;And once I saw that, I realized how much of my normal workflow is accidentally sequential.  &lt;/p&gt;

&lt;p&gt;Not because the work has to happen that way.&lt;br&gt;&lt;br&gt;
Because a list makes it look like it does.&lt;/p&gt;

&lt;p&gt;This becomes especially interesting when AI agents enter the picture.&lt;/p&gt;

&lt;p&gt;If I give one agent a task list, it will usually work through that list much like I do.&lt;/p&gt;

&lt;p&gt;Step one.&lt;/p&gt;

&lt;p&gt;Then step two.&lt;/p&gt;

&lt;p&gt;Then step three.&lt;/p&gt;

&lt;p&gt;The model may be fast, but the structure is still sequential.&lt;/p&gt;

&lt;p&gt;Graph engineering moves some of the intelligence out of the individual task and into the structure around the tasks.&lt;/p&gt;

&lt;p&gt;You define units of work as nodes.&lt;/p&gt;

&lt;p&gt;You define real dependencies as edges.&lt;/p&gt;

&lt;p&gt;Then work that shares an input, but not a dependency on each other, can happen independently.&lt;/p&gt;

&lt;p&gt;For the dashboard, I could have one branch analyzing the data model while another works through the UI states.&lt;/p&gt;

&lt;p&gt;A third could inspect the existing codebase for reusable components.&lt;/p&gt;

&lt;p&gt;Another could define acceptance criteria.&lt;/p&gt;

&lt;p&gt;They don’t need four completely isolated copies of the project.&lt;/p&gt;

&lt;p&gt;They need the right context, a clear responsibility, and an explicit understanding of what their output unlocks next.&lt;/p&gt;

&lt;p&gt;When those branches finish, their outputs can converge into the implementation work.&lt;/p&gt;

&lt;p&gt;That’s the part that clicked for me.&lt;/p&gt;

&lt;p&gt;Graph engineering isn’t really about making a fancy diagram.&lt;/p&gt;

&lt;p&gt;It’s about being precise about dependency.&lt;/p&gt;

&lt;p&gt;Once those dependencies are explicit, you can see the critical path.&lt;/p&gt;

&lt;p&gt;You can see where parallel work is possible.&lt;/p&gt;

&lt;p&gt;You can isolate failures.&lt;/p&gt;

&lt;p&gt;You can rerun one branch without restarting everything.&lt;/p&gt;

&lt;p&gt;And you can give specialized agents smaller contexts instead of asking one agent to carry the entire problem around in its head.&lt;/p&gt;

&lt;p&gt;I’m still early in experimenting with this, and I don’t think every problem needs a graph.&lt;/p&gt;

&lt;p&gt;Sometimes A → B → C is exactly right.&lt;/p&gt;

&lt;p&gt;Adding branches, agents, state, and orchestration to a simple task can easily create more complexity than it removes.&lt;/p&gt;

&lt;p&gt;But for larger engineering problems, I’m starting to think the shape of the work matters almost as much as the quality of the individual instructions.&lt;/p&gt;

&lt;p&gt;For years, my default has been:&lt;/p&gt;

&lt;p&gt;Make a list.&lt;/p&gt;

&lt;p&gt;Order the list.&lt;/p&gt;

&lt;p&gt;Execute the list.&lt;/p&gt;

&lt;p&gt;Now I’m adding another step before that:&lt;/p&gt;

&lt;p&gt;Map the dependencies.&lt;/p&gt;

&lt;p&gt;Because sometimes the fastest way through a problem isn’t getting better at completing the list.&lt;/p&gt;

&lt;p&gt;It’s realizing the list was never a list in the first place.&lt;/p&gt;

&lt;p&gt;It was a graph.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>webdev</category>
    </item>
    <item>
      <title>From Pro Disc Golf to Code: My Journey to Become a Full-Stack Developer</title>
      <dc:creator>Nicholas Masters</dc:creator>
      <pubDate>Wed, 02 Jul 2025 14:06:37 +0000</pubDate>
      <link>https://dev.to/discgolfdev/from-pro-disc-golf-to-code-my-journey-to-become-a-full-stack-developer-41a</link>
      <guid>https://dev.to/discgolfdev/from-pro-disc-golf-to-code-my-journey-to-become-a-full-stack-developer-41a</guid>
      <description>&lt;p&gt;A year ago I was walking new construction homes as a field manager. I managed the installation of tile wood and carpet in new construction homes. It’s served my family and I well, and put me in situations of self growth I would have never gotten otherwise. But I hit a wall and upward mobility was stagnant. Before I was a field manager I was a professional disc golfer. It was always an adventure, I got to tour the country playing tournaments and teaching clinics. That era instilled in me a deep understanding of planning, discipline, and the power of creating systems to excel.&lt;/p&gt;

&lt;p&gt;Current day… I am obsessed with coding. My mind is always buzzing with what I am currently learning, and what technical puzzle I am solving at the time. This passion ignited on a whim last year. I was sent a link to web development coding bootcamp from a family friend. In a whirlwind I called my amazingly supportive wife, and within 20 minutes I was enrolled in the bootcamp. Class started that same day. I had a buzzing in my body, that had me excited and scared all at the same time. &lt;/p&gt;

&lt;p&gt;The challenges, the creativity, and the complex problem-solving drove me to fall deep into coding. This post marks the beginning of me sharing my journey. From fairway to construction site to becoming a full stack developer. &lt;/p&gt;

&lt;p&gt;Graduating bootcamp last June, the pressure to secure a job intensified with our first child due in February. Despite relentless effort, not a single interview materialized between June and August. Providing for my family meant "biting the bullet" and returning to construction. It felt like taking a quadruple bogey on the tournament's final hole, but just like in disc golf, mental resilience became key. I pivoted. I recognized my skills weren't "up to snuff," especially with AI raising the industry bar. My love for coding made the decision clear: Rise and grind.&lt;/p&gt;

&lt;p&gt;That "quadruple bogey" taught me not to let one bad hole ruin the entire round. I went back into the lab and re-evaluated my coding habits and systems, realizing there was immense room for improvement. The "get rich quick" mentality wasn't working. My focus shifted to a long-term, sustainable journey of growth.&lt;/p&gt;

&lt;p&gt;One year into this revised plan, I'm already seeing progress. I'm currently interning, building the syllabus website for the very bootcamp I attended – a full-circle moment. This valuable experience, coupled with freelance work and my dedicated side project, is where I'm gaining real-world skills. My current side project, a Disc Golf Course and Round Tracker, directly reinforces my internship learnings in PHP and SQL, allowing me to immediately apply and practice what I'm currently using.&lt;/p&gt;

&lt;p&gt;While PHP and SQL aren't my primary languages, this hands-on experience has been truly eye-opening, revealing just how much React streamlines development under the hood. Building reusable OOP components in PHP has definitely made me itch to return to React's ecosystem! Once this internship concludes, my focus shifts to an even bigger project I'm eager to tackle: a MERN stack application.&lt;/p&gt;

&lt;p&gt;The road from professional disc golf and construction management to becoming a full-stack developer is proving to be a true test of grit and adaptability. It's a journey I'm embracing fully, learning new languages and paradigms with every step. I'm committed to building a solid portfolio and making this career transition a success. Through this blog, I aim to share the raw, unfiltered experience the “aces” and the "bogeys"  if you will. I hope to connect with others on a similar path. Join me as I continue to build, learn, and grow in the world of web development.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>career</category>
      <category>learning</category>
    </item>
  </channel>
</rss>
