
Async Everywhere: Making Code ‘Scalable’ but Teams ‘Unreadable’
The Promise and Peril of Asynchronous Programming In the quest for building scalable applications, asynchronous programming has become the holy grail for many developers. The allure of improved performance and responsiveness is undeniable. However, as with any powerful tool, there’s a catch—the complexity it introduces can often make code bases more challenging to read and maintain, especially within teams. The Appeal of Asynchronous Code Asynchronous programming allows for non-blocking operations, which means that while one task is waiting for I/O or other resource-intensive operations, the program can continue with other tasks....

Testing and Monitoring ML Models in Production: Drift, Performance, Quality
Introduction Deploying a machine learning model into production is just the beginning of its lifecycle. Ensuring that the model continues to perform well over time and adapts to changing data distributions is a critical task. In this article, we will explore various strategies and techniques for testing and monitoring ML models in production, focusing on aspects such as drift, performance, and quality. What is Data Drift? Data drift occurs when the statistical properties of the input data change over time, leading to a degradation in model performance....

Refusing to Pay Down Debt: The Strategy No One Wants to Own Publicly
Introduction Debt. The four-letter word that can send shivers down the spines of even the most financially savvy individuals. We’ve all been there—staring at a stack of bills, wondering how we’ll ever climb out of the red. But what if I told you that refusing to pay down debt could be a viable strategy? Sounds counterintuitive, right? Well, buckle up, because we’re about to dive into the murky waters of debt management, and it’s not going to be pretty....

Choosing Infrastructure for Side Projects and Small SaaS Products
Introduction Starting a side project or launching a small SaaS product can be an exciting journey. However, choosing the right infrastructure can sometimes feel like navigating through a dense fog. You want something that’s reliable, cost-effective, and scalable, but with so many options available, it’s easy to get overwhelmed. In this article, we’ll explore various infrastructure choices, their pros and cons, and provide step-by-step instructions to help you make an informed decision....

The Case Against Junior Developers in Critical Backend Systems
Introduction In the ever-evolving landscape of software engineering, the debate over the role of junior developers in critical backend systems rages on. While some argue for the value of fresh perspectives and cost-efficiency, others highlight the risks associated with inexperience. This article delves into the latter perspective, exploring why junior developers might not be the best fit for critical backend systems. The Risks of Inexperience Junior developers bring a wealth of potential and enthusiasm to the table, but their lack of experience can pose significant risks in critical backend systems....