KRIS SHAMLOO

Blog Projects

irritation driven development

2026-11-07

My gift and my curse is that I have a strong critical eye. Although I think the phrasing "critical eye" isn't quite right, maybe a better way to put it would be: a sensitivity for inefficiency.

This sensitivity has served me well at work.

When working on a software engineering problem take note as to what is bothering you. How long did it take you to get the project up and running? What were you waiting on? Is the build system slow? Are there too many setup steps? Waiting around for something is a prime irritant and is worthy of your engineering attention.

You'll make friends this way too. If you halve the build time of a software project you just improved every single person on your team's daily toil. It's just human nature that you eventually settle into a comfortable "that's just the way it is" mindset at a job - so capitalize on your fresh irritations when you join a new team.

Imagine you're a customer of the software you're building. Does it do what they want? Is it confusing to use? Are they fighting your system or are they in the sweet spot? This might sound obvious but if you're not using the software like your customers are you are going to ship poor software. If something is annoying you it's annoying someone else, even if they've never said anything!

Processes can be irritating. How much bureaucratic overhead is there to fix a typo in prod? It should be low. How much bureaucratic overhead is there to migrate the database? It should be high. Is there enough trust and understanding within the team to understand the distinction?

Not all irritations can be solved, but more than you might think can be improved.