I'm a computer scientist by education and a software engineer by trade.
I like building things that help me understand other things: databases, compilers, storage engines, distributed systems, old-school data structures, and the occasional practical tool that makes day-to-day engineering less annoying.
These days I'm especially interested in database internals and distributed systems. I'm building BeachDB, a small NoSQL database and storage engine in Go, mostly to stop hand-waving the hard parts and learn them by building them in public.
I also write at aalhour.com, where I publish notes on software, systems, books, and whatever else I'm currently curious about.
A few projects that represent my usual rabbit holes:
- ποΈ BeachDB: a distributed NoSQL database and storage engine in Go.
- βοΈ fractaltree: a generic, concurrent-safe implementation of a BΞ΅-tree (fractal trees) in pure Go.
- π awesome-compilers: a curated list of resources on compilers, interpreters, and runtimes.
- π PyCOOLC: a compiler for the COOL programming language in Python 3.
- π Assembler.hack: a 16-bit machine-code assembler for the Hack assembly language from nand2tetris.
- #οΈβ£ C-Sharp-Algorithms: standard library data structures and algorithms implementations in C#.
- π§π»ββοΈ cookiecutter-aiohttp-sqlalchemy: an opinionated template for async Python web APIs.
- π micro_kanren.py: an object-oriented microKanren implementation in Python.
Some of these are active. Some are archived. Most started as an excuse to understand something better.
I also contribute to database/storage projects when I can:
- π€ Turso: an in-process SQL database compatible with SQLite.
- π« Apache HBase: a distributed, Bigtable-inspired NoSQL database on Hadoop.
- database internals
- storage engines
- distributed systems
- compilers and programming languages
- infrastructure and data engineering
- building educational demos and interactive explanations
- software that is inspectable, boring in the right places, and honest about its tradeoffs
I use writing as a forcing function for understanding. When a static explanation is not enough, I sometimes build small interactive animations too.
- Blog: aalhour.com
- Projects: aalhour.com/projects
- Animations: aalhour.com/animations
- Talks: aalhour.com/talks
- LinkedIn: linkedin.com/in/aalhour
- Mastodon: hachyderm.io/@aalhour





