Introduction I was reviewing a PR at work a month ago where a new application was setting up its database service, and I saw the connection pool properties, which made me think about how a small confi
Introduction When I joined PayPay, one of the first things I tried to understand was how our services were containerized. A common exercise when joining a new backend team is to look at the Dockerfile
Background At my current org, I got introduced to a very fun tool, PagerDuty - because who doesn't love being woken up at 3:31 AM? A similar alert flared up for one of our merchant services. While it mercifully avoided the 3 AM slot, the diagnostic w...
⬅️ Background At my previous organization, we were building a health platform, and one of the most critical, high-traffic components was our Lab test booking service. One of its core functions is to serve package details like inclusions, prices, and ...
Introduction At our current organization, earlier this year as we were looking at the errors at one of our signup API, we observed that nearly 5% of our requests were getting failed, all due to 400 BAD REQUEST errors, and the root cause was traced ba...
Introduction As a developer, how often have you seen a repository with packages that are out of date? New package updates generally include new features, performance improvements, and security fixes. But keeping track of all outdated dependencies in ...
Introduction At my current org, we have many applications running behind the API gateway that interacts with the outside world using REST APIs. To track server-side failures we built an alert system that nudges every time we get any 5XX error. As soo...
Introduction Any application that communicates with other resources over a network has to be resilient to transient failures. These failures are sometimes self-correcting. For example, a service that is processing thousands of concurrent requests can...
Introduction Choosing which database to use is one of the most important decisions you can make when starting working on a new app or website. If you realize down the line that you’ve made the wrong choice, migrating to another database is very costl...
In software engineering, SOLID is an acronym for 5 design principles intended to make software designs more understandable, flexible, robust, and maintainable. Adopting these practices can contribute to avoiding code smells too. The 5 SOLID principle...
Introduction In a client-server architecture, the client can request a job to be done from the server by sending messages to the server. Handling this communication can increase in complexity when you begin to manage the rate at which messages are se...
Introduction In this article, you will learn how to use Spring Boot and HarperDB to create a microservice. Later on, you will also look at how to deploy the complete application on AWS Elastic Beanstalk. You will be building an Employee Leave Managem...
Code should be written in such a way that is self-explanatory, easy to understand, and easy to modify or extend for the new features. Because code is read more than it is written that's why so much emphasis is given to clean code. The more readable o...
Introduction In every software system, we need unique Ids to distinguish between several objects from one another. Recently, I wrote about the unique Id generation for a large scale distributed environment. In that article, we touched a little on UU...
In this article, I’ll share 10 of the JavaScript tips, tricks, and best practices that I follow and found useful. 1. Use Numeric Separators This is one of the most used operators when I have to deal with large numbers. When using a separator (with ju...
Introduction 👋 Python is a beautifully designed high-level interpreted programming language that provides us with many features. This is a gentle guide to some of those Python features that you probably might not be aware of or didn't know about tha...
❓ Did you know you can’t name a file “Con” in Windows If you’re running a Windows machine, try it right now. Go to File Explorer -> create a new folder -> name it "Con" Did it work? Now try with "PRN", "AUX" or "NUL". What did you get? Probably this ...
You made a machine learning or deep learning model. Amazing! 🥳 But how do you check its performance and robustness? Simply building a predictive model is not enough. You have to create a model which gives high accuracy on out-of-sample data. That's ...
Introduction Recently at work, We were looking for a way to generate unique IDs across a distributed system that could also be used as the primary keys in the MySQL tables. We knew in a single MySQL database we can simply use an auto-increment ID as ...
This article has been in my drafts for a long time but I never clicked that Publish button as I was skeptical whether people would connect with these kinds of topics on my blog or not. But because now this thought is constantly juggling in my head, S...