Published on: 2025-08-17
Reflections on the what worked well, what didn't work well, and what does it mean for the future
I love AI coding companion. It allows me to focus my attention to the creative part of software engineering: understanding the product requirements, thinking about trade-offs, and doing system-design. It also makes the whole feature development much faster, granting me a lot more dopamine as I finish more things.
Chatting with AI in the same place where I write my code. It’s a wholesome experience. I’m still a more IntelliJ person than VS code person. That said, I hope IntelliJ will bring out similar experience soon.
There are so many resouces to read on how to formulate a good prompt. Strategies such as giving the AI chat a persona (you are an expert on React, jest and react testing library), a lot of context, and interrupting it when it’s going in the wrong direction, have brought me a long way.
It used to be a very important for me to always have a competent sparring partner in my team. Today I spar with AI a lot. It helps me getting to a better trade-off analysis, and pointing out solution that I might not be aware of.
Interpersonal connection should not however be totally replaced, as sparring is part of helping each other grow.
Our company has a weekly tech meeting. In the last few months, it is mostly about sharing experience working with AI. I got inspired a lot.
This is much harder. The most important lesson I have with AI coding companion is that we have to review the code being generated. It happened multiple times with me and with code that I reviewed, where I saw mistakes evidently generated by AI. For example unnecessary comments (“Don’t use comments as a substitute for bad code.”), generated test cases (edge cases which exploded the pull requests), and bad naming (lack of domain understanding).
Reading and writing (in English) are becoming more important than ever. We have to read through the stuff that is generated, so that we can judge and iterate. We have to write well and clear, so that we get well-written and clear answers.
Understanding business context is also becoming more important for software engineers, as the importance of coding decreases. What will bring more leverage in the business context, this is the question that separates good product engineers from the bad ones.
Yes, but a LOT less of them.
The market for average software engineer will become bad, if any. I can’t predict how fast this process will be, but it will happen.
Either we have to work on the product thinking skills, or be really nice and provide emotional value for the team/company, or we have to learn another profession. This happened with farmers, ice cutters, and telegraph operators. Same as ever.