Learning Learning is a lifetime practice. No matter how much experience you have, you will still discover new concepts daily. Similar to elite athletes, they train daily to maintain their skills and identify areas to improve.
Predictability is the Key For Maintainable Systems There’s often a belief that working on a great product means constantly solving exciting and novel problems. A lot of engineers imagine they would be writing cutting-edge code every day, solving complex challenges with every PR. But in reality, the best software systems are the ones that feel a
The Lost Art of Writing Great Log Messages Great log messages aren’t just documentation—they’re lifelines. Writing them clearly helps the next engineer (or your future self) fix problems quickly and confidently.
Understanding Kubernetes health probes One of the most common pitfalls that I saw people fall into when they start working with K8s is having a misconfigured health probe that prevents the container from stabilising. It often looks like this: • The container works fine locally. • Keeps restarting and failing on K8s with no error messages
Engineering Growth: Moving Beyond Execution A short note on the engineering growth and the move to a senior role and beyond.
Software Philosophy - Part I: Domain Driven Design In 2019, I was part of the Statsbomb team and the company was really taking off with it's football collection and analytics platform. We were asked to re-design the data collection platform to support realtime events. This was a big task that got everyone across the tech team
Quiet Leadership - Lessons from the Carlo Ancelotti's book. For some time now I wanted to write a book review on Mr. Carlo Ancelotti's book on quiet leadership. I've been a big fan of Mr. Ancelotti since I was a kid and he managed AC Milan. And being a Madrid fan, I really enjoy and
Cloud Native Service Accounts Last week, I had a talk with one of my mentees and we touched on some authentication concepts. And I realized that while the idea of service accounts might be straightforward to some, it usually takes some time before you grasp how they actually work. Introduction You are starting your
Notes on Database ( Part 3 ) - Multi-Version Concurrency Control Introduction In the previous post, we covered transactions, ACID properties, and isolation levels. We discussed how databases handle concurrent transactions and the different isolation levels available. But we didn't dive into how Postgres actually implements these features. This post will cover Multi-Version Concurrency Control (MVCC), which is the
Notes on Database ( Part 2 ) - Transactions, Concurrency and Isolation Levels Introduction In the previous post, we discussed how to study databases and the resources to use. In this post, we will dive into the core of databases: Transactions. The reason I'm starting with transactions because they are (in my opinion) the most important concept in databases. When you