Skip to content

Blog

Why is 127.0.0.1 the 'Loopback' Address?

If you've ever built a website or run a database, you've used 127.0.0.1. It’s the universal address for "this computer right here."

But have you ever stopped to wonder why it's such a weird number? Why not 1.1.1.1 or 0.0.0.0? And why is the whole 127.x.x.x block reserved just for us?

I used to think that the web was one continuous conversation. I log in, and the website "remembers" me while I browse.

But the truth is, the web is stateless. Every time you click a link, it's like meeting the server for the first time. It has no idea who you are or what you did five seconds ago.

Cookies are the sticky notes that solve this problem.

How to add a directory to your PATH

I installed a new command-line tool the other day. The instructions said to add its directory to my PATH.

I remember this being confusing. You edit a file, but which one? And what do you add? If you get it wrong, you might even break some of your existing commands.

So let's look at how the PATH works and how to change it safely.

ASCII vs UTF-8: Why Emojis Break Things

I used to think that a "character" was just a "byte." If I had a string of 10 characters, it should be 10 bytes long.

That works fine if you only use the English alphabet. But the moment someone adds an emoji (like ⚡) or a character from another language, the math breaks.

Let's look at why character encoding is so confusing.

Concurrency vs Parallelism: A Coffee Shop Guide

I used to use the words "concurrent" and "parallel" interchangeably. I thought they both just meant "doing more than one thing at the same time."

But in computer science, they have very specific meanings. As Rob Pike (one of the creators of Go) says: "Concurrency is about dealing with lots of things at once. Parallelism is about doing lots of things at once."

Let's look at how that works at my favorite coffee shop.

Latency vs Throughput: The Plumbing Analogy

I used to think that "Internet Speed" was just one number. If I had 100 Mbps, everything should be fast, right?

But sometimes, even with a great connection, websites take forever to start loading, or my video calls stutter.

It turns out "speed" is actually two different things: Latency and Throughput.

Dang it! Built the indie app, forgot the marketing (again)

I often spend way too much time building and forget about marketing or reaching out to early users. For the past 6 months, I’ve been working on collector.dev — a Chrome extension that turns your new tab into a productivity launchpad. The MVP was ready in the first 2 months... but then I spiraled.

I spent months obsessing over the right color scheme, fine-tuning animations, and endlessly polishing things. The goal was always to build something truly useful — something that solves real problems and gives me that quiet satisfaction of “yeah, I made that.”