Project Roulette / Projects

DevOps & Cloud, Systems and Security projects

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

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.

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.