PartyPopped
live
Full-stack event discovery platform
A React 19/Vite frontend and a Spring Boot REST API with 7 controllers and 35+ endpoints,
backed by Supabase/PostgreSQL, deployed on Vercel and Render. Auth is stateless: Supabase
issues the JWTs and a custom Spring Security filter chain validates them against a shared
HMAC secret, so identity logic lives in one place. The backend is laid out in the same
controller/service/repository structure across 8 domain modules, with JPA entities and
hand-written DTO mappers. On top of that there's a social layer - follows, paginated feeds,
bookmarks, attendance tracking - and image uploads proxied through a custom HTTP client to
Supabase Storage. Monitoring and centralized logging run through Grafana Cloud and Spring
Actuator.
- Java
- Spring Boot
- React
- PostgreSQL
- Supabase
- Grafana
HTTP Server in C++
from scratch
Single-threaded epoll server, 14k req/s
I wrote an HTTP/1.1 server from scratch in C++ to see the C10K problem happen for real.
The naive thread-per-connection version hit a hard wall at 5,889 concurrent connections
under wrk, mostly thread stack overhead. I rebuilt it around a single-threaded epoll event
loop with non-blocking sockets, tracking each connection's state (reading headers, reading
body, writing) explicitly. That version sustained 14k req/s with zero socket errors from
100 all the way up to 15,000 concurrent connections.
Unix-like Shell in Java
from scratch
Command parsing and process management
A Unix-style shell in Java. Built-ins and external programs both implement
the same interface, so the main loop just parses a line, looks up a command,
and runs it. Handles quoting, escaping, and output redirection (> and 1>).
Built-ins are cd, pwd, echo, type, exit, and a cat that resolves its own
file paths. Anything else gets looked up on PATH and run through
ProcessBuilder. Absolute and relative paths get normalized, and the shell
tracks its own working directory.