I have been using GitHub Copilot every day for more than a year now. ChatGPT joined the desk later, first the free version, then GPT-4 when it came out in March. After all this time, I think I can write something honest about it. Not the hype version and not the doomer version. Just what changed in my daily work as a developer.
Short answer. It changed a lot, but not in the way people on social media say.
What I delegate to the AI
The AI is very good at the work that is necessary but boring. Here is my real list.
Boilerplate. DTOs, mappers, config classes, the fifth controller that looks like the other four. Copilot writes these almost alone. I just read and accept. This used to eat thirty minutes here, twenty minutes there, every single day. Now it takes seconds.
Tests. This is the biggest win for me. I write the first test for a class, with my names and my style, and Copilot picks up the pattern and proposes the next cases. Edge cases I would maybe skip because I was tired, it suggests them. My test coverage went up not because I became more disciplined, but because the cost of writing one more test went down. When something gets cheap, you do more of it. Simple economics.
Regex. I refuse to feel shame about this. I have written regex my whole career and I still do not enjoy it. Now I describe what I want in plain words, the AI writes the pattern, and I write tests to prove it works. Five minutes instead of forty.
Reading unfamiliar stuff. I paste a strange stack trace or a legacy function into ChatGPT and ask “explain this to me.” It is like having a patient colleague who never sighs. Sometimes the explanation is wrong, but even a wrong explanation gives me a thread to pull.
What I never delegate
Domain decisions. Never. The AI does not know our business. It does not know that in our system a “donation” and a “transaction” are different concepts with different rules, or why a certain edge case exists because of a real agreement with a real customer. When I let the AI shape domain logic, the code looks clean and is subtly wrong. Subtly wrong domain code is the most expensive bug there is, because it passes review and fails in production with real money.
Architecture choices. Where a boundary goes, what a service owns, what is sync and what is async. These decisions live for years and they encode business knowledge. The AI can list options, and that is useful, but it cannot weigh them, because the weights come from context it does not have. Our team, our deadlines, our customers, our risk appetite.
Anything I cannot verify. This is my hard rule. If I cannot check the output is correct, with a test, with documentation, or with my own knowledge, I do not use the output. Both Copilot and ChatGPT lie with full confidence. They produce APIs that do not exist and explanations that sound perfect and are wrong. Trust without verification is just gambling with your employer’s money.
The pairing comparison
People call this “pair programming with an AI” and I think the comparison is useful, but only if we are precise about it.
Kent Beck described pairing in Extreme Programming Explained with two roles. The driver types, the navigator thinks ahead. The navigator watches the direction, questions the design, catches the strategic mistakes. The driver handles the tactical details. The magic of pairing is in the navigator role. You can read Kent Beck on software design, and the theme of human judgment is always there.
The AI is a driver, never a navigator. A very fast driver. It is like pairing with an eager junior who types at the speed of light, has memorized every API on the internet, and has absolutely no idea why we are building this feature. That junior is genuinely useful. But you would never let that junior decide the direction of the system. You stay the navigator, always.
When I forget this and let the AI navigate, I get what I call confident drift. Each suggestion looks fine alone, but after an hour the code has wandered somewhere I did not choose. Now I stop every few accepts and ask myself, is this still the design I want? That small habit fixed the problem.
The honest balance
Does it make me faster? Yes, I would guess 20 to 30 percent on coding tasks, much more on boilerplate days, close to zero on hard design days. Coding was never the slowest part of my job anyway. Understanding the problem, aligning with people, deciding what not to build, that is where the time goes, and the AI helps very little there.
Does it make the team better? Carefully, yes. The danger is juniors accepting suggestions they do not understand. We talk about this openly in reviews. The rule is the same for code from AI and code from Stack Overflow. If you cannot explain it, you cannot merge it.
For roughly the price of a lunch here in Calgary per month, I get back several hours of boring work. That trade is easy. But I keep the wheel. The AI types, I navigate. After one year, that is the whole workflow in one sentence.
Pax et bonum.