This Portfolio API
FlagshipBackend Engineer
The backend serving this very site - Fastify, Postgres, OpenAPI, metrics.
The site you are looking at is powered by a REST API I built in TypeScript with Fastify and Drizzle/Postgres - the projects, contact form, live visitor stats and every developer tool on this site are all served by it, so the portfolio is itself the demo. Zod schemas are the single source of truth: they validate incoming requests, serialize the responses, and generate the interactive OpenAPI docs automatically, so the docs can never drift from the code. It ships what a real production API needs - structured request-scoped logging, Prometheus metrics, liveness and readiness probes, per-route rate limiting, SSRF protection on outbound requests, and a full Vitest suite that runs against a real Postgres in CI. A background worker drives the uptime monitor and WebSockets power the live webhook inspector. The whole thing is containerized with Docker, fronted by nginx with TLS and a strict security-header policy (A-graded by the site’s own inspector), and shipped with GitHub Actions CI/CD.
TypeScriptFastifyDrizzle ORMPostgresDockerOpenAPIVitest
Real-Time Live Streaming Platform
Founder & Engineer
In progress - a low-latency, many-to-many live video platform with map-based geo-discovery, built on a WebRTC SFU.
An in-progress platform for live video at scale. On the backend I am building the media and services layer: a WebRTC SFU that fans out low-latency broadcasts to many concurrent viewers, server-side recording and HLS pipelines for replay, and a geo-spatial, map-based discovery system that places live streams on an interactive map in real time over WebSockets. It ships on iOS, Android and web - TypeScript across a Node.js API, native iOS and Android apps (React Native) and a web client, plus a robust web-based administration portal for operations, moderation and configuration - all backed by Postgres, with containerized media servers and RTMP ingest for external broadcasters. The interesting work has been in real-time media: connection resilience and reconnection, video orientation and codec correctness across devices, and keeping viewer fan-out performant as concurrency grows.
TypeScriptWebRTC / SFUReal-time MediaNode.jsWebSocketsPostgreSQLReact NativeDocker
Developer Tools Suite
Solo build
A suite of free, backend-powered developer tools built into this site - endpoint inspector, uptime monitor, webhook inspector, breach checker, URL shortener and more.
A growing collection of genuinely useful developer tools, each served by my own API - and each one exercises different backend muscles. A WebSocket-based webhook inspector streams incoming requests to the browser in real time; a background worker runs uptime checks every 60 seconds and stores the time-series; a password-breach checker uses k-anonymity so the password never leaves the browser; the endpoint inspector makes SSRF-safe outbound requests and parses TLS certificates; and the URL shortener computes click analytics in SQL. TypeScript throughout, on Fastify + Postgres, containerized with Docker and fronted by nginx.
TypeScriptFastifyWebSocketsPostgreSQLWeb CryptoDocker
Dynatrace Observability Lab
Self-directed lab
A hands-on SRE lab: full-stack observability on Kubernetes with Dynatrace - distributed tracing, problem detection and incident investigations.
A self-directed lab where I stood up a production-style stack (Node.js/Express services and PostgreSQL) on a Kubernetes cluster (k3s) and instrumented it end to end with Dynatrace - deploying the Dynatrace Operator and OneAgent alongside an OpenTelemetry Collector for automatic APM, distributed tracing, metrics and logs. I then generated realistic incidents (memory leaks, database failures, request timeouts, CPU saturation) and worked the investigation flows end to end: service dependency mapping, latency analysis, problem detection and root-cause analysis. It documents how I approach production observability and SRE incident response.
DynatraceKubernetes (k3s)DockerOpenTelemetryNode.jsPostgreSQLSRE