Thinking Machine

I am a Full Stack Developer, I love to learn new things and share my knowledge with others. On this blog I share my experiences and knowledge about programming, web development and other things that I find interesting.

Microservices, The bad parts

If your team is considering microservices, you should be aware of the challenges associated with them. Microservices are a great way to scale your application, but they come with a lot of overhead. In this article, I will talk about the challenges and considerations associated with microservices. Local Development Developing and testing a monolith is straightforward as developers can run the entire application on their workstation. However, with a microservices architecture, developers need to run each service individually or together depending on the coupling between the services....

January 15, 2024 · 3 min

Better Fetch API with Decorators

Introduction Like most full stack JavaScript developers, I have come to love the web Fetch API. It is a simple and elegant way to make HTTP requests. However, the Fetch API lacks some features that are essential for making HTTP requests in a production environment. Here are some of those features: Retry Timeout Logging Headers In this post, I will show how to use the decorator pattern to enhance the Fetch API and add some of these features without modifying the Fetch API itself....

October 10, 2023 · 4 min

Seven Ideas for creating a highly productive development team

Introduction I have been a member of a development team for a while now and I have seen what works and what doesn’t work. I have seen what makes a development team highly productive and what makes a development team unproductive. Consistent Development Environment The development environment should be consistent across all developers. This is important because it reduces the time it takes to onboard new developers and it also makes it easier for developers to collaborate with each other and debug issues when they arise....

September 20, 2023 · 4 min

HTTP Refresher

As a full stack engineer, you will be dealing a lot with the ubiquitous HTTP protocol. In this article I will cover various aspects of HTTP that you should know about. By the end of this article, you should have a good understanding of HTTP. This article will server as a reference for you to come back to when you need to brush up on HTTP. I hope you find this article useful and learn something new about HTTP....

October 10, 2021 · 17 min
gambling programmers

isNaN is like gambling

isNaN is a nice function that checks if a value is not a number but has been the source of many sleepless nights and wasted weekends for developers. The reason for this is that isNaN is not a reliable way to check if a value is not a number. Let me show you some examples: Example 1 This is the expected behavior of isNaN. It returns true if the value is not a number and false if it is a number....

January 1, 2021 · 3 min

My 1st post

September 15, 2020 · 0 min · 0 words · Me

In this post, I will discuss different deployment patterns that you can use to deploy your application into production. The point of these deployment patterns is reduce downtime and provide easy rollbacks incase of a defective deployment. The effect of these patterns can be observed using application telemetry data. Recreate Deployment With this deployment pattern, you deploy a new version of your application and delete the existing version of the application....

3 min

Progressive Delivery In this post, we will be looking at what progressive delivery is, why it is important and how to do it. we will also compare it with a traditional deployment strategy often referred to as Big Bang Deployment. Traditional Delivery Traditional Deployment or often referred to as Big Bang Deployment is a deployment strategy where the entire application is deployed at once. This is the most common deployment strategy used in the industry today....

4 min