A Recovering Programmer's Diary: 30 Days With Claude Code
I love creating things.
Everything I've done in my life has been driven by that. I was told I should be completely hands-off to move up the corporate ladder. To become a true leader and be successful, I must change my identity. I followed the rulebook. Then I came to the realisation that no one can really define what it means to be successful and happy. It's all subjective.
As the CTO and co-founder of a company that creates open-source tools in 2025, and after many years of being hands-off in tech, I was excited to take the opportunity to become a recovering programmer. And I had to try out AI coding agents.
I used to coach Software Craftsmanship. That couldn't be further from today's "vibe coding", where 100x engineers reportedly write 10,000+ lines of code. My belief has always been that the less code you produce, the better you are as a programmer. Have I completely lost touch? Can I do it?
This is where it all began. I used Claude Code for 30 days - over 150 hours - trying to create open-source software with reasonably high standards.
Here are the things I have learned and noted down, albeit after many mistakes and hair-pulling moments.
Skills for Working with AI Coding Agents
Thinking & Communication
If you cannot think for yourself, do not blame the AI.
I have seen many people using vague prompts like 'create a cool visualisation' (even in tutorial videos) and then blame AI for failing to deliver. Imagine if someone asked you the same question. What would you respond?
Express what you expect explicitly, accurately and concisely.
Before accepting whatever code AI agents write, think carefully what would you do and what the results should look like, then carefully compare your thinking with what AI agents came up with.
A lot of times, we tend to get influenced by others and diverge from our initial thinking. Sometimes it's inspirational, and sometimes it's dangerous.
Problem Decomposition
Although it's such a simple requirement to describe, no one can put mankind on the moon overnight from zero. Nor can AI.
Being able to break down large complex issues into small actionable steps is vital. That's how humans do things, and it works with AI too.
Critical Evaluation
If you cannot distinguish good from bad, you're bound to get something really shoddy sometimes. The same goes for working with AI. For example, if you've never heard that if-else
is often a code smell, don't expect AI to tell you that and make you understand it magically.
Having the high-level expertise to tell good from average and know the details is absolutely essential. Would you trust a junior engineer to write the core logic that launches rockets? If not, why would you trust AI 100%?
Never trust AI. It lies, cheats and will do whatever to complete the task. That's how they are trained. It is probably the hardest part in working with Claude Code for me. I always had to double check everything to make sure it did not make things up. This happens more often when the requirements are vague and the tasks are complex.
Effective Workflow Strategies
The Plan-Review-Do Cycle
Ask AI to make a plan and confirm that it understands the requirements. If you are unable to decide, at least ask the AI to review, reflect and refine. For example, give you a detailed pros and cons list for a decision or recommendation that you are 100% sure about.
If the problem is well-defined and small enough, you'll be able to hit the auto-edit
and enjoy a sip of coffee. And this should be the only time you accept auto-edit
.
Know When NOT to Use AI
Some edits are much faster with Copilot or by hand, e.g. renaming a variable with the help of the IDE. Don't waste time and tokens just to ask AI to push a commit to GitHub. It's too slow, too exhausting and too expensive. Even with complex workflows, if it's predictable, ask AI to help write a bash script.
Automation
Automate the way you work with LLMs. Prompts, shortcuts, specific styles and requirements. Just as you'd create a function if you write the same code twice, you should create a prompt template when you repeat the same requirements.
Critical Lessons: Code Quality and Technical Debt
The Technical Debt Trap
Do not leave any tech debt in the codebase if possible. LLMs will see it and constantly try to replicate the same patterns, making things progressively worse until the codebase becomes completely unworkable.
Show, Don't Tell.
If you have a perfect example of what good looks like, AI often does a brilliant job recreating it at lightning speed.
Because of the tech debt trap, I feel the idea of vibe coding is perfect for prototyping, but not for production code. Letting AI write thousands of lines of code daily without rigorous quality control and critical feedback from humans means you're piling up tech debt like nobody's business. No wonder vide coding enthusiasts say they could start all over again every two weeks. Well, I assume they have to, right?
Advanced Techniques and Best Practices
You Are In Control
I cannot keep track of thousands of lines of AI-generated code and still think clearly about what I want to achieve.
To avoid getting derailed by the AI's constant mistakes, which frankly make my blood boil at times, I use pen and paper to break down tasks. This keeps my thinking clear and my thoughts organised.
Do not get frustrated, work out why it does not work.
Test Driven Development
Among all the ways of working with AI agents, I have developed my favourite workflow (at least for now). I hope it works for you too.
Planning
- Rigorous planning with AI to break down requirements into tiny steps.
- Ask AI to create a comprehensive list of tests covering all requirements.
- Ask AI to review the tests (are they testing internals? Are they testing other code's responsibilities?).
- Review the proposed tests yourself and ask AI to refine them.
- Repeat steps 2-4.
- Once you are happy, ask AI to create test stubs with detailed comments explaining what each test does and why it's necessary.
Coding
- Ask AI to follow TDD religiously, one test at a time.
I have several prompts for each step (set as Claude Code command shortcuts) and use whichever fits the specific situation best.
Once reached step 7, you can take a slightly back-seat driver position. The best thing is that because it's often mechanical and AI is capable of handling such simple, well-defined tasks, you can work on multiple projects simultaneously or use git worktree
to work on different features at the same time.
Tips & Tricks with Claude Code
Essential Setup and Usage Tips
- Use
@
to reference context and resources, e.g., files to be modified. - Plan first (activate the plan mode) for larger changes (Tab & Shift twice).
- Claude Code has visual capabilities - use screenshots, especially for visual changes.
- Don't forget to use MCPs, e.g., use
playwright
for web development. - Use conversation histories and the
resume
command to work on different topics and histories, e.g., quick fixes, clearing up tasks, and minor tech debt.
Managing Context and Workflow
- Clear the context after every task to avoid confusion - this also encourages you to split large tasks into smaller steps
- Use instructions such as "think a lot" to trigger Claude's extensive thinking mode
- Use multiple sub-agents to brainstorm ideas in parallel
The Verdict
Overall, it has been a tremendously useful tool for me. As a recovering programmer, I often have trouble remembering exactly what I need to type into the IDE but I know exactly what I want and how it should look. AI coding agents fit into this role perfectly - they can code at the speed of thinking. Even with my fancy mechanical keyboards, typing is not something I enjoy tremendously.