Personal projects and experiments.
What I build outside of work — small tools, prototypes, and explorations driven by curiosity rather than a roadmap.
- GitHub →
Factorial WASM
Built a little Rust → WASM factorial demo with a Vue 3 frontend. Arbitrary-precision math via malachite, running inside a Web Worker so the UI never blocks. Toolchain (wasm-bindgen + wasm-pack + vite-plugin-wasm) is genuinely smooth.
- GitHub →
Notable
Notes turned out to be a great playground for poking at different tech — rich-text editing, full-text + trigram search, passwordless magic-link auth, and an in-house design system (Radix primitives, SCSS tokens). A TypeScript pnpm monorepo: React 19 SPA on Vite, Fastify 5 / Postgres API with Drizzle, an Astro landing, all behind a Caddy edge. Zod schemas shared end to end as a single contract, integration-tested against real Postgres with Testcontainers.
- GitHub →
Messages
I was curious whether room-based live messaging could work with nothing fancier than HTTP and Server-Sent Events — no WebSockets, no client framework. A small Fastify server with password-protected rooms felt like the right scope to find out.
- GitHub →
15 Puzzle
Pixi.js had been on my radar for a while, so I picked the smallest game I could finish and built it end to end — less about the puzzle, more about seeing how the library feels once you're past the tutorial.
- GitHub →
Snake
I wanted to know what building a game feels like when you strip everything away — no canvas library, no framework, just JavaScript and the DOM. Snake was small enough to finish, big enough to make the loop, collisions, and pacing actually matter.