Writing on software design, databases, and backend engineering.

Some of my notes & thoughts on programming, optimization, software design, and more, collected in chronological order.

Getting Started with gRPC in Python

Welcome to the second part of our blog series on gRPC using Python. In our previous blog, we talked about the basics of gRPC, its architecture, and its various components. In this blog, we will be going through how to write a gRPC client & server so in Python.

A Beginner's Guide to gRPC

gRPC is a high-performance, open-source universal RPC (Remote Procedure Call) framework. It is developed by Google and provides efficient, low-latency communication between microservices.

So, what are ACID Properties?

Like many other weird acronyms (DRY, KISS, SOLID...) in computer science, ACID refers to a group of 4 guiding principles - Atomicity, Consistency, Isolation & Durability that ensure database transactions are processed reliably in a database system.

Introducing Vinyl, scribble for Music 💿

Introducing Vinyl, a multiplayer song guessing game in which the first one (three people actually) to guess the name of the song from its 30 second preview wins 💿

Bloom Filters

Lets say you are building a sign-up service for an application. You need to ensure that the user doesnt choose an username that has already been taken by someone else. How can you achieve this without querying the database for every username?

Connection pooling ft. PostgreSQL & Python

When we develop a backend service for an application, we often do not think much about the underlying database connections that are used to read/write/modify data in the database. While a few database connections are not expensive, things start to change drastically when we scale up. So before we learn about what connection pooling is and how it can help us in building high performance systems, we need to understand how database connections work.