My Thoughts

The Anatomy of a Process
Hiring is a process… and so is firing. None of those are the processes we’ll be discussing today. They’re probably better covered by HR professionals than a software engineer with a keyboard and q...

Caching Will Humble You
There are only two hard things in Computer Science: cache invalidation and naming things – Phil Karlton I recently took on a side-quest to refactor one of the applications I first worked on wh...

Be Mindful of Your Config Changes
From Google’s SRE book; “The cost of failure is education.” Devin Carraway Yesterday; okay, might not be yesterday depending on when you bump into this :), I decided to explore the idea of...

The WAL Hole Problem
TL;DR Too Short;Just Read If a WAL write is interrupted by a Unix signal, or completes as a short write, the kernel may leave a zero-filled gap at the reserved offset. During crash recovery, Ti...

When should you fsync directories?
My previous article talked about promises of disk durability, and the fact that you could still lose data even after fsync()-ing a file. This will be a short blog that builds over the previous one...

Was your data actually written to disk?
When we think of data durability, one thing comes to mind. That data has been safely stored such that an adverse occurrence like power outage or system crash doesn’t lead to data loss. In this art...

Understanding Limited Direct Execution in Operating Systems
I recently picked up this timeless book, Operating Systems: Three Easy Pieces, a book covering the fundamentals of operating systems. My motivation to read this book comes from partly working on a ...

Implementing Domain-Driven Design in Storage Engine Development
A few weeks ago, I began contributing to TidesDB, an open-source, embeddable key-value storage engine written in C. Coming from an application engineering background, I noticed that many of the des...

Linux is not an operating system
[Note: If you are confident that you know the difference between an operating system and a kernel, and why it would not make sense to call Linux an operating system as many usually do, I’d happily ...

And with that the 2025 season comes to an end...
2025 has been a year of extreme contrasts, very low lows and incredibly high highs. For me, it has been nothing short of life-changing. I began the year feeling lost and uncertain about my directio...

Simplicity is complicated
I didn’t have time to write a short article, so I wrote a long one instead. Funny thing: writing a short and accurate article about a complex topic is harder than writing a long one. Same with sof...

Everybody hates singletons!
If you’re from an OOP background or a design-patterns enthusiast like me, you’ve definitely come across the Singleton pattern. It was popularized by the Gang of Four in Design Patterns: Elements of...

What graceful shutdowns taught us about running Golang applications in production
Imagine you have been running a Golang web service in production without any issues. Everything is running perfectly, until you decide to deploy a new change to production, then everything bursts i...

Optimize Data Retrieval in Python with Time-based API Pagination
In the modern application development, APIs(Application Programming Interfaces) serve as the core mechanism for connecting various systems and enabling seamless data exchange. An API is a way for ...

FastAPI Tutorial: Creating a CRUD Application Easily
FastAPI is a modern, fast(high-performance), web framework for building APIs with Python 3.7+ based on standard Python type hints. FastAPI uses ASGI(Asynchronous Server Gateway Interface) instead o...

What is HTTP and How Does It Work?
You may have come across the term HTTP maybe in books or even web pages, but have you ever taken time to really understand what it entails. Well let’s take a deep dive, okay not too deep but just t...