I'm a twenty-two year old musician🎸, programmer, and PhD student🎓. I've been writing Python🐍 since 7th grade, and Rust🦀 is my favorite programming language.
Compiler design is easily my favorite subject in computer science: I've implemented several of my own programming languages which you can see below, and read about on my blog. I have an unending fondness for Turing Tarpits and SKI combinator calculus.
I'm also a huge linguistics nerd: hablo español desde 2021, y lo puedo hablar bastante bien!🇪🇸 Si tú también lo hablas, envíame un mensaje!
Although most of my work is in compilers, I write tons of other kinds of software. I have a lot of experience in crypto, systems programming, machine learning, robotics, and more! Check out all my projects!
YouTube Blog Music Git ResumeA programming language that's wise beyond its bytes!
Sage is a programming language with an extremely simple yet powerful virtual machine. It's designed to run side-effecting code☢️ across multiple devices while still functioning as intended. It also implements parametric polymorphism⚗️, and uses algebraic data types🧮 with pattern matching🎯! It can even compile in the browser, check out the web demo!
A shell🐚 by the beach🏖️!
Dune is a custom shell designed to be complete, fast, and pretty. In Dune's scripting language, anything is possible: It has libraries for anything from TUI widgets to chess! The language itself is also rich with features: it has first class lambda functions, macros, and lazy evaluation🦥. It's the shell I use on all my machines, so it's well maintained!
A RISC-V operating system for Sage!
SageOS is an operating system that runs Sage🌱 programs, with support for C🛸 as well! It has a graphical shell🛰️, a powerpoint presentation app🎬, and a Tic-Tac-Toe🎲❌⭕ game! It supports the Minix3 filesystem💾, GPU devices🖥️, and tablet🖱️ + keyboard⌨️ inputs.
A genetic algorithm that evolves🦠 programs to solve problems.
Evolution could potentially be a powerful tool🛠️ for improving code, but evolving code in widely-used languages is very difficult due to disruptive mutations: syntax trees do not make for great genomes. This research project implements a novel Turing tape📼 based architecture to facilitate better evolution. Some compiler generated programs for the architecture shrank 20% in code size with the genetic algorithm!
A tiny text editor with syntax highlighting🎨, undo + redo support🧰, and a built-in lisp-like language🛸!
Lite is a text editor with a tiny core, but a lot of features🛠️. It introduces a custom programming language for scripting👨💻 custom commands and configurations in the editor, which facilitates highly customized workflows🚧! It supports all the traditional bells and whistles of other text editors, but in a smaller package. This project completes my compiler, shell, and text editor trifecta🏅!
A header-only regex📋 engine implementation in C++!
Regex engines are a powerful tool for parsing text. This regex engine is built in C++, and uses the Thompson🧙♂️ NFA algorithm to prevent pathological backtracking! It's efficient, supports the typical regex syntax, and can be used in any C++ project without any dependencies!
A dependency-free chess engine♟️ library built to run anywhere.
This is built for the browser🏗️, desktop💻, and embedded environments. It has support for managing castling rights, checking legal moves, and generating legal moves. Additionally, it supports multiple chess variants!
My custom chess♟️ variant with a state capitalist economy📈!
State Capitalist💵 Chess is a variant of the game which adds federal banks, interest rates, a market, and a territory-based economy! Players fight for control of the board to fund the war effort🪖, and flex their economic muscles to purchase pieces and moves to enact the nation-state's will. It's fun to play, and the AI is pretty challenging!
A VPN implementation in C🔒.
This is a simple VPN implementation in C. It uses the TUN/TAP🔗 driver to create a virtual network interface, and then encrypts and sends packets over the internet. It also uses TLS/SSL with X.509 certificates to authenticate clients connecting to the server. It's a great way to learn about networking, encryption, and VPNs!
A data analysis project📈 that analyzes Reddit posts📝.
This project analyses the sentiments of Reddit posts, comments, and comment replies to get a measure of the different qualities of various communities. It uses natural language processing🧠 to categorize each post into different topics, and then uses sentiment analysis to determine metrics like inquisitiveness, condemnation, positivity, and more.
A library for mathematical operations on arbitrarily large integers.
The largest integer that can be stored in a 64-bit integer, the largest integer type in C, is 2^64 - 1. This C library allows you to store and manipulate integers of any size, allowing programs to perform calculations for massive problems like RSA encryption🔒! The library is also header-only and can easily be used in any C project!
A mini me👨🦰 for my Discord server💬!
This project is a chat-bot and dungeon master for my personal Discord server. It's powered by GPT-2.0, and allows several people to play Zork together online. Anyone else can download it and set it up for their Discord servers as well! He's rather charming😎.
A cryptography library for encrypting and decrypting messages with RSA!
RSA is a public key encryption algorithm that is widely used for secure data transmission. This library provides a simple interface for encrypting and decrypting messages using RSA. It can generate public and private keys, and use those to securely encrypt and decrypt messages. It's written in C, so it's fast and portable!
A language model🧠 trained to speak the constructed language Toki Pona🗣️.
Toki Pona is very unique because its vocabulary is limited to 123 words📚. This language model is trained using Toki Pona content from around the web. It's trained to translate text and follow instructions provided in prompts from the user. Additionally, it's small enough to run on your laptop💻!
A library for exploring music theory🎼 and generating songs in any scale you can think of🎶!
Music is a lifelong passion of mine, and I wanted to combine it with my love of programming. This library allows you to generate songs in all sorts of scales🎼 and explore new theoretical concepts in music. It can generate songs in any key, and in any scale you can think of! It also allows you to provide your own waveforms🌊 for custom audio processing, if you don't want to use the built in ones!
A language that ports⚓: examining the limits of compilation⚙️.
Harbor is a high level programming language with type checking (supports unsigned integers, booleans, characters, pointers, tuples) and manual memory management🏗️. Essentially, it's a stripped down version of C. What makes Harbor special then? It compiles to a flavor of brainf&%^🧠 called dynamic brainf!@%🧠.
A lisp👽 written in C++.
Writing a Lisp interpreter is an indispensable requirement for becoming a true computer science wizard of the dark arts🧙. So, I've written an easily embeddable Lisp in C++! It supports all the typical Lisp bells and whistles: lots of quoted expressions, special forms, and lambdas. Also, it's compatible with C++98 for maximum portability!
An infinitely more portable alternative to the C programming language.
Oak🪵 is written in Rust, and is blazingly fast. The entire language is built on only a 17 instruction set virtual machine! As of today, Oak can compile to native and run in the web browser with its JavaScript backend.
Track memory allocations on a timed interval🕰️.
This is a tool to track all the individual memory💽 allocations a program makes. It allows users to run tests on fixed time intervals⏱️ throughout the program runtime and examine📏 the program's memory at various points in time. It's written in C++!
A game of life🔬 simulator on an infinite♾️ plane.
The Game of Life🦠 is a cellular automaton that evolves life-like patterns on a two-dimensional plane. This library implements the Game of Life on an infinite plane, and can be used to create a variety of interesting visualizations!
Accuse guilty developers🫵!
Blame Tracker is a tool that allows you to track down👮🚨 guilty developers and discover who wrote what during a given time period. It's a command line tool that uses git blame to find the guilty⚖️ authors using a series of filters provided by the user. It's written in Python, and runs on all the major operating systems.
A terrible programming language that targets an even worse programming language.
Free is Oak's esoteric predecessor that compiles to a superset of brainf!@%🧠 called SMPL. SMPL introduces three new operators: ?, *, and & which allows the user to dynamically manage memory.
An abstracted Python library for vision🔭 processing.
A lot of Open-CV's functions and methods take an image, and return a new image. With several different layers of function calls used on images, code can be a bit messy. Additionally, managing contours, the sizes of images, and their data-types can get difficult. Sight abstracts all of that away, and makes things simple.
Exploring the deepest depths of computer science is incredibly interesting to me. Developing compilers to explore type theory and programming language design is very important to me.
I've been writing compilers for a few years now, and it's given me a huge insight on how to write fast, compact, and correct code. Even the smallest bug in a compiler can have huge consequences.
Long before I was a programmer, I was a musician. I've played piano since 4th grade, and guitar since 8th grade.
Classical, psychedelic, and art rock are my absolute favorites!
While the practical aspect of an application is incredibly important, I believe that the presentation is significantly more important. If you can't display your product to your users in an appealing way, their attention will be drawn to more visually appealing alternatives.
When I build an application, I'm always sure to make the presentation as good as possible before launch.
Want to work with me? Just reach out!
Shoot me an email