I Stopped Writing Code. Here's What I Do Instead.
By Soumya Ranjan Sahoo · · 7 min read
#Agentic Coding#Software Architecture#Engineering Leadership#AI Workflow
I went four days without writing a function by hand — and it was some of the most technical work I'd done in months. Here's what actually fills my day now that "coding" doesn't mean typing anymore.
I Stopped Writing Code. Here's What I Do Instead. Last month I realized I'd gone almost four days without typing a single function by hand. Not because I was lazy. Not because I'd outsourced my job to an AI and was coasting. I was busier than I'd been in months — I just wasn't typing. I was reviewing architecture. I was writing specs. I was reading diffs line by line, catching a subtle bug in how one of my agents was handling a null response from an API. I was deciding which parts of RITE POS's inventory pipeline could be delegated to Claude Code and which parts needed my hands directly on the keyboard because the stakes were too high to fully hand off. None of that felt like "not coding." It felt like the most technical work I'd done in a long time. It just didn't look like the coding I grew up doing. This is the part of the agentic engineering shift that I think catches people off guard — not the tools, but the realization that your actual job has quietly changed shape underneath you. --- The Job I Trained For vs. The Job I'm Doing I spent years getting good at writing code. That was the craft — turning a problem into syntax, debugging by reading stack traces line by line, feeling the small satisfaction of a clean function that did exactly one thing well. I built my B.Tech around it. I built RITE Labs around it. That skill hasn't become useless. But it's stopped being the thing I spend most of my day doing, and for a while I didn't have language for what replaced it. Then I started thinking about it the way I'd think about running an actual team — because that's basically what it had become. I wasn't the person implementing every feature anymore. I was the person deciding what needed to be built, breaking it into pieces an agent could actually execute well, and checking the work when it came back. That's not a developer's job description. That's closer to what an engineering lead does with a team of very fast, very literal junior engineers who never get tired but also never push back when something's a bad idea. I started calling it being a Mission Controller, mostly as a joke to myself, and then it stuck because it was just... accurate. --- What "Mission Controller" Actually Means Day to Day It's not a vibe. It's a specific set of things I now do instead of typing implementation code, and I think naming them clearly is more useful than being poetic about it. I write the mission before I send anyone in. Before I open Claude Code for anything beyond a throwaway script, I write down what the outcome needs to be, what the constraints are, and what "done" actually looks like. For CIS, that means writing out exactly what evidence each agent is allowed to pull and what format its output has to match before the orchestrator will accept it. This used to feel like overhead. Now I know it's the actual engineering — the code is just the execution of a decision I already made. I decide what gets delegated and what doesn't. Not everything should go to an agent. When I'm working on the OCR/AI fallback logic in RITE POS — the part that decides whether to trust ML Kit's on-device scan or escalate to Cloud Vision or Gemini — I still write that decision tree myself. It's small, it's high-stakes, and getting it subtly wrong means a pharmacy either restocks the wrong medicine or loses trust in the whole system. I hand off the boilerplate around it — the UI, the API wiring, the test scaffolding — but not that core logic. Knowing where that line sits for each project is honestly the hardest skill in this whole shift. I read diffs like they're pull requests from someone I don't fully trust yet. Because that's exactly what they are. An agent isn't a junior dev who'll learn from feedback over six months — every session starts fresh. So I review its output the way I'd review a contractor's work: assume competence, verify anyway. I caught a bug last week where an agent had silently swallowed an exception in a retry loop instead of surfacing it — technically "working" code that would have failed silently in production for weeks before anyone noticed. I debug systems, not lines. When something breaks now, my first question usually isn't "what's wrong with this function." It's "which agent's output introduced this, and did the boundary I gave it have a gap I didn't see." Debugging shifted from a code-reading skill to something closer to systems thinking — tracing a failure back through a pipeline instead of a call stack. I still write code — just the parts that matter most. This is the part I want to be honest about, because "I stopped writing code" as a title is a little bit of a hook. I haven't stopped. I've stopped writing the predictable code. The tricky, judgment-heavy, "if this is wrong the whole system is wrong" code — that's still mine. Agents write the parts where the path is clear once the architecture is set. I write the parts where the architecture itself is the hard problem. --- The Uncomfortable Adjustment I won't pretend this shift felt good immediately. There's a specific kind of imposter feeling that shows up the first time you realize you've spent an entire day without touching an IDE and you're still exhausted — because reviewing, architecting, and catching subtle failures is genuinely tiring in a different way than typing is. Nobody warns you about that. You expect delegation to feel lighter. Sometimes it feels heavier, because the responsibility didn't go anywhere — it just moved earlier in the process, into decisions instead of implementation. There's also a temptation to feel like you're not "really" engineering anymore if you're not the one producing the diffs. I've caught myself feeling that on slow days. But then I think about what actually determined whether NIGHTSHIFT worked or CIS gave trustworthy verdicts — it was never the syntax. It was the architecture, the boundaries between agents, the judgment about what to trust and what to double-check. That work didn't get easier because an agent can type faster than I can. If anything, it got more important, because now it's the only part of the process that isn't automatable. --- What I'd Tell Someone Making This Shift If you're still measuring your engineering output by lines of code you personally typed, you're going to feel like you're doing less even when you're doing more. That was the trap I fell into for a few weeks before I named what was actually happening. The role isn't disappearing. It's moving up a level — from writing implementation to designing the system implementation happens inside. Mission Controller isn't a downgrade from "real engineer." It's what real engineering starts looking like once you have a team, even if that team is a set of agents instead of people. I still love writing code. I don't think that instinct is going away, and I don't think it should — the muscle you build writing things by hand is exactly what lets you spot when an agent's output is subtly wrong. But most days now, my keyboard time goes into specs, reviews, and architecture diagrams instead of implementation. That's not me writing less. That's me writing the parts nobody else can. This is Day 2 of the series I'm doing on what agentic engineering actually looks like in practice. Next up: what the actual SDLC looks like when half your "team" doesn't sleep, doesn't get tired, and definitely doesn't push back when you give it a bad spec.