101 Projects
I thought I understood how the internet worked. I could explain TCP's three-way handshake, draw a DNS resolution diagram, describe how HTTP request/response cycles work. Then I tried to implement a TCP stack from scratch and realized I couldn't even parse a segment header correctly.
There's a gap between knowing the vocabulary and understanding the thing. They feel identical from the outside. You can talk about congestion control at a dinner party and sound like you know what you're talking about. But try to implement Reno's fast retransmit algorithm and you discover that you knew the words, not the idea.
These are implementations of things I thought I understood. Not toy versions — real ones, with the hard parts included. TCP with congestion control and RTT estimation. DNS with recursive resolution and caching. HTTP with chunked transfer and persistent connections. The goal isn't to replace production implementations. The goal is to close the gap between vocabulary and understanding.
- TCP — full state machine, congestion control, reliable delivery over unreliable networks. Complete.
- DNS — recursive resolution, packet parsing, caching, common record types. In progress.
- HTTP — request/response parsing, methods, headers, content negotiation, persistent connections. In progress.
- Encryption — symmetric and asymmetric encryption, key exchange, hashing. Planned.
- Authorization — authentication flows, sessions, tokens, access control. Planned.
- Encrypted Messaging — end-to-end encrypted messaging protocol. Signal protocol from scratch. Planned.
Building in public. Each one takes longer than I expect.