# aalhour > Personal site of Ahmad Alhour: a public notebook for learning in the open about software systems, databases, programming languages, computer architecture, books, and the occasional reflective detour. Bias toward construction: take ideas apart, build small versions, let details teach what abstractions hide. ## About - [About Ahmad Alhour](https://aalhour.com/about/): background, current focus, contact links - [All writings](https://aalhour.com/writings/): chronological essay index - [Categories](https://aalhour.com/categories/): browse by topic area - [Tags](https://aalhour.com/tags/): browse by tag ## Active series - [Building BeachDB](https://aalhour.com/tags/beachdb/): a toy LSM-based storage engine in Go, built in public to learn database internals end-to-end. Topics include WAL/durability, fsync semantics, memtables and skip lists, SSTables, and crash testing. ## Posts - [Crash-only confidence, part 1: from random kills to exact boundaries](https://aalhour.com/posts/beachdb-crash-testing-part1/): A crash test that cannot explain itself is mostly theater. - [Making the on-disk state real: Sorted-String Tables (SSTables)](https://aalhour.com/posts/beachdb-sstables-v1/): Files are easy; files you can trust, inspect, and recover from are the real step. - [The Memtable: where writes go to wait](https://aalhour.com/posts/beachdb-memtable-v1/): Before the disk gets involved, memory has to learn the rules. - [The syscall I forgot: directory fsync](https://aalhour.com/posts/beachdb-the-syscall-i-forgot/): Sometimes the missing durability bug is one directory above where you were looking. - [Durability is a promise you can't hand-wave: Write-Ahead Log (WAL)](https://aalhour.com/posts/beachdb-wal-v1-milestone/): Once bytes leave your process, the comforting story gets complicated. - [Building BeachDB: A Database from Scratch (in Go)](https://aalhour.com/posts/building-beachdb/): The fastest way past hand-waving is to make the machine answer back. - [On Watershed Moments: Boredom, Growth, and Curiosity](https://aalhour.com/posts/on-watershed-moments/): A personal essay about boredom, growth, layoffs, and using watershed moments to choose the next career direction deliberately. - [On Stoicism: 40 lessons I learned in 2017, Part 2](https://aalhour.com/posts/40-stoic-lessons-part2/): More notes on steadiness, judgment, adversity, and the work that stays yours. - [On Stoicism: 40 lessons I learned in 2017, Part 1](https://aalhour.com/posts/40-stoic-lessons-part1/): Notes on control, attention, action, and making philosophy practical. - [Summary of My 2017 Readings](https://aalhour.com/posts/summary-of-my-2017-readings/): The books, themes, and margins that shaped a year of reading. - [nand2tetris, or Building a Computer from First Principles](https://aalhour.com/posts/nand2tetris-how-to-build-a-computer-from-first-principles/): Going from a single NAND gate to a working computer over twelve weeks — what the nand2tetris course actually teaches you. - [A Queryable List for Python: Proof of Concept](https://aalhour.com/posts/queryable-list-for-python/): What I missed from LINQ, and a small experiment in bringing query-shaped thinking to Python lists. - [Implementing Data Structures and Algorithms in C#](https://aalhour.com/posts/c-sharp-algos/): Working through MIT's algorithms course by building an open-source C# library of the data structures it covers. - [Hello, World!](https://aalhour.com/posts/hello-world/): A public notebook for learning in the open — software systems, databases, books, and the occasional reflective detour. ## Optional - [RSS / Atom feed](https://aalhour.com/feed.xml): full-text feed of new posts - [Sitemap](https://aalhour.com/sitemap.xml): full URL index