Home

Work

Projects

Things I've designed and built — from full-stack products to systems tooling.

012026

System Design Simulator

Practice system design and stress-test your architecture under real traffic.

→ Watch your design break — and learn why — before production does

The problem. System design is usually learned on a whiteboard, where diagrams never fail. There's no feedback loop between a design decision and its consequences under load, so it's hard to build intuition for how systems actually behave when traffic spikes or a component goes down.

What I built. An interactive simulator where you build a system from components, then push traffic through it and watch how it responds in real time. A chaos-engineering mode lets you inject failures — high-traffic surges, downed services, and other chaos scenarios — so you can see where the design holds and where it collapses.

  • Live traffic simulation that surfaces latency and throughput across the whole system
  • Chaos Monkey mode injects failures — traffic spikes, service outages, and more — to test resilience
  • Turns abstract system-design tradeoffs into observable, testable outcomes
TypeScriptNext.jsNode.js
022025

mdPreview CLI

Preview and live-edit your Markdown files without leaving the terminal.

→ Rendered Markdown and live editing, all in the terminal

The problem. Previewing a Markdown file usually means alt-tabbing to a browser or a separate editor, which breaks flow for anyone who lives in the terminal.

What I built. A command-line tool that renders a styled, live preview of a Markdown file right in the terminal and lets you edit it in place — the rendered view updates as you type.

  • Renders Markdown to styled terminal output in real time
  • Edit the file live in the terminal and watch the preview update instantly
  • Stays entirely in the terminal — no browser or external editor needed
TypeScriptNode.js
032025

Real-Time IoT ETL Pipeline

A streaming pipeline that ingests and processes IoT telemetry in real time.

→ Raw device data to an analytics-ready warehouse, continuously

The problem. High-volume telemetry from IoT devices has to be ingested, transformed, and made queryable with minimal delay — batch jobs can't keep up and leave analytics stale.

What I built. A real-time ETL pipeline that ingests device data through AWS IoT Core, streams it via Kafka, and transforms it with Flink — archiving raw events to S3 and landing processed data in a warehouse for analytics.

  • Ingested device telemetry through AWS IoT Core over MQTT
  • Low-latency stream processing with Apache Kafka and Apache Flink
  • Raw events archived to S3; processed data stored in a warehouse for downstream analytics
AWS IoT CoreApache KafkaApache FlinkAWS S3
042025

End-to-End Recruitment Management Dashboard

A single dashboard that runs the whole hiring pipeline for HR teams.

→ Scheduling, screening, and job posts in one workflow

The problem. HR teams juggle interview scheduling, candidate validation, and job postings across disconnected tools and spreadsheets — slow to coordinate and easy to get out of sync.

What I built. A comprehensive recruitment dashboard that centralizes interview scheduling, profile validation, and job-post management, with Google Calendar wired in for real-time scheduling and automated reminders.

  • Integrated the Google Calendar API for real-time interview scheduling and reminders
  • Profile validation and job-post management unified into one HR workflow
  • Next.js frontend backed by a MongoDB + Prisma data layer
Next.jsNode.jsExpressMongoDBPrismaTailwind CSS
052024

React Native BMS Monitoring App

A cross-platform app to configure and monitor battery systems over Bluetooth.

→ Live battery telemetry on mobile, no network required

The problem. Monitoring a Battery Management System usually means proprietary desktop tooling, but field users need live battery data on their phones — often with no network connection nearby.

What I built. A cross-platform React Native app that connects to a BMS over Bluetooth Low Energy to configure the device and stream live metrics — voltage, temperature, and state of charge — using native modules to bridge the hardware.

  • Real-time BLE communication with BMS hardware via custom native modules
  • Live voltage, temperature, and state-of-charge readouts
  • Redux for predictable state across continuous live data streams
React NativeBLEReduxNative Modules