Skip to content
View aalhour's full-sized avatar
πŸ’­
"That which I cannot build, I do not understand." ~ Richard Feynman
πŸ’­
"That which I cannot build, I do not understand." ~ Richard Feynman

Block or report aalhour

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
aalhour/README.md

Hi, I'm Ahmad πŸ‘‹πŸΌ

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.

Things I've Built

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.

Contributions

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.

What I'm Usually Thinking About

  • 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

Writing And Visual Notes

I use writing as a forcing function for understanding. When a static explanation is not enough, I sometimes build small interactive animations too.

Elsewhere

Pinned Loading

  1. tursodatabase/turso tursodatabase/turso Public

    Turso is an in-process SQL database, compatible with SQLite.

    Rust 18.4k 851

  2. beachdb beachdb Public

    πŸ–οΈ πŸͺ¨ Distributed NoSQL database in Go

    Go 21 2

  3. PyCOOLC PyCOOLC Public

    🐍 πŸ†’ Compiler for the COOL programming language in Python 3

    Python 40 10

  4. Assembler.hack Assembler.hack Public

    πŸ“Ÿ 16-bit machine code assembler for the Hack Assembly Language (nand2tetris)

    Python 84 18

  5. micro_kanren.py micro_kanren.py Public

    πŸŒ€ A ΞΌKanren implementation in Python 3, with an Object-Oriented flavor

    Python 10

  6. awesome-compilers awesome-compilers Public

    😎 Curated list of awesome resources on Compilers, Interpreters and Runtimes

    9.8k 691