<?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: Andre Machado</title>
    <description>The latest articles on DEV Community by Andre Machado (@andre_machado_8fc24c08a8e).</description>
    <link>https://dev.to/andre_machado_8fc24c08a8e</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3882029%2F63405bfa-8372-4297-9ba6-7e0c11577f32.png</url>
      <title>DEV Community: Andre Machado</title>
      <link>https://dev.to/andre_machado_8fc24c08a8e</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/andre_machado_8fc24c08a8e"/>
    <language>en</language>
    <item>
      <title>Claude Code Changed How I Work as a Senior .NET Developer — Here's What Actually Changed</title>
      <dc:creator>Andre Machado</dc:creator>
      <pubDate>Thu, 16 Apr 2026 09:06:41 +0000</pubDate>
      <link>https://dev.to/andre_machado_8fc24c08a8e/claude-code-changed-how-i-work-as-a-senior-net-developer-heres-what-actually-changed-e88</link>
      <guid>https://dev.to/andre_machado_8fc24c08a8e/claude-code-changed-how-i-work-as-a-senior-net-developer-heres-what-actually-changed-e88</guid>
      <description>&lt;p&gt;I've been a .NET developer for over 20 years. I've seen every wave of tooling come and go — ReSharper, CodeRush, Visual Studio IntelliSense improvements, and more recently, every AI coding tool that's launched in the past two years.&lt;/p&gt;

&lt;p&gt;My honest reaction to most of them: mildly useful. Faster autocomplete. Less typing. Not a paradigm shift.&lt;/p&gt;

&lt;p&gt;Claude Code is different. And I want to explain exactly why — not with marketing language, but with a concrete example from real production work.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Autocomplete Ceiling
&lt;/h2&gt;

&lt;p&gt;Most AI coding tools are sophisticated autocomplete engines. GitHub Copilot, Tabnine, Codeium — they predict the next line, the next block, sometimes the next function. Useful for boilerplate. But they hit a ceiling fast.&lt;/p&gt;

&lt;p&gt;Here's what autocomplete &lt;strong&gt;cannot&lt;/strong&gt; do:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Read your ticket, understand the business context, and decide &lt;em&gt;which&lt;/em&gt; files need to change&lt;/li&gt;
&lt;li&gt;Notice that your &lt;code&gt;UserService&lt;/code&gt; violates the Single Responsibility Principle before you even ask&lt;/li&gt;
&lt;li&gt;Write the migration, the handler, the tests, the DTO, and the controller endpoint as a coherent whole — not one line at a time&lt;/li&gt;
&lt;li&gt;Run your tests, see that two are failing, diagnose why, fix the implementation, and report back&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These tasks require &lt;strong&gt;agency&lt;/strong&gt; — the ability to take a goal, form a plan, execute steps, observe results, and adjust.&lt;/p&gt;

&lt;p&gt;Claude Code is an agent. That's the distinction that matters.&lt;/p&gt;




&lt;h2&gt;
  
  
  What "Agentic Coding" Actually Means in Practice
&lt;/h2&gt;

&lt;p&gt;The difference comes down to what you hand off: a &lt;strong&gt;task&lt;/strong&gt; vs. a &lt;strong&gt;goal&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A task:&lt;/strong&gt; &lt;em&gt;"Write a MediatR handler for creating a user."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A goal:&lt;/strong&gt; &lt;em&gt;"Implement the CreateUser feature. Validate that the email is unique, hash the password with BCrypt, save to the database, and send a welcome email via the existing &lt;code&gt;IEmailService&lt;/code&gt;."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;With a task, you're still the programmer. You break down the work, delegate pieces, assemble the result.&lt;/p&gt;

&lt;p&gt;With a goal, Claude Code becomes the programmer. It reads your existing codebase to understand your conventions. It finds &lt;code&gt;IEmailService&lt;/code&gt; on its own. It checks how you've written other handlers to match the pattern. It writes the handler, the command, the validator, the tests. It runs the tests. If something fails, it investigates and fixes. It reports back when done.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You shift from doing to reviewing.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  A Real Before/After
&lt;/h2&gt;

&lt;p&gt;Let me make this concrete. Here's a typical feature in a clean architecture .NET project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The ticket:&lt;/strong&gt; &lt;em&gt;"Add the ability for users to update their billing address."&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Before Claude Code
&lt;/h3&gt;

&lt;p&gt;You open your IDE. You create &lt;code&gt;UpdateBillingAddressCommand.cs&lt;/code&gt;. You write the command properties. You create the handler, inject dependencies, implement validation logic. You remember the security check — the user can only update &lt;em&gt;their own&lt;/em&gt; billing address. You add that. You write five test cases. Run them, fix two failures. Update the controller. Add the DTO. Write an integration test. Submit the PR.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Total time: 3–4 hours.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  After Claude Code
&lt;/h3&gt;

&lt;p&gt;You open Claude Code and type:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Implement UpdateBillingAddress. Follow our existing clean architecture patterns. 
See UpdateUserNameCommand for reference. Make sure the user can only update 
their own billing address. Include unit tests.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You go get a coffee.&lt;/p&gt;

&lt;p&gt;You come back. Claude Code has:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Read &lt;code&gt;UpdateUserNameCommand&lt;/code&gt; and all the files it touches&lt;/li&gt;
&lt;li&gt;Replicated the pattern exactly&lt;/li&gt;
&lt;li&gt;Written the command, handler, validator, DTO, controller update&lt;/li&gt;
&lt;li&gt;Written twelve test cases (including edge cases you hadn't specified)&lt;/li&gt;
&lt;li&gt;Run the tests — eleven pass, one fails because the test database setup is slightly different for address entities&lt;/li&gt;
&lt;li&gt;Diagnosed the issue and fixed it&lt;/li&gt;
&lt;li&gt;Handed you a clean result to review&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Total time: 15–20 minutes of your time. 20 minutes of Claude Code running autonomously.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's not an exaggeration. That's what &lt;strong&gt;well-configured&lt;/strong&gt; agentic coding looks like on a clean architecture .NET project.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Seniors Benefit More Than Juniors
&lt;/h2&gt;

&lt;p&gt;This feels counterintuitive. Shouldn't juniors gain more from automation?&lt;/p&gt;

&lt;p&gt;In practice, it's the opposite — for a specific reason.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI coding tools amplify judgment, not speed.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A junior developer using Claude Code will produce more code faster. But they'll also accept wrong code faster. They'll approve hallucinated patterns, miss architectural implications, and fail to notice when Claude Code is confidently solving the wrong problem.&lt;/p&gt;

&lt;p&gt;A senior developer brings twenty years of pattern recognition. You know what a clean architecture violation looks like. You know when a solution is technically correct but operationally wrong. You know the difference between code that works in development and code that survives production.&lt;/p&gt;

&lt;p&gt;Claude Code gives you the ability to act on that knowledge at a speed that was previously impossible.&lt;/p&gt;

&lt;p&gt;A large-scale refactor — say, moving from .NET 6 to .NET 8 across a big codebase — might take a junior months. A senior with Claude Code: weeks of directed, supervised automation. Your judgment sets the direction. Claude Code does the execution. You review and steer.&lt;/p&gt;

&lt;p&gt;That's not 2x. It's closer to 5–10x on the right tasks.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why .NET Is a Perfect Match
&lt;/h2&gt;

&lt;p&gt;Claude Code is language-agnostic, but .NET has three properties that make it particularly well-suited to agentic coding.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Strong conventions create strong context.&lt;/strong&gt; Clean architecture is highly conventional — a pattern for repositories, handlers, DTOs, validators. Once Claude Code reads a few of your existing files, it understands your whole project's conventions and applies them consistently. A codebase without conventions is chaos for an AI agent. A well-structured .NET solution is a template it can replicate accurately at scale.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verbosity becomes an asset.&lt;/strong&gt; C# is verbose. A &lt;code&gt;CreateUserCommandHandler&lt;/code&gt; involves a command class, handler, validator, result type, unit tests, integration tests, and probably two DTOs. Writing all that by hand is tedious — but it's &lt;em&gt;predictable&lt;/em&gt;. And predictability is exactly what Claude Code excels at. The boilerplate that slows you down in manual development becomes an advantage here.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test culture pays dividends.&lt;/strong&gt; .NET teams tend to write tests. That's huge, because tests are how the agent verifies its own work. When Claude Code generates a handler and the tests fail, it can debug autonomously. Without tests, you lose that feedback loop. If your team already practices TDD or writes comprehensive tests, you'll get dramatically more value from Claude Code than a team that doesn't.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Mindset Shift
&lt;/h2&gt;

&lt;p&gt;The hardest part isn't the setup. It's the mental model.&lt;/p&gt;

&lt;p&gt;Senior developers are good at writing code. That skill took years. There's something uncomfortable about delegating it.&lt;/p&gt;

&lt;p&gt;But think about the most effective technical leaders you've known. They don't spend their days writing code. They make decisions, set direction, review work, solve hard problems that require judgment. They're more valuable when directing than when typing.&lt;/p&gt;

&lt;p&gt;Claude Code lets you operate at that level even when you're working alone.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Your job is no longer to write correct code. Your job is to define correct goals and verify correct outcomes.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Writing clear, contextual prompts with enough information for Claude Code to succeed&lt;/li&gt;
&lt;li&gt;Reviewing output critically — not just checking if it compiles&lt;/li&gt;
&lt;li&gt;Maintaining a &lt;code&gt;CLAUDE.md&lt;/code&gt; file that encodes your project's conventions&lt;/li&gt;
&lt;li&gt;Knowing when to let Claude Code run and when to intervene&lt;/li&gt;
&lt;li&gt;Building test coverage that gives Claude Code a reliable feedback loop&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What Claude Code Is Not
&lt;/h2&gt;

&lt;p&gt;Honest expectations matter.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It's not infallible.&lt;/strong&gt; It will confidently write wrong code. It will miss business logic that isn't in the codebase. You are still the engineer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It's not free.&lt;/strong&gt; API tokens cost real money. A typical feature implementation costs roughly $0.10–$0.30 in tokens. Large refactors can run $1–2. Calibrating when to go agentic vs. just writing it yourself is a skill you develop.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It's not magic for messy codebases.&lt;/strong&gt; If your project has no consistent patterns, no tests, and no clear architecture, Claude Code will amplify the chaos. This is actually a good forcing function — using it effectively pushes you toward cleaner code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It has no memory between sessions.&lt;/strong&gt; Every session starts fresh. This is why your &lt;code&gt;CLAUDE.md&lt;/code&gt; file matters so much — it's the context Claude Code needs to work well on your project every time.&lt;/p&gt;




&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;

&lt;p&gt;If you want to try this today, here's the minimum viable setup:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Install Claude Code: &lt;code&gt;npm install -g @anthropic-ai/claude-code&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Open your .NET solution directory in the terminal&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;claude&lt;/code&gt; to start a session&lt;/li&gt;
&lt;li&gt;Create a &lt;code&gt;CLAUDE.md&lt;/code&gt; file at the root of your solution with your architecture conventions, tech stack, and naming patterns&lt;/li&gt;
&lt;li&gt;Give it a real goal — not "write this function", but "implement this feature following our existing patterns"&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The &lt;code&gt;CLAUDE.md&lt;/code&gt; file is the single most important thing that determines output quality. The more specific you are about your conventions, the better Claude Code matches your codebase.&lt;/p&gt;




&lt;h2&gt;
  
  
  Going Deeper
&lt;/h2&gt;

&lt;p&gt;I've been using Claude Code daily on real ASP.NET Core + Azure + MediatR stacks for months, and I've compiled everything I've learned into a handbook specifically for senior .NET developers.&lt;/p&gt;

&lt;p&gt;It covers setup and CLAUDE.md configuration, real workflows for clean architecture and EF Core, Azure and CI/CD automation, agentic refactoring, and 44 copy-paste prompts for the most common .NET tasks.&lt;/p&gt;

&lt;p&gt;Early access is open now at $19 (goes to $49 when the complete book ships in ~4 weeks):&lt;br&gt;
👉 &lt;a href="https://andremachadodev.gumroad.com/l/glncvz" rel="noopener noreferrer"&gt;Claude Code for .NET Developers&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Early buyers get Chapter 1 immediately + an exclusive 10-prompt bonus pack.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Questions about Claude Code for .NET? Drop them in the comments — happy to dig into specifics.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>dotnet</category>
      <category>csharp</category>
      <category>ai</category>
      <category>claude</category>
    </item>
  </channel>
</rss>
