I believe the best way to learn is by building. This page tracks what I've built and what's on deck — things that push me to explore systems, networking and kernel programming. Feel free to steal any idea and build it yourself. If you do, tag me on X or GitHub!
In Progress
Black Jack
building
Game
Multiplayer
Casino game with UI similar to actual casino tables + multi-player support.
Built
network-policy-assistant
Go
Kubernetes
CLI
CLI linter for Kubernetes network policies — detects duplicate peers, redundant rules, and overlapping ports. Supports standard NetworkPolicy and AWS CRDs.
Gvisor Netstack Experiments
Go
Networking
TCP/IP
Userspace TCP/IP stack exploration using Gvisor's netstack.
Solana Pool Monitor
Go
Solana
DeFi
AMM pool price monitoring via account subscriptions on Solana.
Damn Vulnerable DeFi
Solidity
Security
DeFi
Solutions to DeFi security challenges — flash loans, oracles, governance, etc.
LedgerEntriesCreator
Python
Finance
ledger-cli
Scripts to transform investment platform data into ledger-cli entries.
Backlog
eBPF Exploration
Most of these use Rust Aya — eBPF development in Rust.
- XDP firewall with web UI — reference
- Packet rate calculator - logic for packet rate calculation when ebpf prog is attached to networking hook.
- TCP state monitor with filter capabilities (address, state updates)
- XDP DNS cache
- BPF map stats printer — print stats without iteration (total map size, current size). This could be used as a generic bpf metric emission solution.
- UDP and TCP checksum calculation post IP/Port changes - https://github.com/vadorovsky/network-types or create a separate crate for IP/Port modification and checksum calculation.
- Build Scheduler with eBPF in Rust aya and sched_ext — reference
- Rewrite nat64 in Rust-Aya — reference
- Explore Shared socket for TCP/UDP traffic for host local traffic — reference
Gvisor Netstack
- Packet modification: Do TCP communication over UDP and use GENEVE header TLV to send TCP connection related information in the header itself. This is something like TCP Over UDP. It would need a custom UDP server to extract inner packet and pass it on to TCP listener.
Cryptography
- PKCS#11 server using p11-kit, communicate with crypto11 client. PKCS#11 server could be running inside the EC2 Nitro Enclave.
Simple Casino Games
UI similar to actual casino tables + multi-player support. Building these for research — gotta understand the odds before next Vegas trip.
- Craps
- Baccarat
- Roulette