Engineering
I take systems apart to see how they work, then write down what I found.
18 articles: 6 in 2 series, 12 guides
Search the writing
Series
- 3 articles Java Collections & Data Structures: From Scratch Build the data structures behind Java's collections, from arrays and ArrayList toward B+ trees and lock-free queues, and see how the JVM memory model shapes them. Read the series →
- 3 articles How Docker Works: Container Internals Under the Hood How containers work under the hood: namespaces, cgroups v2, overlay2 storage and the runc runtime. Read the series →
Guides
- Mastering Cron Expressions: From Syntax to Production-Grade Scheduling How cron expressions work across Unix, Quartz and Spring: special characters, a cheat sheet, time zone and daylight saving edge cases, and distributed locking.
- Part 2: Web Server Mastery - Serving Static Content Like a Pro Part 2 of the Nginx series. Serve several websites from one server, cache static files and turn on compression.
- The Complete Nginx Mastery Series: From Zero to Production Hero Part 1 of the Nginx series. What Nginx is, how to set it up from scratch, and what the rest of the series covers.
- How I Fixed the Mystery of Corrupted File Downloads from AWS S3 Users said downloaded documents were corrupted, yet the files in S3 were fine. How I tracked down the cause, and the fix.
- Setting Up PostgreSQL on macOS: A Fresh Start Guide Install PostgreSQL on a Mac with Homebrew, start the service, create a database and a user, and connect your app to it.
- Understanding Linux File and Folder Permissions How to read a permission string such as drwxr-xr-x, what each part means for the owner, the group and everyone else, and how to set it.
- How to stop individual and all Docker processes The docker stop commands I use almost every day: stop one container by ID or name, or stop every running container at once.
- Learning JavaScript the Easy Way: Unlocking the Power of Scope with Closures A closure is a function that keeps access to its parent's scope after the parent has finished. A short explanation with examples.
- Learning JavaScript the easy way: Scopes and Hoisting What scope means in JavaScript, how global and local scope differ, and what hoisting does to your variables, from beginner level up.
- Learning JavaScript the easy way: Variables What JavaScript variables are, how to declare them, and why they are the starting point for everything else, explained for beginners.
- How to Rename Git Branches Locally and Remotely Rename a Git branch on your machine and on the remote, step by step, using a branch called feature/new-feature as the example.
- Learning JavaScript the easy way: JavaScript Grammar Part 1 of Learning JavaScript the easy way. Case sensitivity, identifiers, comments, statements and expressions, written for beginners.