[2026-03-25 Wed 12:56] Ultra learning system programming - Why, how and what?
The first goal for my ultra learning journey is system programming, with a nudge towards networking
Why?
- expand and deepen my software engineering skills.
- future proof my career by going into an industry that value performance, security and reliability as much as time to market.
- first step towards potential move into embedded systems.
- challenge my current status quo as a web developper
What? This is a known unknown, but essentially understanding what I know today about networking on a deeper, atomic level. UDP, TCP, syscall, TLS, internet stack, C interop, memory management.
How?
- Read the rust book, as fast as possible
- Read the rust book again, the brown university version with quizz, along side the rustlings
- Project 1: a TUI to tail lambda function - list functions, choose a function, tail -f it. Handle authentication.
- Project 2: a DNS resolver - UDP, socket.
- Project 3: a http server from scratch - TCP, concurrency.
- Project 4: memory allocator - deep understanding of memory management.
- Project 5: wireguard clone - encryption, concurrency.
None of of those project have to be production, but complete enough that they operate and I fundamentally understand the ins and outs of it, including their limitation.
End project: a travel router on an Orange PI, featuring the DNS resolver, http server and wireguard clone above.