Project Roulette / Projects

Full-stack, Mobile, Data & ML, DevOps & Cloud, Embedded & IoT, Systems and Security projects

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

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.

Mobile · Intermediate · 2–3 weeks

Offline-first Field Inspection App

A mobile app for technicians who inspect equipment on site: checklists, photos, and signatures that work with no signal and sync later.

  • React Native (Expo)
  • TypeScript
  • SQLite
  • Supabase

Features

  1. Dynamic checklist templates loaded from the server
  2. Photo capture with on-image annotation
  3. Local-first storage with background sync and conflict handling
  4. Signature capture and PDF report export
  5. GPS-tagged inspections

Bonus: A small web admin dashboard where managers create templates and review submitted inspections.

Mobile · Intermediate · 2 weeks

Bluetooth LE Sensor Companion App

A phone app that discovers a Bluetooth Low Energy sensor, streams live readings, keeps a history, and sends settings back to the device.

  • Flutter (Dart)
  • flutter_blue_plus
  • SQLite
  • ESP32 or nRF52 as the peripheral

Features

  1. Scan, connect, and auto-reconnect to the device
  2. A custom GATT service and characteristics that you define
  3. Live charts of incoming readings
  4. Local history with CSV export
  5. Write settings like sample rate and thresholds back to the device

Bonus: Firmware updates delivered over Bluetooth straight from the app.

Data & ML · Intermediate · 1–2 weeks

Resume ↔ Job Description Matcher

Upload a resume and a job posting. It scores how well they match, highlights missing skills, and suggests stronger bullet points.

  • Python
  • sentence-transformers
  • spaCy
  • FastAPI
  • Streamlit

Features

  1. PDF parsing and section extraction (experience, skills, education)
  2. Skill extraction against a curated skills taxonomy
  3. Semantic similarity scoring with a readable explanation
  4. Gap report listing missing and weak skills
  5. A small labeled test set that measures accuracy

Bonus: Benchmark three embedding models on your test set and publish the results table in the README.

Data & ML · Intermediate · 1–2 weeks

Webcam Hand-Gesture Controller

Recognizes hand gestures from a webcam in real time and uses them to control slides, media playback, or smart lights.

  • Python
  • MediaPipe
  • PyTorch or scikit-learn
  • OpenCV

Features

  1. Hand landmark extraction from live video
  2. Data-collection tool for recording custom gestures
  3. Trained classifier with a confusion matrix and accuracy report
  4. Smoothing and debounce so actions don't misfire
  5. Config file that maps gestures to actions

Bonus: Export the model to ONNX and run it fully in the browser with a live demo page.

Data & ML · Advanced · 2–3 weeks

Predictive Maintenance for Jet Engines

Predicts the remaining useful life of jet engines from sensor time series using NASA's C-MAPSS dataset, served behind an API with a monitoring dashboard.

  • Python
  • pandas
  • LightGBM or PyTorch
  • MLflow
  • FastAPI
  • Docker

Features

  1. Exploratory analysis and time-series feature engineering
  2. A baseline model and an LSTM, compared with proper time-based validation
  3. Experiment tracking in MLflow
  4. Model served through FastAPI inside Docker
  5. Dashboard showing predictions per engine

Bonus: Data-drift detection that flags when incoming sensor data stops looking like the training data.

Data & ML · Intermediate · 2 weeks

Codebase Q&A Assistant

Index any Git repository and ask questions like "where is authentication handled?" Answers cite the exact files and lines they came from.

  • Python
  • tree-sitter
  • sentence-transformers
  • pgvector or Qdrant
  • FastAPI
  • An LLM API

Features

  1. Code-aware chunking by function and class using tree-sitter
  2. Hybrid keyword and vector search
  3. Answers with file and line citations
  4. Incremental re-indexing when new commits land
  5. An evaluation set of 30+ questions that measures retrieval accuracy

Bonus: A VS Code extension so you can ask questions without leaving the editor.

DevOps & Cloud · Advanced · 2–3 weeks

GitOps Kubernetes Home Lab

A fully automated Kubernetes cluster where pushing to Git builds, scans, and deploys your apps, with monitoring and alerts built in.

  • Terraform
  • k3s
  • Argo CD
  • Helm
  • Prometheus
  • Grafana
  • GitHub Actions

Features

  1. Infrastructure as code for all VMs or cloud instances
  2. CI pipeline that builds, scans, and pushes container images
  3. Argo CD auto-sync from a Git repository
  4. Grafana dashboards and alert rules
  5. Secrets managed safely with Sealed Secrets

Bonus: Canary rollouts that roll back automatically when the error rate spikes.

DevOps & Cloud · Intermediate · 1–2 weeks

Distributed Tracing Playground

Three small microservices instrumented end to end, so you can follow a single request across every service with linked logs, metrics, and traces.

  • OpenTelemetry
  • Docker Compose
  • Jaeger or Tempo
  • Prometheus
  • Grafana
  • Loki

Features

  1. Three services in two languages, instrumented with OpenTelemetry
  2. Trace context carried through HTTP calls and a message queue
  3. Dashboards for rate, errors, and duration
  4. Logs linked to their trace IDs
  5. SLOs with burn-rate alerts

Bonus: A fault-injection switch that adds latency or errors so viewers can see exactly how problems show up.

DevOps & Cloud · Intermediate · 1–2 weeks

Serverless Media Pipeline on AWS

Upload an image or video and an event-driven pipeline resizes, transcodes, and tags it automatically. All infrastructure is defined in code.

  • AWS S3, Lambda, SQS, DynamoDB
  • AWS CDK or Terraform
  • TypeScript or Python
  • GitHub Actions

Features

  1. Direct uploads using presigned URLs
  2. S3 events feeding SQS and Lambda, with retries and a dead-letter queue
  3. Thumbnails and metadata stored in DynamoDB
  4. Least-privilege IAM roles for every function
  5. CI/CD that deploys separate dev and prod stages on merge

Bonus: A cost report in the README showing the real cost per 1,000 uploads.

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.

Security · Intermediate · 1–2 weeks

Git Secrets Scanner & GitHub Action

A CLI and GitHub Action that scans repositories, including full commit history, for leaked API keys, passwords, and private keys.

  • Go
  • Regex + entropy analysis
  • GitHub Actions
  • SARIF

Features

  1. Pattern and entropy-based secret detection
  2. Fast scanning of the full Git history
  3. Allowlist file to suppress false positives
  4. SARIF output that shows up in GitHub code scanning
  5. Pre-commit hook mode that blocks leaks before they happen

Bonus: A seeded test corpus that reports precision and recall, compared against an existing open-source scanner.

Security · Intermediate · 1–2 weeks

SSH Honeypot with Attack Dashboard

A fake SSH server on a cheap cloud VM that records the logins and commands real attackers try, shown on a live dashboard.

  • Python (asyncssh) or Go
  • Docker
  • PostgreSQL
  • Grafana
  • GeoLite2

Features

  1. Fake shell that imitates a Linux machine and logs every command
  2. Analytics on the most common passwords and commands
  3. World map of where attempts come from
  4. Strong isolation: its own VM, a container, and no outbound network
  5. Automatically generated weekly threat summary

Bonus: A write-up analyzing one week of real attack data, published alongside the repo.

Security · Advanced · 2 weeks

End-to-End Encrypted File Sharing

Share files by link, with encryption done in the browser so the server never sees file contents or keys.

  • TypeScript
  • Web Crypto API
  • Node.js or Go
  • S3-compatible storage

Features

  1. AES-GCM encryption in the browser, with the key kept only in the URL fragment
  2. Chunked streaming encryption for large files
  3. Links that expire or stop after a set number of downloads
  4. Optional password protection with proper key derivation
  5. A written threat model in the README

Bonus: A verification page that shows the stored ciphertext is unreadable without the link.