Decoding Success and Failure: A Rational Approach

In the ever-evolving world of software engineering, we are often presented with the challenge of assessing successes and failures. When evaluating our own performance, we frequently attribute our successes to our skills and our failures to bad luck. However, when it comes to evaluating the results of our competitors, the tendency is quite the opposite: we tend to ascribe their failures to a lack of skill and their successes to sheer luck.

Continue reading

Embracing the Grey: A Probabilistic Approach to Engineering Decision-Making

I’ve seen my fair share of successes and failures in the world of technology. Throughout the years, I’ve come across various approaches to decision-making and problem-solving, each with its own set of principles and methodologies. However, one idea that recently struck a chord with me is the concept of “thinking in bets” as outlined by Annie Duke in her book of the same name. I’d like to explore how this concept can revolutionize the way we make decisions in the field of software engineering and challenge the conventional wisdom that often prevails.

Continue reading

The Most Valuable and Underrated Books for Software Engineers

You want to become a better software engineer. You learn new tech stack, you do hackathon, you’ve read Code Complete twice and follow Kent Beck on Twitter. That’s all good. But focusing only on the technical side is a mistake. It is important to do cross-domain learning as well. Arts, fiction, biology, physics, woodworking, etc. By learning from other domains, you look at similar problems or concepts from a different point of view.

Continue reading