Top 5 mistakes to avoid when solving hard engineering problems
Practical lessons from years of engineering experience to solve problems effectively
Mistakes are valuable learning opportunities. But, sometimes they can be costly, frustrating or even threatening to your job.
As a lead software engineer with almost a decade of experience guiding teams through complex projects, I've developed these insights by making—and later preventing—these common mistakes.
A rushed product search feature deployed without proper requirements clarification once cost my team two weeks of rework. It also delayed our quarterly launch, impacting conversion rates by 12%.
In this post, I'll share the top 5 engineering mistakes I've both made and observed, along with practical strategies to avoid them. They will save you time, money, and possibly your sanity.
1. Failing to break down complex problems into manageable bits
The top mistake I’ve often seen inexperienced engineers make is trying to solve too many problems at once. Unlike the GPU, our brain can only process a specific amount of information at a time. It is more efficient for our brain to process and solve smaller problems.
Author and programmer Kent Beck said in a popular post Mastering Programming:
The journeyman learns to solve bigger problems by solving more problems at once. The master learns to solve even bigger problems than that by solving fewer problems at once.
A well decomposed problem has several benefits:
Makes it easy to delegate to other teams or even to AI agents
Provides a quicker feedback loop and to refine continuously
Reduces cognitive load as it allows you to focus on one specific thing at a time
Reduces risk as smaller issues can be caught quickly
Ideally, you should break down the task until you can accurately predict the time in hours.
2. Rushing into implementation before clarifying the requirement
The second biggest mistake I made when I was a junior dev was rushing into coding. I’ve often built the wrong or incomplete thing when I rushed into implementation without clearly understanding the requirements.
Project owners often don’t completely know what they want in detail until they see it. They have a general vision but lack clarity on specific implementation details.
For example, they may ask you to build a shape with 4 sides. It’s your job to ask whether they want a rectangle, square, rhombus or a kite. Ask as many questions as possible until you are exactly sure what to build.
Take the time to document your understanding and validate with the stakeholders first. Then, only code.
3. Falling into yak shaving
Yak shaving refers to a series of unrelated (or sometimes useless) tasks that need to be completed before you can complete your main task. It can be good or bad depending on the situation. But, it can distract you from solving the main problem.

It’s easy to fall into Yak shaving.
You may need to fix a bug that’s not allowing your customers to request a quote. You found that it's caused due to the API version update on CRM. But to fix that, you need to update your authentication system. To update the authentication system, you need to refactor the user module.
And before you know it, you're 6 hours deep into refactoring when customers are waiting for their quotes.
It is important to prioritise every problem based on its impact and urgency. For a problem with high impact and urgency, do the minimal or simplest thing that would work. You can tidy or shave the yak later.
A working solution now is better than a perfect solution tomorrow.
4. Pushing through mental blocks
Another common mistake in solving problems is pushing too hard through mental blocks. It often leads to stress, fatigue and burnout, instead of the solution 90% of the time.
Nuroscientist and podcaster Andrew Huberman discusses the importance of detachment in problem solving. He says that taking a step back helps to gain clarity and widen our thinking. Some problems cannot be solved, need not be solved, or the ROI are not worth solving. So, taking a break gives you a fresh pair of eyes.
When I can't find a solution after multiple attempts, I just shut down my computer and go for a walk. Or focus on something else when I'm at work. After I come back to the problem later or the next day, the solution would automatically come to mind.
Problem solving is a mental exercise and you can think clearly when your mind is free, not while it is stressed.
5. Not designing an alternative solution
The last but not the least mistake in solving a problem is just going with the first solution that comes to mind. Engineering problems can be hard and it’s unlikely that you’ll come up with the best solution in the first try.
In the book, A Philosophy of Software Design, John Ousterhout discuss the Design it twice principle. Even though the principle is linked to software design in the book, it can be applied to problem solving too.
John suggests finding alternative solutions that are completely different from each other. When you find multiple solutions, they help you to discover factors that make a solution better or worse. And, they can also help in your judgment when you need to solve similar problems next time.
Final thought
Solving complex engineering problems is a skill that improves with deliberate practice and awareness. If you avoid these 5 critical mistakes when you jump into solving the problem next time, you can dramatically improve your effectiveness.
These principles helped me well throughout my career, saving countless hours and preventing unnecessary frustration. I hope they serve you equally well on your engineering journey.
What problem-solving approach has been most valuable in your experience? I'd love to hear your thoughts in the comments.
Thank you for reading and supporting this newsletter 🙏. You can hit the like ❤️ button at the end of this post to support my work. It means a lot to me!
Love the image of the tree and also the yak shaving. Never heard of it before but I think I've shaved a few yaks without knowing it!