Skip to content

aalhour/aalhour

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 

Repository files navigation

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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors