What Developers Should Never Outsource to AI
AI can now write the code, draft the post, explain the concept, even review its own work. That's incredibly useful. It's also a trap: it has never been easier to outsource the parts of the work that make you good at it.
This free guide isn't anti-AI, it's the opposite. I walk through three times I used AI heavily, in coding, writing, and learning, while deliberately keeping the parts I couldn't afford to hand over. The tools changed. The principle didn't: use AI to remove low-value friction without outsourcing the work that builds judgment. Here's a taste of what's inside.
Coding: the AI did the typing, I owned the engineering
I let an agent build most of a discussion feature: models, voting UI, reply notifications, moderation. Then I reviewed the diff like a teammate's pull request and caught an XSS hole where comment bodies went unescaped into notification emails. A bug no test surfaced, because I put my hands on the feature: I could upvote my own comment. Passing tests told me the code did what it was written to do, not that it was missing a rule.
Review AI code like you're accountable for it, because you are. And a diff too big to review is a problem with the change, not with the review.
Writing: the AI edited, I owned the thinking
I wrote the draft myself, then asked AI for a critique, not a rewrite. It sharpened the structure and exposed the symmetry I already believed. But a suggestion being reasonable isn't reason enough to keep it. I tested every one against the same questions: does this represent what I believe, and is the point actually clearer?
Good AI use isn't about maximizing how much AI-generated output you keep. It's about generating useful possibilities and staying responsible for what survives.
Learning: the AI accelerated the path, I still had to walk it
Learning Rust, I didn't ask the chatbot for the answer, I asked why: why a borrow here, an owned value there. The sharpest lessons came from the compiler, not the AI. When I hit a "value used after move" error, I could have pasted it in and taken the patch none the wiser. Instead I sat with it, and understood ownership once, for good.
A junior can have AI produce working code faster than they could ever learn to write it. That's borrowing a skill you never acquired, due back the moment something breaks.
The same framework, three times
| Case | AI does | You keep |
|---|---|---|
| Coding | Implementation | Engineering judgment |
| Writing | Suggestions / editing | Thinking & authorship |
| Learning | Explanation / translation | Understanding & struggle |
AI can accelerate doing. It can't take responsibility for knowing whether the result is good. The full guide covers all three cases in depth, with real code, the bugs I caught, and the calls I made.
Want to put it into practice right now? Before your next build, run it through scopefirst.dev, a free 30-minute flow that decides what's worth building, and what it should do, before AI writes a line.
For more, browse my Python tips on GitHub. If you use Claude Code, you can pull them straight into it via MCP.