Developer · Mathematician · Systems Tinkerer
- 🔭 I’ve built 41 public repositories – from a toroidal ultimate tic‑tac‑toe game to a from‑scratch HTTP/1.1 server in Go.
- 🎓 I think in types and theorems (Haskell, type theory, automated resolution).
- 🛡️ I self‑host critical infra: VaultWarden + fail2ban + Caddy on a VPS, with encrypted backups.
- 🌐 I speak Go, Rust, Zig, TypeScript, Haskell, C++ – and I'm not afraid to use them.
- 📐 Mathematician by training, engineer by obsession.
“I implement things so I don't have to trust them.”
| Project | Tech stack | Why it's cool |
|---|---|---|
| TTTT (Toroidal Ultimate Tic‑Tac‑Toe) | Go, React, TypeScript, Redis, WebSockets, SQLite, Docker | Real‑time multiplayer, matchmaking, spectator mode, reconnection – on a toroidal board that eliminates draws. |
| HTTP/1.1 from scratch | Go, TCP/IP | No external libraries – request parsing, routing, response generation. Because reinventing wheels teaches you how they roll. |
| Ostara | Haskell, Type theory | Automated theorem prover implementing the resolution algorithm. My third‑year "mini‑project" that grew up. |
| Self‑Hosted Password Manager | VaultWarden, Docker, Caddy, fail2ban, VPS | Production‑grade self‑hosting: reverse proxy, brute‑force protection, automated encrypted backups. |
| Cryptography in Zig | Zig, SHA1, HMAC | Low‑level exploration of crypto primitives. Next step: WASM + browser demo. |
More: Snake (Godot), wgpu_learn (Rust + graphics), go-tttt (classic tic‑tac‑toe).
- Languages – Go, Rust, Zig, TypeScript, Haskell, Python, C++
- Backend – Node.js, WebSockets, Redis, SQLite, gRPC (learning)
- Frontend – React, TypeScript, Tailwind
- DevOps & infra – Docker, Caddy, fail2ban, VPS, GitHub Actions
- Cryptography & math – SHA1, HMAC, resolution algorithm, type theory
- 🔐 WASM port of my Zig crypto library – client‑side file hashing with zero server upload.
- 🎮 Load testing my TTTT game server with
k6(to prove it can handle 1k+ concurrent players). - 🧩 Finding my first external open source PR – because personal repos don't count, and I want that 35/35. If you have a good‑first‑issue in Go/Rust/Haskell, ping me.
- Blog: tanwar.dev – I write about cryptography, type theory, and the occasional server nightmare.
- GitHub issues / discussions are open – I read everything.
“Simplicity is the ultimate sophistication, but sometimes you just need a toroidal board.”
— Rohit


