A day in the life of a software engineer: Reflections from the trenches

Telling someone don't do it - considered harmful


What I learned when a code-review comment of mine was taken as an order: explain the why, and treat review comments as discussion.
Read more ⟶

The devil's advocate technique


Before presenting a design, list the questions your CTO, teammates and other teams will ask, and answer them first.
Read more ⟶

How not to stuck when solving a problem?


Stuck on a bug or feature? Timebox it, take breaks, rubber-duck it or ask a teammate, instead of sitting at your desk until it's solved.
Read more ⟶

When could we call the new feature finished?


Implemented, reviewed, tested, deployed: the levels of "done" I've seen, and why your team needs a shared definition of done.
Read more ⟶

Don't create dedicated solutions create patterns


Spot classes that solve the same problem differently, extract the common part into a generic pattern, and replace old code step by step.
Read more ⟶