These are the principles I try to bring to my work and the teams I'm part of. Most of them point in the same direction: growth is a practice, not a destination.
1% Better Every Day
Learn something new every day. Knowledge accumulates. Don’t dismiss small efforts.
Small steps compound into big changes. It doesn’t all have to be done today — find the thing you can contribute to right now, do it, and move on. If you do more, great. If not, you’re still ahead of where you were. Momentum matters more than magnitude.
Strive for Simplicity
There are many ways to reach the same result. When learning a new skill it’s tempting to immediately apply it everywhere. Take a beat: can you solve this with something you already know?
Functional programming, battle-tested OO patterns, complex type systems, metaprogramming — all useful, all with a cost. Before reaching for a powerful construct, challenge yourself to explain why a simpler one won’t suffice. That explanation is a useful litmus test.
Perseverance
For years I kept a card in my wallet with a Sri Chinmoy quote: “Perseverance, perseverance, perseverance, you can turn me into a genius.” The card eventually disintegrated and I’ve never been able to find the original source — so I’m not even sure it was a genuine quote. Either way, every time I cleared out my wallet I’d be about to throw it away, re-read it, and decide it could stay.
Perseverance is a quality that can be practised. It’s what allows us to finish marathons and train for them. It’s what allows us to ship features through the inevitable friction, stressors, and uncertainty. There will be obstacles. I have to choose to move through them anyway.
Done is Better than Perfect
Perfectionism is a form of procrastination in disguise. Shipping something good and learning from it will always outpace waiting for something perfect that never quite arrives.
This isn’t an excuse for low standards — it’s a reminder that standards are raised through iteration, not deliberation. Two examples I’ve lived:
- I delayed a blog post for a year because the illustrations weren’t polished enough.
- I made a JavaScript function measurably faster, then stalled on shipping it because I was imagining a Rust rewrite that would make it really fast.
Less perfectionism, more practice.
Be Vulnerable
Google’s Project Aristotle found that the defining quality of high-performing teams isn’t credentials or experience — it’s psychological safety. Teams that feel safe to ask dumb questions, raise concerns, and communicate openly are the teams that deliver. More importantly, they’re the teams people actually want to work in.
Psychological safety starts with modelling the behaviour yourself:
- Admit when you’re wrong
- Respond to doubts with curiosity, not defensiveness
- Forgive mistakes — yours and others'
- Ask for input before you think you need it
Vulnerability is a skill. It compounds the same way everything else on this list does.
Explore, Play, Learn
The best work I’ve done has happened when I was genuinely enjoying myself. I can see it in how my kids develop, and I can trace it in my own most productive periods. Curiosity and play aren’t the opposite of rigour — they’re what sustains it over the long run.
If things feel stagnant, that’s a signal. Change the context, pick up a new tool, build something just to see if it works. Growth mindset isn’t just about improving — it’s about staying interested enough to keep going.