Projects
Gitlet
Version control system
    Like Git, but lite. Git-lite? Gitlet? Gitlet.
  • Add, remove, commit, push, fetch, and pull different versions of files in a directory.
  • Serializes and stores commits, file content, & metadata in a hidden folder.
  • Transfers commits and files from other initialized repositories.
Download
Tablut
Norse board game
    Two sides battle over control of the king
  • play with someone else or against AI
  • minimax algorithm runs a fixed-depth search for the best move
  • alpha-beta pruning optimizes AI decision speed
Download
Mandelbrot
fractal zoomer
    Enhance! Enhance! ...Enhance... Does it ever end?
  • Renders a video of a smooth zoom into the Mandelbrot Set at user-specified resolution and framerate.
  • Calculates the number of Mandelbrot iterations required for any point to pass a given threshold.
  • Visualizes iteration count by assigning each pixel one of the colors chosen by the user.
Enigma
cipher machine
    Encrypt your messages to keep them safe!*
  • Simulates the turning of Enigma's rotors.
  • Accounts for initial rotor and ringstellung positions.
  • Customizable alphabet, rotors, and machine settings.
  • *temporarily; Enigma cipher was broken in 1939.
Download
Signpost
    link all squares in the grid in order
    using just directional arrows and logic
  • Puzzle generator finds a random solvable puzzle for any board size.
Download
Seven-Star
social network
    Share high-resolution memories of your favorite games
  • Users upload and interact with photos using a like & comment system.
  • Customizable profile page displays aggregated posts and use statistics.
  • Save bandwidth and scroll infinitely by dynamically loading as you navigate.
Homepage
Profile page
PintOS
& OS tools
    A single-core, multi-thread operating system supporting
  • system calls such as wait & exec for process interaction.
  • priority scheduling & donation, preventing deadlock via priority inversion.
  • concurrent file operations by locking only written file sectors.
  • LRU cached disk pages.
    • I built these other OS-related tools as well!
    • a shell
    • a first-fit dynamic memory allocator
    • an HTTP server