Software

Since I started programming in 2014, I'm accumulated a large albeit odd set of projects that I have made or contributed to. Here is my "software portfolio".

Industry experience

In the summer of 2021, I was an intern for VMware's Uhana team. Uhana is a real-time big data platform for telecommunications, which generates and analyzes KPIs (key performance indicators) for 4G and 5G radio access networks (RAN). I worked on migrating the decoder service from using Apache Kafka Streams to Apache Flink. The decoder is an early part of the pipeline, which converts a stream of various formats (binary, JSON, ASN) into a unified format (protobufs). I enjoyed working at VMware, and also enjoyed mentoring for VMware High School Hacks, and participating in the intern borathon. I returned in the summer of 2022 to the same team, but with a more difficult project: splitting the overly complicated Flink-based streaker service into two smaller services: a session collator and a KPI composer. The composition of KPIs is the most important part of the Uhana platform, so being able to increase the stability of that component of the pipeline was a pleasure.

In the summer of 2024, I was an intern for Nutanix's NDB team. NDB/Nutanix Database Service is a Database-as-a-Service platform designed to support on-premise environments. My intern project was to implement an Object Store storage consumption monitoring feature into NDB, but more of my work was contributing to NDB support for Object Store and Prism Central. The main technologies used were Spring and React. I enjoyed working at Nutanix, and I also enjoyed participating in their intern hackathon.

Web

My first website, using basic HTML and CSS, is so bad that I don't want to link to it. But this one is okay! I originally wrote this with HTML/CSS plus jQuery, but I migrated to Nuxt.js/Vue.js (specifically Nuxt 3/Vue 3, which uses a bit of TypeScript). Styled with Bulma, hosted using GitHub Pages. Other projects include a React/Bulma frontend for a hackathon, a course review website (also using Bulma), and a Tar Heel Calendar, using React, Bulma (wow), express.js, MariaDB, and Heroku. For that project, I basically made the entire backend, and the rest of the team worked on the frontend. Besides from those, I have web experience from being a wiki administrator (discussed a few sections down), and from a little bit of frontend work done at Nutanix (discussed a section above).

Languages/Systems

For a school project, I created a "mini" Java compiler targeting a custom VM. My compiler supports basic integer and boolean operations, arrays, basic control logic, and some level of OOP. There's also support for field initialization, constructors, for loops, and some level of broken support for overloading. This class would inspire me to make a toy programming language called Limp in Rust for a hackathon; I would use this as a prototype for Psil, a more powerful Lisp-like language, written in Rust. It has a standard variety of types (numbers, booleans, strings, symbols, procedures), some composite types (lists, tables), bindings, control logic, a mix of functional/procedural programming, a native documentation generator (like Javadocs), and a decently sized standard library (currently with over 50 built-in procedures).

For another school project called "JOS", I implement key portions of an operating system (using C and Assembly). The OS supports boot loading, virtual memory, processes/environments, multiprogramming, a file system and shell, and a partial implementation of a hypervisor. It also has special support for floating point operations.

Hardware

Whoops, this isn't software! Alas; "touching wires and breadboards is good for the CS major". Over a winter break, I was working on an 8-bit breadboard computer, which is 80% done. Unfortunately I never finished it. Here is a picture of it.

For a class, I implemented a simple single-cycle MIPS processor in Verilog for an FPGA, and then wrote a "shell" demo for it in Assembly. It supports 12 simple commands, ~120 characters (including several special characters), supported by ~900 instructions and ~900 words in static memory. I drew each character myself, and it shows. You can see my demo here.

Minecraft mods

I originally gained an appreciation for computer programming through Minecraft modding. Although I am no longer very active in the scene, I have created, taken over, or contributed towards several well-used Minecraft mods. Nuclear Control 2 (now discontinued) is probably my biggest project, which has more than 6.3 million downloads. Notable other projects include the AFSU Mod (with 215k downloads), Flaxbeard's Steam Power (also known as Esteemed Innovation, with 1m downloads), World Control (1.3m downloads), Long Fall Boots (18.5m downloads), Bonemealable Babies (11k downloads), and HuesoDeWiki (with 7k downloads). There are also a few early projects (Bitm, Bony's Desertcraft, IndustrialEx ShinyStones Mod 2, AntiEndPortalMod). All are written in Java.

Wiki administration

Creating mods accidentally brought me deep into the world of documenting mods. Although nowadays I am not very active, I am an administrator of and a major contributor (with over 55,000 edits) towards the Official FTB Wiki, the largest, most popular and most up-to-date centralized repository of knowledge on modded Minecraft. In August 2016, I was awarded Gamepedia Editor of the Month for my "hard work across Gamepedia." Much of my contributions are not writing, but are of a technical nature, including some on-wiki scripting (in JavaScript, Lua, and "wikitext"), bot-making ("ESAEBSAD" in Ruby for IRC, ESAEBSAD2 in Groovy for Discord, ESAEBSAD3 in Ruby...), a tool for automatically importing translations, a mod to help editors, and a lot of random run-once scripts and technical contributions to other wiki-related projects.

Besides from the FTB Wiki, I was briefly the sole admin for a smaller game wiki (doing ~1.5k edits), and I was part of the Gamepedia Rapid Anti-Spam Patrol, an initiative to revert vandalism (rarely spam) across the Gamepedia wiki farm. Also, when I'm browsing wikis, I like to fix anything broken I see, so you might see my name elsewhere in the wiki world.

Potpourri

Here's a bunch of other random stuff I worked on that I think is cool: an Android app for practicing Spanish or French (made for my first hackathon), a game written with Java Swing (for a class hackathon), Conway's Game of Life (also using Java Swing), a Unity/C# game (for another hackathon), a MATLAB project for a class, a primitive CLI editor written in Rust (for a hackathon, later ported to C++), a calculator written in Rust (for another hackathon, which you can still access through Wasm), and a small virtual machine written in Rust (for a hackathon, which I actually was given first place for).