Reza Ghafari

I Don't Write Code Anymore (And I've Never Been More Productive)

Here is a look at my career history from the lens of IDEs and languages:

  • The Early Days: I don’t even remember the names of my first IDEs. I started out writing machine code and assembly.
  • GW Basic: My first steps into higher-level logic. Microsoft had an IDE.
  • C/C++ & Others: I moved to Visual C++ and C++, while also doing some C, Fortran, and Pascal along the way. They all had some flimsy IDE.
  • The Java Era: When I entered the enterprise trenches with Java and Java Beans, the IDE landscape was wild. I started with NetBeans and Oracle IDE, eventually jumping into Eclipse, and finally ending up with IntelliJ.
  • The Modern Editor: Eventually, like many others, migrated towards a lighter stack and partially moved to VS Code. It was faster, cleaner, and had a great ecosystem even though it isn’t the best for Java.

Then the AI wave hit.

The AI Evolution

When AI coding assistants first arrived, I started with GitHub Copilot. It felt like magic at first, a really, really smart autocomplete. Then I tried Cursor for a short period of time, exploring what an AI-native editor could feel like.

But my workflow has shifted again, and this time, the change is profound.

These days, I mostly “code” (or rather, write code) using agentic tools like OpenCode, Claude Code, and most importantly, Anti-Gravity and Conductor.build. My go-to agentic IDE is Conductor.build.

And here is the truth: I haven’t written a full class or a full method from scratch in a very long time.

One exception is when I’m learning a new framework or practising something very new (currently CrewAI, pyTorch or LangGraph) I still use the good old VS Code!

The Hottest Programming Language is English

Andrej Karpathy recently captured this perfectly. He famously said that “the hottest new programming language is English,” and noted that his workflow has shifted to the point where he “mostly just writes English now” while the models do the heavy lifting. He described this transition toward “vibe coding”—fully giving in to the vibes of AI tools and acting as an overseer rather than a typist.

That is exactly what my day looks like now. I don’t spend hours wrestling with syntax, looking up API endpoints, or meticulously constructing boilerplate. I spend my time thinking about architecture, edge cases, product direction, and operations. I write the prompts. I define the boundaries. The AI agents write the code.

You might think that not writing the code myself would make me feel disconnected or less effective. But it’s the exact opposite. I have never been more productive.

From Typist to Director

We are moving away from the era where a developer’s value was tied to how many lines of code they could produce or how well they memorized a framework. The value is now in the taste—knowing what to build, knowing when the AI’s approach is slightly off (what Karpathy warns about as the “slopacolypse”), and knowing how to stitch complex systems together.

I’m no longer just a software engineer. I’m a system director, an agent swarm boss!

Fundamentals Still Matter More Than Ever

None of this means the fundamentals are obsolete.

The future is still uncertain. New programming languages will be created. New paradigms will emerge. New infrastructure abstractions will hide complexity until, one day, they don’t.

And when systems fail under pressure, you cannot prompt your way out of every problem. You need people who understand what is happening underneath: algorithms, data structures, distributed systems behavior, memory models, performance bottlenecks, and failure modes.

That is where senior engineering judgment still wins.

AI can generate options at incredible speed, but it cannot replace deep intuition built over years: knowing which pattern to choose, which trade-off is acceptable, which shortcut will become tomorrow’s outage, and where the real risk is hiding.

So yes, I write less code by hand. But I care more than ever about first principles.

The keyboard work is changing. The responsibility is not.