Practical Software Development

Practical Software Development

    • About me
    • Privacy Policy
  • Learning From Our Mistakes

    Learning From Our Mistakes

    Early in my career, I managed to land a great job that would allow me to work on a bunch of interesting features, with amazing people, while getting hands-on skills that I could use at other companies, and also paying a good salary: It was the whole package! After so many attempts at landing a…

    August 6, 2025
  • Load Testing with Shadow Traffic

    Load Testing with Shadow Traffic

    Some time ago, I worked on a feature that would increase the load on my team’s backend service from 5 thousand to 50 million requests per day, a 10,000 times increase in traffic, and we needed to make sure that it could handle that huge grow, which was a bit daunting. In this article, I…

    July 30, 2025
  • Decoupling Code With The Law Of Demeter

    Decoupling Code With The Law Of Demeter

    It is usually well understood that decoupled software helps us easily change, test, reuse, understand, and extend our code. For this reason, many of us will either advocate or hear someone promoting decoupled code when we build our systems. There are a number of techniques that we can use to do this, and today I’ll…

    July 23, 2025
  • Three Reasons Why I ❤️ Ghostty

    Three Reasons Why I ❤️ Ghostty

    As a backend developer, I do a lot of my work in a terminal (although, admittedly, not as much as I used to). That is why I had no doubt about trying out Ghostty, a new terminal emulator, as soon as it was released a few months ago, late last year. Ghostty provides a number…

    July 16, 2025
  • A Practical Guide To Git Stash

    A Practical Guide To Git Stash

    Several years ago, while pairing with a teammate, I noticed he was taking a lot of time to perform a simple task, because his working environment was not clean. To help him save some time, I suggested he use git stash, a Git command that saves local changes for later in a stack-like structure, so…

    July 9, 2025
  • Dependency Inversion Principle

    Dependency Inversion Principle

    In one of my previous articles I made a brief introduction to the SOLID principles for Object Oriented Software Development In today’s article, I’d like to cover the Dependency Inversion Principle (DIP) in more depth, starting by explaining what it is, how it’s supposed to be used, and what are its concrete benefits. What Dependency…

    July 2, 2025
  • Collaborating Through Code Reviews

    Collaborating Through Code Reviews

    In my last article, I discussed how we can prepare our code to run effective code reviews, but that’s only part of the picture. Many developers start their careers without really knowing what code reviews are for. We’re taught how to make code “work”, not how to work with others to make that code better.…

    June 25, 2025
  • Preparing Code for Effective Code Reviews

    Preparing Code for Effective Code Reviews

    Many developers start their careers without really knowing what code reviews are for. Whether we studied at university or joined a coding bootcamp, the focus is usually on learning algorithms and writing code that “works”, while quality and collaboration are seldom covered. It was the same for me when I was at uni. I was…

    June 18, 2025
  • Sequencing Tasks In Collaborative Teams

    Sequencing Tasks In Collaborative Teams

    Having to take on multiple responsibilities at once may be overwhelming. People are really bad at multi-tasking on brain-intensive activities, so finding a way to meet all these expectations may be daunting. The most immediate solution to this is to do one, and then the other, in sequence. Although this is reasonable in some cases,…

    June 11, 2025
  • Why Skipping Unit Tests Is A Bad Idea

    Why Skipping Unit Tests Is A Bad Idea

    Unit tests were introduced about twenty years ago with the intent of improving software quality. They can be tedious, so developers (especially junior developers) tend to avoid them. It is well known that there is a learning curve associated with writing unit tests, and mentoring is essential to build this skill. While working in a…

    June 4, 2025
1 2 3 … 5
Next Page→