• Your Log Level of Choice

    Your Log Level of Choice

    One of the more complex topics that often receives less attention in software development is the proper use of logs. I would venture to say that I have seen as many variations as there are companies, and within companies, as many as there are teams, and within teams, as many as there are projects. This…

  • Fun with Flags I

    Fun with Flags I

    A Brief Introduction to Feature Flags A simple yet powerful concept that has probably existed since the dawn of software, gaining strength with the introduction of Continuous Delivery and A/B Testing in the last decade. Configurable “code paths” allow for easy switching between versions of our program, enabling two (or more) alternative functionalities to coexist,…

  • Quick Fixes or Deep Understanding

    Quick Fixes or Deep Understanding

    When you join a new team, company, or project, it’s easy to spot what seem like obvious problems. The initial reaction is often to fix them immediately, assuming they’ve been overlooked by others. However, this approach can be flawed. Behind each apparent issue, there are usually deeper causes: dynamics, processes, and decisions that have allowed…

  • The Overcompliant Programmer

    The Overcompliant Programmer

    People working in the technology field, especially in programming, often define their identity around problem-solving. Without delving into debates about whether this ability is innate or acquired, it’s clear that the tendency to identify challenges and find optimal solutions is not something that can be turned on and off at will. What may initially seem…

  • Taking a Break: Managing Vacation Anxiety in the Tech World

    Taking a Break: Managing Vacation Anxiety in the Tech World

    Working in technology, and particularly in development, makes disconnecting one of the hardest things to achieve. Sometimes I think that a problem-solving brain is like a huge boulder rolling down a hill. At first, it requires a lot of effort to overcome the slope and reach the top, but once there, a final small push…

  • “No, you can’t” – An answer to avoid

    “No, you can’t” – An answer to avoid

    As developers, the ability to confidently say “no” is essential. We must be assertive in declining unreasonable requests or unrealistic deadlines, lest we create expectations we cannot meet. While the fear of negative judgment, being perceived as lazy or incompetent, or being overly eager to please can hinder our ability to say no, developing this…

  • Death by Comfort: Stuck in routine as a developer.

    Death by Comfort: Stuck in routine as a developer.

    A couple of days ago, I listened to an interview with Paul Taylor, the author of “Death by Comfort.” The subject, and the title, struck me as interesting: how humans have evolved to react to adversity and how a life of ease prevents us from reaping those benefits. I brought home that idea, and throughout…

  • The helpless helper

    The helpless helper

    From time to time, we all find ourselves with a small, essential, but unexciting piece of code in our hands. It’s necessary for our program to run, yet, for some reason, it feels like it doesn’t quite fit. Call it what you will: helper, utility, library, common, or something else, they all share a common…

  • Doc and Code is King

    Doc and Code is King

    Even the simplest, cheapest home appliance comes with a more or less detailed user manual. Most of us decide to throw it away and trust in the good design of the device for discoverability, allowing us to learn how to use it. But right after design, good documentation sets the difference between a piece of…

  • Sprinters don’t win marathons

    Sprinters don’t win marathons

    Software development is like a long-distance run. Most of the time, you need to maintain a steady pace—a velocity that enables you to consistently deliver features, maintain your code, and improve your skills predictably and profitably. This rhythm should allow you to adapt to exceptional changes. Occasionally, you’ll need to sprint to meet deadlines or…