Add date-range filter to the invoices view
Refactor webhook retry queue into idempotent worker
Fix null check on invoice export when org has no tax id
Last Friday I shipped three features. I didn’t write any of them.
I scoped them on Monday, wrote three briefs, handed each to an agent, and spent the week reviewing pull requests, rejecting two approaches, redirecting one halfway through, and signing off on the merges. All three landed. The tests passed. The features work; people are using them now.
And on Friday evening I sat there with the specific, low feeling that I hadn’t really done anything all week.
Not tired. Not good tired either. Just — light. Like I’d skipped the work and gone straight to taking credit for it. A few years ago, a week like that would have meant ten-hour days in the editor, the good ache in my wrists, the satisfaction of a green test suite I’d fought for line by line. This week I mostly typed sentences in English and clicked Approve. And some quiet voice in the back of my head spent the whole weekend asking the same question: are you even still an engineer, or have you just gotten good at faking it?
If you have five years in or more, if you’re technically good and you’ve started directing AI more than you write code yourself — and if you’ve caught that same voice asking the same question on your own Friday evenings — this is for you. I want to tell you what that voice is right about, what it’s badly wrong about, and why the two get mixed up in exactly the way that keeps good engineers stuck.
§ I · The Old Rule“If my hands aren’t on the keyboard, I’m not really working.”
I want to defend this belief before I take it apart, because it isn’t stupid. It’s the most reasonable thing in the world, and most of us spent a decade proving it true.
For years, typing was the work. The proof that you’d done something was sitting right there in the diff — lines you wrote, problems you solved with your own hands. You could feel a hard bug give way. You knew a language so well your fingers moved faster than your conscious thought. The flow state was real: editor open, world gone quiet, the thing in your head becoming the thing on the screen with nothing in between. People who code chase that feeling. A lot of us got into this because of it.
So the body learned a simple rule, and learned it deep: fingers moving means work happening. Keystrokes were the unit. The commit was the receipt. A day with a lot of code in it was a good day, and a day with little was a day you’d have to explain.
That rule ran clean for a long time. The problem is that it’s a rule about typing, and the job stopped being about typing.
The shift isn’t a forecast anymore. Google Cloud’s DORA 2025 report1 surveyed about 5,000 technology professionals and found 90% of developers now using AI in their daily work, up sharply year over year, with most reporting productivity gains. That’s not early adopters. That’s the floor. The keyboard rule is being broken across the whole field at once — and the discomfort I felt on Friday is what it feels like from the inside while it breaks.
§ II · The CrackThe merge landed and the voice still said fraud.
Here’s the moment the old rule stopped working for me. Not when the features failed — when they shipped.
If directing agents were just a worse way to work, this would be an easy essay. The system would have broken, I’d have crawled back to the editor, lesson learned. That’s not what happened. What happened is harder to sit with: the work was good. More shipped than in any keyboard week I can remember. The architecture was cleaner than my tired Thursday-night self would have left it. By every measure my employer actually cares about — features live, problems solved, things working in production — it was one of the best weeks I’d had.
And the voice still said fraud.
That’s the crack. The old rule says output and effort rise and fall together — work hard, ship a lot; coast, ship little. But here was the most output I’d produced in months sitting right next to the strongest feeling that I hadn’t worked at all. The two numbers that were supposed to move together had come apart. And when your gut and your results disagree that loudly, one of them is lying to you.
For a while I assumed it was the results — that the shipping was somehow fake, leverage I hadn’t earned, a trick that would stop working. It took me an embarrassingly long time to consider the other option: that the feeling was the unreliable one. That the thing measuring my work had been calibrated for a job I no longer have.
§ III · Half RightThe voice is half right, and everyone comforts you about the wrong half.
Here’s what I’ve landed on, and it’s not the reassuring version you’ve already read.
When that voice asks are you still an engineer, the internet has an answer ready: of course you are — the definition just expanded! You’re an orchestrator now, a force multiplier, the work is judgment, not typing. All true. All technically correct. And all of it a dodge, because it answers the comfortable half of the question and skips the half that actually hurts.
So let me split it honestly.
The half everyone gets right: yes, you’re still an engineer. The metric that ever mattered — systems shipped, problems solved, things that work — points the right way. There’s even a name for what you’re doing now. Forty years ago Peter Naur argued in “Programming as Theory Building”2 that the real product of programming was never the code, but the working mental model — the theory of the system — built in the developer’s mind. By that definition the engineering is the part you still do. The typing was always just how the theory got written down. So the clean yes is real. Keep it.
The half nobody will say out loud: the thing you were quietly proudest of really is gone, and it’s not coming back. The fluency. The speed. The feeling of a language living in your fingers. That was craft, it took years, and you were right to be proud of it — and AI has made most of it worthless. “The definition just expanded” is the sentence we use to skip past that loss without feeling it. It’s true the way “he’s in a better place” is true at a funeral. It lets everyone move along.
But you can’t reframe your way out of a real loss. You have to actually put it down.
The next time the voice says you’re faking it, what’s the accusation underneath?
That’s the whole turn. The imposter voice has the diagnosis exactly backwards. It tells you the shipping is fake and the craft was the real thing. The truth is the reverse: the shipping is the realest work you’ve ever done, and the craft you’re mourning — the typing speed, the syntax you could recite in your sleep — was never the thing anyone was paying you for. You just loved it, so you confused loving it with it being the point.
The engineers who scale from here are the ones who let themselves mourn the old skill, name it as lost, and move on. The ones who stay stuck are the ones who keep sneaking back to the keyboard to write a function by hand they could have directed in a tenth of the time — not because the work needs it, but because they need it. They need to feel the keys. I know they do, because some Fridays I’m one of them.
§ IV · The Meter LiesThe output flipped and the feeling didn’t.
Start with the plainest version of the gap, because it’s the one you can measure.
A keyboard week, at my best, was one feature. Maybe one and a half if it was a domain I knew cold and nothing caught fire. I’d hold the whole thing in my head, write it, debug it, ship it. It felt like work because it was work — the good, total, absorbing kind.
A directing week is three features in parallel, sometimes four, because the bottleneck moved. It used to be how fast I could type correct code. Now it’s how fast I can make good decisions and check the results — and I can make decisions for three things in the time I used to spend typing one. The agents don’t wait for each other. While one is building, I’m reviewing the second and scoping the third.
So the output roughly tripled. And the feeling went down.
That’s the part that makes no sense until you see what the feeling was actually measuring. It was never measuring output. It was measuring strain — how hard my hands and head had worked, how much of me the day had used up. Three directed features use a different part of me, and a lighter-feeling part: I’m reading, judging, redirecting, not grinding. The day ends and I’ve shipped triple, and my internal meter — the one calibrated on a decade of keyboard strain — reads low, and reports back that I must not have done much.
The meter isn’t lying on purpose. It’s just answering a question nobody’s asking anymore. It tells me how tired my hands are. Nobody is paying for tired hands.
§ V · Not FreeSome weeks the brief costs more than the code.
Now the complication, because if I stopped at “triple the output, less effort” I’d be selling you the same frictionless fantasy every vendor is, and you’d be right not to trust it.
Directing is not automatically better. Some weeks the brief genuinely costs more than just writing the thing would have. I’ve spent two hours specifying a task I could have typed in forty minutes, then another hour reviewing what came back, then sent it round again. On a small, well-understood piece of work, doing it by hand is still faster, and pretending otherwise is how you end up orchestrating a sandwich.
The skill — the actual new skill, the one that’s hard — is telling those weeks apart in advance. Knowing which work is worth a brief and which work you should just do. I’m still bad at it. I get it wrong in both directions: I direct things I should have typed, and I type things I should have directed because the keyboard was right there and felt safe.
Fix a one-line null check in code you wrote last week.
It’s in the invoice export. You know exactly where. The fix is two lines including the test.
The brief would cost more than the fix. Anything you know cold and can finish in ~10 minutes, you just do.
Failure mode · Direct it and you’ll spend 20 min specifying a 2-line change. Cost: small, but pure waste.
—
The point isn’t a score. The point is that the call was hard to make from a card alone — and you’ll make it twenty times this week, mostly from less information than this.
And there’s a cost underneath the time cost that’s worth being honest about. Anthropic ran a controlled experiment3 where developers completed coding tasks with an AI assistant, then sat an evaluation. The ones who’d used the assistant scored about 17% lower — roughly two grade points — than the ones who’d worked unaided. Leaning on the tool made them measurably worse at the underlying skill, at least in the moment.
I felt that one in my chest, because it confirms the accusation the imposter voice has been making all along: the craft really is decaying, and the tool really is the cause. That part is true. I won’t pretend it away. But notice what the study measures and what it doesn’t. It measures the skill — can you still do it by hand. It doesn’t measure the judgment, the scoping, the review, the knowing-what-to-build. The thing that atrophies is the thing AI does now. The thing that grows is the thing it can’t. The voice points at the decay and is correct about the decay — it just draws the catastrophically wrong conclusion from it. “Worse at typing code” is not “worse at engineering,” unless typing code was the engineering. We’re about to see that it wasn’t.
§ VI · The LensThe lens is in someone else’s hands.
Here’s the picture that finally let me put it down.
A film director, early in their career, often runs the camera themselves. They frame the shot, they pull focus, they feel the weight of it on their shoulder. It’s craft, it’s tactile, and plenty of directors love it more than any other part of the job. Then the films get bigger, and one day the camera is in someone else’s hands. The director stands a few feet back and watches a shot they used to physically take.
They did not stop being the author of the film. The film is more theirs now, not less — the vision, the pacing, the performances, the thousand decisions that make it the thing it is. But I promise you the first few shoots, standing there, their hands itched for the camera. Watching someone else do the thing they were good at, the thing that made them feel like a filmmaker, while their own arms hung empty.
That itch is not a signal that they’ve stopped being a filmmaker. It’s just grief for a part of the job they loved and no longer do. Every director who matters made that trade. The ones who couldn’t — who had to keep their own eye to the lens to feel like the real thing — stayed small. Not because operating the camera was beneath them. Because they couldn’t direct and operate at the same time, and the film needed them to choose.
The keyboard is the camera.
The itch is the same itch.
And it lies in the same way — it feels like a verdict on whether you’re real, when it’s only a memory of a part of the job you used to do with your hands.
§ VII · The TradeThe skills that replaced it were the ones they used to promote you for.
Here’s the part that should reframe the loss entirely, because for years these were the skills that got you promoted away from coding.
Look at what a directing week actually demands. Scoping a problem precisely enough that someone else can execute it. Writing the requirement down so clearly there’s no room to drift. Reviewing work that isn’t yours with enough discipline to catch what’s subtly wrong, not just what’s broken. Designing the test that proves the thing actually works. Documenting the decision so it survives you.
Read that list again. Five years ago, every one of those was a senior skill — the stuff that showed up in the staff-engineer ladder and the manager job description. They were the things you got better at after they pried you off the keyboard, the reason promotion felt like loss: you traded the craft you loved for meetings and review and specs. The dirty secret of the agentic shift is that it took the manager’s skill list and handed it to the individual contributor. You’re doing the senior work now — the judgment, the specification, the review — except you’re doing it at the keyboard’s pace, on your own features, all day.
There’s a tell that proves these skills are the job now. Anthropic’s research found that setting the terms up front — defining the role, the goal, the constraints before you prompt — strongly predicts who gets good results from AI, and that only about 30% of developers do it without being told.4 That’s not a typing skill. That’s the exact thing a good engineering manager does before handing work to a junior: get the brief right so the execution can’t wander. Most people don’t do it because nobody trained them to — it was someone else’s job. Now it’s yours, and the people who are quietly winning at this are the ones who learned to brief well, not the ones who type fast.
The craft didn’t vanish. It moved up the stack. You got handed a harder, more valuable job and a feeling that told you you’d been demoted.
§ VIII · What To DoStop sneaking back to the keyboard.
So here’s what to actually do with the voice, the next Friday it shows up.
Don’t argue with it about whether you’re an engineer. You’ll lose, because it’s half right and you can feel the half it’s right about. Instead, separate the two halves out loud. Yes — the craft is going. The fluency, the speed, the syntax in my fingers. That was real and I’m allowed to miss it. And then the other half, just as plainly: and none of that was the job. The job was the judgment, and I’m doing more of it than I ever have. Let the grief be grief. Don’t let it file a verdict it isn’t qualified to file.
The trap isn’t the loss. The trap is what the unprocessed loss makes you do. It makes you sneak back to the keyboard — write the function by hand you could have directed in a tenth of the time, take a small piece of work you should have briefed and grind it out yourself instead, because the keys feel like home and the brief still feels like cheating. Every hour you spend doing that to soothe the itch is an hour you’re working at the old job’s pace in a world that’s moved on to the new one. It feels like craft. It’s just hiding.
None of this is new, by the way, which should be a comfort. In 1957 IBM shipped Fortran5, and the assembly programmers — who knew the machine down to the register, whose craft was genuinely deeper than anything a compiler could match — were sure that letting a machine write the machine code was a degradation, a loss of control, the end of real programming. If I don’t write it down to the metal, how can I trust it? They were right that something was being lost. They were completely wrong that it was the job. The job moved up a level, the people who moved with it built everything we now stand on, and “programmer” stopped meaning “person who hand-writes machine code” without anyone deciding to stop being a programmer.
We’re in the 1957 of our own careers. The camera’s in someone else’s hands now. Your hands will itch — let them. The film is still yours.
- 1 DORA 2025 report (Google Cloud) — ~90% of developers using AI daily, most reporting productivity gains, ~5,000 technology professionals surveyed.
- 2 Peter Naur — “Programming as Theory Building” (1985). The work of programming as a mental model, not the code artifact.
- 3 Anthropic research on AI-assisted coding — randomized study finding ~17% lower evaluation scores after AI-assisted work.
- 4 Same Anthropic study — ~30% of developers set collaboration terms (role, goal, constraints) before prompting; the strongest predictor of useful output.
- 5 The 1957 Fortran / compiler transition and assembly-programmer resistance — historical parallel.