Project Roulette / Projects

Mobile, Systems and Games projects

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

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.

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.