Skip to main content

Command Palette

Search for a command to run...

DHH Stopped Writing Code by Hand — And What That Means for You as a MERN Developer

Updated
•7 min read•View as Markdown
DHH Stopped Writing Code by Hand — And What That Means for You as a MERN Developer
N
Love to code, gaming. And I use vim btw.

When David Heinemeier Hansson — the guy who built Ruby on Rails, the framework that showed a whole generation what elegant web development could look like — announces that he hasn't written a single line of code by hand since March 2026, you pay attention. Not because he's always right, but because when someone with 25+ years of craft-level programming experience makes that call, it's worth sitting with for a minute.

This isn't a "AI will replace developers" post. It's more honest than that.


What DHH Actually Said

On September 25th, 2026, DHH announced that he's been relying entirely on AI tools for his coding work. The quote that stuck with people was: "English is a better programming language" for his current workflow.

He's not retired. He's still shipping. He's still making technical decisions. He's just stopped typing the code himself.

This is different from the usual AI hype take. DHH has historically been skeptical of hype — the man wrote a whole book called "It Doesn't Have to Be Crazy at Work." So when someone like him makes this kind of shift, it's worth taking seriously rather than dismissing.


The Shift: From Writing Code to Describing Intent

Here's what I think is actually happening under the hood.

For most of us who learned to code the traditional way, there's a mental model that goes like: think in concepts → translate into code → debug the translation. The actual "writing code" part is the translation step, and it's surprisingly lossy. You have a clear idea of what you want, and then you spend time wrestling with syntax, boilerplate, and the particular quirks of whatever framework you're in.

What AI coding tools are doing — at least the better ones in 2026 — is compressing that translation step. You describe what you want in plain language, and you get something close to it. You still need to verify it, refine it, understand it. But the mechanical part? A lot of it is offloaded.

For a MERN developer, this plays out in ways you've probably already noticed:

  • Writing Mongoose schemas and Express route handlers used to be repetitive boilerplate. Now you describe the shape of the data and the endpoint behavior, and you get 80% of it instantly.

  • React component patterns — a paginated data table, an infinite scroll list, a form with validation — these are solved problems. Describing them is faster than typing them.

  • The Node.js glue code between services, the middleware chains, the error handling wrappers — all of this is stuff an AI gets right most of the time.

The interesting work — the architectural decisions, the tradeoffs, the "should this be a separate service or stay in the monolith" questions — that's still entirely human territory. And actually, it gets more of your attention when you're not spending mental energy on the mechanical parts.


The Honest Skeptical Take

Look, I don't think everyone should stop writing code tomorrow. And I'd push back on "English is a better programming language" as a universal truth.

English is ambiguous in ways that code isn't. That ambiguity is sometimes a feature — it lets you think at a higher level. But it's also sometimes a bug — you think you described something clearly and the AI gives you something subtly wrong that passes your initial review. For anything security-related, performance-critical, or deeply stateful, you still need to be able to read, understand, and reason about the actual code.

The risk that I see with going all-in the DHH way — especially for developers who are earlier in their career — is that you can ship things you don't actually understand. That catches up with you. The weird production bug at 2am that requires you to actually read stack traces and understand what your event loop is doing — AI can help with that too, but you still need to know enough to guide it.


A Practical Middle Path for MERN Developers

Here's how I'd think about integrating this into your actual workflow without going full DHH:

Let AI own the boilerplate, own the architecture yourself. Your Express app structure, your MongoDB indexing strategy, your React state management decisions — keep those in your head. Let AI write the individual handlers.

Use AI as a first draft, not a final answer. Especially on the backend. Node.js async patterns, connection pooling, error propagation — these matter, and an AI can get them subtly wrong in ways that only show up under load.

Build your "English is code" skills intentionally. Describing what you want precisely is actually a skill. The better you get at it, the better your AI output. Writing clear specs, clear comments, clear PR descriptions — these translate directly into getting better results from AI tools.

Keep reading code, even if you're not writing it. The developers who are going to thrive in an AI-assisted workflow are the ones who can tell good code from bad code on sight. That comes from having read a lot of both.

// Old workflow: write it yourself
const getUserWithPosts = async (userId) => {
  const user = await User.findById(userId).lean();
  if (!user) throw new AppError('User not found', 404);
  const posts = await Post.find({ author: userId })
    .sort({ createdAt: -1 })
    .limit(10)
    .lean();
  return { ...user, posts };
};

// AI-assisted workflow: you describe the intent
// "Get user by ID with their 10 most recent posts, 
//  throw a 404 AppError if not found, use lean() for performance"
// → AI generates the above, you review and ship

The thing is — the intent description is the hard part. The typing was never really the bottleneck.


What This Means for the Industry (And Your Career)

DHH's announcement, whether you agree with his approach or not, is a signal. The developers who are going to be in demand going forward aren't the ones who can type code fastest. They're the ones who can think clearly about systems, make good architectural decisions, catch AI mistakes before they ship, and describe problems precisely enough to get useful AI output.

If you're a MERN developer today, those skills are worth doubling down on. Know your MongoDB query planner. Understand why your React renders are happening and when to stop them. Know what your Node.js event loop is doing when you await something. These aren't things AI will replace — they're the foundation that makes AI useful instead of dangerous.

The craft isn't going away. It's just moving upstream.


Wrapping Up

DHH stopping manual coding is a headline, but the real story is more subtle: the definition of what "doing the work" means as a developer is shifting. Fast. And MERN developers are in an interesting spot — your stack is AI-friendly (lots of training data, well-understood patterns), which means the boilerplate really is mostly solvable. That frees you up to focus on the parts that actually require judgment.

That's a good deal, if you take it seriously.

What's your current AI-to-manual ratio in your day-to-day work? I'm curious where other MERN devs are landing on this.


Sources: LLM Stats - AI News September 2026