I build things, sometimes outside, sometimes inside.

Projects

Unnamed Zig Library

Zig + raylib + raygui Developer Mode Library

No source yet

I really like raylib for making games.

This is my order of operations when learning a new language:

  1. Hello, World
  2. Hello, World in Raylib
  3. Diffusion-Limited Aggregation simulation using Raylib

I kinda like raygui , raylib’s GUI library. The things I don’t like about raygui are more of a symptom of what I suspect raysan’s philosophy is: make things that do one thing well. Battery’s, such as GUI element adjustment without recompiling, are not included.

I’m proposing a library for Zig projects using raylib and raygui to allow me to point to a text file in code and have it produce a corresponding developer GUI.

Hopefully usage will look like the following

    pub const Player = struct {
        collision: boolean,
        properties: struct {
            jumpHeight: f32
        }        
    };
    
    pub const GameState = struct {
        player: *Player,
        npcs: struct {
            spawnCount: i16
        },
        fn resetPlayerPostion() void {
            ...
        }
        
    };

    const devMenu = DevMenu(GameState).init("main_dev_menu.yaml", &state, PLAYFIELD_HEIGHT, PLAYFIELD_WIDTH);
    devMenu.draw();
playerMenu:
  - slider: # raygui element type
      name: jumpHeight
      type: f32 # Zig type of value
      valuePath: player.properties.jumpHeight # path to 

  - toggle: 
      name: noClip
      type: bool
      valuePath: player.collision
      
  - textBox:
      name: npcCount
      type: i16
      valuePath: npcs.spawnCount
  - button:
      name: resetPlayerPosition
      functionPath: resetPlayer
          

Motivation:

  • Package my usual raygui boilerplate for raylib projects
    • GUI element listing and placement math
  • Allow GUI adjustments without recompiling
    • Ordering
    • Widget Sizes
    • Number Ranges
  • Gain a deeper understand of Zig
    • reflection system
    • comptime system
    • tests

Grain of Salt (Work in Progress / Stalled)

A recipe app with version control

Source

This application is meant to make developing recipes and tracking experimentation organized. No more scribbling in the margins of a recipe. Each recipe is a node on a graph. The nodes contain only the changes to a recipe. The recipes that the user sees are built from the node’s and its ancestor’s changes.

My friends asked for an app they could share recipes on and make tweaks to each other’s recipes. A coworker of mine also made the statement that the real trick to improving a recipe read online is to look at the comments for necessary changes. This is an attempt to implement those ideas.

Technologies used:

  • React
  • Next.js
  • Dexie.js (IndexedDB wrapper)

Update:

Backburner-ed for now, as of 12/2025. I almost want to expose some sort of git-diff-branch like frontend for editing the recipes. This is borderline what I was doing just with red and green colored divs showing additions, replacements, and removals for ingredients and directions. The recipes would be in plain YAML just to avoid an overcomplicated ui. I’ve heard somewhere that text files are the best ui.

GreekUtils Website

A Cloud Based CRM for Greek Life

Demo Source

I built this over the course of a year while serving on my fraternities alumni board. It was meant to solve two problems.

  1. Get the recruitment committee off of spreadsheets for tracking members and statuses.
  2. Prevent data rot between rush seasons.

I was motivated by a recurring question during our biweekly summer recruitment meetings: “How does this compare to this time last year?”

Technologies used:

  • Backend: Kotlin, SpringBoot, Hibernate, SQL
  • Frontend: Typescript, Angular, Chart.JS, RxJS for demo state
  • Auth: Keycloak, Keycloak JS Angular Bindings
  • Other: Nginx, Docker
  • Website: Vue.js