Project Roulette / Projects

Frontend, Backend, Full-stack, Embedded & IoT, Systems and Games projects

18 of 30 projects. Each has a stack, five features to ship, a difficulty, a time estimate, and a bonus challenge.

Frontend · Intermediate · 2 weeks

Accessible Design System & Component Library

A themeable library of accessible UI components (dialog, combobox, tabs, data table, toast) published to npm, with a documentation site where people can try every component live.

  • React
  • TypeScript
  • Storybook
  • Vitest
  • Testing Library
  • axe-core

Features

  1. 8–10 components with full keyboard support and correct ARIA roles
  2. Light and dark theming driven by design tokens
  3. Docs site with a live props playground for each component
  4. Automated accessibility tests that run in CI on every pull request
  5. Versioned releases to npm with a generated changelog

Bonus: Visual regression testing with Playwright screenshots that block a PR if any component changes unexpectedly.

Frontend · Intermediate · 1–2 weeks

Git Repo Time-Lapse Visualizer

Paste any public GitHub repository and watch its file tree grow over time as an animated treemap, with contributor activity and the files that change most often.

  • TypeScript
  • Vite
  • D3.js
  • GitHub REST API
  • Web Workers

Features

  1. Fetch and cache commit history with pagination and rate-limit handling
  2. Animated treemap playback with a timeline scrubber
  3. Contributor timeline and a churn heatmap of hot-spot files
  4. Heavy parsing moved into a Web Worker to keep animation smooth
  5. Shareable URLs that encode the repo and timestamp

Bonus: Export the playback as a WebM or GIF that people can drop straight into their own README.

Frontend · Intermediate · 2 weeks

Browser Logic Circuit Simulator

Drag gates, wires, clocks, and LEDs onto a canvas and watch signals propagate in real time. Build anything from a half adder to a tiny CPU in the browser.

  • TypeScript
  • Canvas 2D or SVG
  • Vite
  • Web Workers
  • Vitest

Features

  1. Drag-and-drop gates, switches, clocks, LEDs, and seven-segment displays
  2. Event-driven simulation with propagation delay
  3. Truth-table generator for any selected circuit
  4. Reusable custom components built from sub-circuits
  5. Save, load, and share circuits by link

Bonus: A waveform timing-diagram viewer that works like a logic analyzer for any wire you probe.

Backend · Advanced · 2–3 weeks

Distributed Background Job Queue

A Redis-backed job system with multiple workers, retries, scheduled jobs, and a dead-letter queue, plus a small dashboard showing what's running and what failed.

  • Go
  • Redis
  • PostgreSQL
  • Docker Compose
  • Prometheus

Features

  1. Enqueue API with priorities and delayed jobs
  2. Exponential-backoff retries and a dead-letter queue
  3. Horizontally scalable workers with graceful shutdown
  4. Idempotency keys that prevent duplicate processing
  5. Metrics endpoint for throughput, latency, and failure rate

Bonus: A chaos test script that kills workers mid-job and proves, with logs, that no job is ever lost.

Backend · Intermediate · 1–2 weeks

Webhook Relay & Replay Service

Receives webhooks from services like Stripe or GitHub, verifies their signatures, stores them, and forwards them reliably to your apps with retries and one-click replay.

  • Node.js
  • TypeScript
  • Fastify
  • PostgreSQL
  • BullMQ
  • OpenAPI

Features

  1. Per-source HMAC signature verification
  2. Durable storage with a searchable delivery log
  3. Retries with backoff and a per-endpoint circuit breaker
  4. Replay any stored event to any endpoint
  5. OpenAPI spec with generated API docs

Bonus: A small CLI that tunnels live events to localhost so developers can test webhooks on their own machine.

Backend · Advanced · 2 weeks

API Gateway with Rate Limiting

A reverse proxy that sits in front of your services and handles authentication, rate limiting, caching, and request logging so the services don't have to.

  • Go
  • Redis
  • JWT
  • Docker
  • k6

Features

  1. Config-driven routing to multiple upstream services
  2. Token-bucket rate limiting per API key, shared across instances through Redis
  3. JWT validation and API key management
  4. Response caching with TTLs and manual invalidation
  5. Structured access logs and latency metrics

Bonus: k6 load tests that publish p50, p95, and p99 latency with and without the gateway in front.

Full-stack · Advanced · 2–3 weeks

Real-time Collaborative Whiteboard

A multiplayer canvas where several people draw, add sticky notes, and see each other's cursors live, with edits that never conflict.

  • React
  • TypeScript
  • Yjs (CRDT)
  • WebSockets
  • Node.js
  • PostgreSQL

Features

  1. Shapes, freehand drawing, and sticky notes
  2. Live cursors and presence indicators
  3. Conflict-free merging of simultaneous edits using CRDTs
  4. Shareable boards with view-only and edit links
  5. Persistent boards with version history

Bonus: Offline editing that merges cleanly with everyone else's changes when you reconnect.

Full-stack · Advanced · 2–3 weeks

Live Coding Interview Room

Create a room, share a link, and code together in a shared editor. Code runs in sandboxed containers and both people see the output.

  • Next.js
  • Monaco Editor
  • WebSockets
  • Docker
  • Redis

Features

  1. Shared editor with synced cursors and selections
  2. Run Python, JavaScript, or C++ in isolated containers with CPU, memory, and time limits
  3. Private notes panel only the interviewer can see
  4. Session playback of the whole interview
  5. Rooms that expire and clean up automatically

Bonus: Hidden test cases that grade the candidate's solution automatically and show a pass/fail report.

Full-stack · Intermediate · 2 weeks

Uptime Monitor & Public Status Page

Monitors websites and APIs every minute, detects outages, opens incidents, and publishes a clean public status page with uptime history.

  • Next.js
  • TypeScript
  • PostgreSQL
  • Node.js worker
  • Email or Discord webhooks

Features

  1. HTTP, TCP, and keyword checks run on a schedule by a worker
  2. Incident detection that confirms with retries to avoid false alarms
  3. 90-day uptime bars and response-time charts
  4. Email and Discord alerts when something goes down
  5. Admin page for posting incident updates

Bonus: Checks from two regions that only open an incident when both agree the service is down.

Embedded & IoT · Intermediate · 1–2 weeks

ESP32 Air Quality Station

A connected sensor node that measures CO₂, PM2.5, temperature, and humidity, and streams readings over MQTT to a live dashboard.

  • ESP32
  • C++ (ESP-IDF or PlatformIO)
  • MQTT
  • InfluxDB
  • Grafana

Features

  1. Sensor drivers over I²C and UART with calibration
  2. Deep-sleep power management for battery use
  3. MQTT with reconnect and local buffering during outages
  4. Over-the-air firmware updates
  5. Dashboard with thresholds and alerts

Bonus: A custom PCB designed in KiCad and a 3D-printed enclosure, shown in photos in the README.

Embedded & IoT · Advanced · 2–3 weeks

PID Motor Controller on FreeRTOS

A closed-loop DC motor speed and position controller on an STM32, with a desktop app for live plotting and tuning.

  • STM32
  • C
  • FreeRTOS
  • Quadrature encoder
  • Python (PyQt, pyqtgraph)

Features

  1. Encoder reading using hardware timer peripherals
  2. PID loop running at a fixed rate in its own RTOS task
  3. Serial protocol with framing and checksums
  4. Desktop GUI with live plots and gain sliders
  5. Host-side unit tests for the control logic

Bonus: An auto-tuning routine (relay or Ziegler–Nichols) with a before/after step-response plot.

Embedded & IoT · Advanced · 2–3 weeks

FPGA Game Console with VGA Output

Pong or Breakout built entirely in hardware with Verilog, driving a VGA monitor straight from an FPGA board with no CPU at all.

  • Verilog or SystemVerilog
  • Vivado or Quartus
  • Basys 3 or DE10-Lite board
  • Verilator

Features

  1. VGA timing generator for 640×480 at 60 Hz
  2. Sprite drawing and collision logic in hardware
  3. Debounced button input and a score on the seven-segment display
  4. Testbenches with automated waveform checks
  5. Clean module hierarchy with resource and timing reports

Bonus: Sound effects generated in hardware through PWM audio output.

Systems · Advanced · 2–3 weeks

LSM-Tree Key-Value Store

A persistent key-value database built from scratch with a write-ahead log, memtable, SSTables, and compaction, like a tiny RocksDB.

  • Rust or C++
  • TCP
  • criterion / Google Benchmark

Features

  1. Write-ahead log with crash recovery
  2. Memtable flushed to sorted SSTable files
  3. Bloom filters to skip unnecessary disk reads
  4. Background compaction
  5. Simple TCP protocol with a CLI client

Bonus: Benchmarks against SQLite with throughput and latency graphs in the README.

Systems · Advanced · 2–3 weeks

RISC-V Emulator with Debugger

An RV32I CPU emulator that runs real programs compiled with GCC, plus a step debugger for registers and memory.

  • C++ or Rust
  • RISC-V GCC toolchain
  • SDL2 (optional)

Features

  1. Fetch, decode, and execute for the full RV32I instruction set
  2. ELF loader for compiled binaries
  3. Memory-mapped UART so programs can print
  4. Step debugger with register and memory views
  5. Passes the official riscv-tests suite

Bonus: A 5-stage pipeline view that visualizes hazards, stalls, and forwarding cycle by cycle.

Systems · Advanced · 2–3 weeks

Mini Container Runtime

Your own version of docker run, built from scratch: isolated processes with their own filesystem, process tree, network, and resource limits.

  • Go or C
  • Linux namespaces
  • cgroups v2
  • OverlayFS

Features

  1. PID, mount, UTS, and network namespaces
  2. Root filesystem set up with pivot_root from an image tarball
  3. CPU and memory limits using cgroups v2
  4. Layered filesystems with OverlayFS
  5. veth networking so containers can reach the internet

Bonus: Pull and run real images from Docker Hub by implementing the registry API.

Systems · Advanced · 2–3 weeks

Compiler for a Small Language

A compiler for your own small language, with variables, functions, loops, and structs, that outputs WebAssembly or x86-64 assembly and runs real programs.

  • Rust, C++, or OCaml
  • WebAssembly (WAT) or x86-64
  • A test harness

Features

  1. Hand-written lexer and recursive-descent parser
  2. Type checker with clear error messages that point at the source
  3. An intermediate representation with constant folding and dead-code elimination
  4. Code generation to WebAssembly or assembly
  5. Test suite of example programs with expected output

Bonus: A web playground that compiles and runs programs right in the browser.

Games · Advanced · 2–3 weeks

Multiplayer Arena with Real Netcode

A fast top-down browser arena game with an authoritative server, client-side prediction, and lag compensation, so it feels smooth even at 150 ms ping.

  • TypeScript
  • HTML Canvas or Phaser
  • Node.js
  • WebSockets

Features

  1. Authoritative server running at a fixed tick rate
  2. Client-side prediction with server reconciliation
  3. Entity interpolation for other players
  4. Lobby and simple matchmaking
  5. Built-in network simulator with latency and packet-loss sliders

Bonus: A replay system that records inputs and plays back any match deterministically.

Games · Intermediate · 2–3 weeks

Procedural Roguelike with ECS

A turn-based dungeon crawler with procedurally generated levels, built on an entity-component-system architecture.

  • Rust + Bevy
  • or C# + Godot
  • WebAssembly build

Features

  1. Seeded dungeon generation using BSP or cellular automata
  2. Entity-component-system architecture for all game objects
  3. Field of view and A* pathfinding for enemies
  4. Items, inventory, and save/load
  5. A playable web build published on itch.io

Bonus: A daily seeded challenge where everyone plays the same dungeon.