Production software should empower users to do things that were once painful or impossible. There are far too many paper cuts in the software around us today, and I want the product I work on to be a well-deserved break from them.
Software that doesn’t make people’s life easier isn’t worth writing.
Whenever working on a feature, I want to understand why it is needed, what value it is providing, to whom, etc…
This helps me get to the core issue I am trying to solve, guide my work and understand which tradoffs are possible to make. If you work with me, “why are we doing this?” will be by far the question you will hear the most.
Any piece of code I write reflects on me and my ability to write good, maintainable code.
I strive to be nice to myself and my fellow colleagues by writing code that’s clear, well-designed, readable and even boring.
I think of every line of code written as a liability to the team that will have to understand and maintain it.
As a software engineer, my goal is to provide business value, not to write code. If I can provide the same value without writing code, I will try to do so.
A good-enough solution today is more valuable than a perfect solution tomorrow.
I believe in shipping early, scoped down, solutions that can be used as a basis for iteration. Then iterating just enough to provide the business value that makes sense for the current need and scope.
Shipping is a goldilocks game, and the product should be neither rough on the edges nor an overengineered page that will delight its users on every click when it’s shipped, one year from now.
In software and in life, the answer to many questions is “it depends”. Every choice made involves tradeoffs, wether explicit or implicit.
I strive to always be aware of this, and ask which tradeoffs will help my case and my users best in any given situation.
I try to be not opinionated about too many things, and keep my identity small.
In the areas where I do have opinions, I believe in them enough to act on them with confidence and argue my stance strongly.