Build Your Own X

i wanted to make low level projects from scratch and i thought this might be good starting list for my own

  • Web Server

    • HTTP
    • sockets
    • request/response cycle
    • routing
    • concurrency basics
  • Shell

    • processes
    • stdin/stdout
    • pipes
    • execution
    • environment variables
  • Git

    • hashing
    • blobs
    • trees
    • commits
    • content-addressable storage
  • Redis

    • TCP servers
    • in-memory storage
    • serialization
    • persistence
    • protocols
    • concurrency
  • Docker

    • namespaces
    • cgroups
    • isolation
    • containers
    • Linux internals
  • Database

    • B+ trees
    • indexing
    • storage engines
    • query parsing
  • Programming Language

    • parsing
    • ASTs
    • interpreters
    • execution
    • compilers