I’m a big proponent of automated testing, and so also unit testing. Automated testing is the number one tool in my toolbox to avoid or fix technical debt. But it can also become a force that is blocking you from fixing that technical debt. Here’s why. Two Schools There are two schools in unit testing and TDD: the London school and the Chicago school. The London School of TDD The London school is also called the mockist school, because it

We’re already well past New Year, so it’s very much time for another look back and forward. Why? Why do I do this, you might ask? Well, it’s nice to take a step away from the daily rush and reflect over a previous time period. That can be any period of time, but it might as well be a year. And then you might as well do it at the transition to a new year. It helps you look back

Many people struggle with time management. The week seems too short to do everything they wanted to do, and by the end of it we never seem to have found the time to do the things we wanted to do, the things we felt we really needed to do. We often feel we were distracted by others to execute less important tasks that need to be done, while we wanted to do some more important things that would improve our

A curious use-case came up to me this week. We have a REST API in AWS API Gateway that integrates with a Lambda. This is set up using Serverless. This is a multi-tenant system and because a former client didn’t do their cleanup, we’re still receiving a lot of calls that basically return errors (because the tenant no longer exists on our side). In AWS Lambda, this means a lot of useless invocations and a higher bill at the end

I’ve searched for this several times over the last year or two, and each time it takes me a while to find the solution. If you’re looking for the last queries that were executed against your MongoDB instance, these are the steps you need to perform: Enable The Profiler First, enable the profiler by executing the following command: Keep in mind that this has an impact on performance. Best not to do this on the production database. If you want

I have a customer that sells a multi-tenant SaaS platform. I often have to run the thing locally, but there is some interaction with other websites that then redirect to the customer’s system. And these website won’t redirect to localhost of course. What’s more, the application running on my localhost is running on port 3000, instead of 443 (the default HTTPS port). Let’s see how we can fix this. The hosts File First, we need to tell our system that

This post was written for the LinearB blog. You can read the original h e re. There are countless resources on software quality. If you’re reading this, you probably have an idea of what high- or low-quality software is. But defining it seems a lot harder. And if you identify low-quality software but others disagree, how can you avoid endless discussions? Let’s look at how we should understand software quality and how to measure it more objectively. Different Kinds of Software Quality The

This post was written for the Plutora blog. You can read the original here. Are you eager to deploy the next version of your software? Or are you afraid of the possible downtime during deployment? Or worse, that issues will arise and you’ll have to do a painful and complicated rollback? Then I recommend you look at blue-green deployments. Let’s look at how software is traditionally deployed, what blue-green deployments are, and how you can use them. Traditional Situation In a more “traditional”

This post was written for the Testim blog. You can read the original here. Cucumber.js and BDD aren’t new kids on the block. But they’re still fairly unfamiliar for many developers. That’s unfortunate, because the two can be very powerful tools for both the business people and developers. Let’s have a short look at what BDD is, and then see how Cucumber.js can be used to your advantage. What Is BDD? If you’re unfamiliar with BDD, don’t worry. It’s not a difficult topic.

This post was written for the Plutora blog. You can read the original here. In 2001, the Agile Manifesto surfaced. It wanted to change the software development process. The manifesto has four central themes, but not many people know that there are also 12 Agile Principles. These offer more concrete examples of how agile software development should take place. Many years later, almost every organization will say they “do agile” but many only provide lip service to the values and principles of the