Projects
Shipped systems, research tools, experiments, etc.
Feb 2026 - Feb 2026
ALGOL for LLVM Pinned
An ALGOL 60 compiler with an LLVM backend. Supports most of the ALGOL 60 specification with a rudimentary C ABI.
Aug 2025 - Dec 2025
C Subset Compiler (LLVM) Pinned
A compiler for a subset of C with an LLVM backend, complete with single static assignment (SSA) generation, redundant phi node removal, and optimization passes for common subexpression elimination (CSE), constant branch folding, dead block removal, loop invariant code motion (LICM), and Chaitin-Briggs graph coloring allocation.
Jul 2024 - Jul 2024
Neural Networks from Scratch Pinned
A from-scratch tensor operation and automatic differentiation library in pure Python, featuring feed-forward mechanisms, backpropagation, loss functions (MSE, cross-entropy, etc.), extensible optimizers (SDG, Adam, etc.), extensible modules (linear, sequential, etc.), activations (ReLU, Tanh, etc.), functional formulations (like torch.nn.functional), persistent and temporary buffers, and saving state dicts.
Feb 2026 - Present
Fantasy Baseball Draft Optimizer
Scarcity-aware live draft assistant for fantasy baseball, using point projection, position-specific replacement value (with Monte Carlo opponent simulation), position drop-off before next turn, and feasibility guardrails.
Feb 2025 - Mar 2025
Shell
A drop-in sh replacement supporting shell scripting, rich line editing, environment management, subshells, pipes, and various commands.
Jan 2025 - Feb 2025
Arena Allocator
A custom arena allocator for use in systems projects.
Nov 2024 - Dec 2024
C Subset Compiler (x86-64)
A compiler for a subset of C to x86-64 Assembly.
Aug 2024 - Dec 2024
Game Agents
A collection of reinforcement learning and other heuristic agents for playing assorted games in Python.
Aug 2024 - Dec 2024
Relational Database Management System
A from-scratch RDBMS in Java with a buffer manager, heap files and scans, query engine, SQL parser, and query optimizer.
Jul 2024 - Jul 2024
Instagram GC RAG Bot
Simple RAG-enabled Llama 3-based chatbot that answers questions about Instagram group chats.
May 2024 - May 2024
Tiny Lambda Calculus
A tiny untyped lambda calculus written on the plane from Indianapolis to Newark, with no WiFi and nothing else to do.
Jul 2023 - Aug 2023
Hexdump Utility
A simple, aesthetically pleasing hexdump utility.
Dec 2022 - May 2023
Interactive Physics Simulations
Custom physics engine and interactive physics demonstrations for displays in The Lawrenceville School's Kirby Math and Science Center. Includes orbital, raytracing, fluid, pendulum, cellular automata, and more simulations with tunable parameters and interactive features.
Jan 2022 - May 2022
Optical Music Recognition Agent
Optical music recognition and playback agent in Mathematica. Given an image of piano sheet music, the agent extracts notes and other relevant metadata via a computer vision model and outputs MIDI or MP3 files.
Nov 2021 - Nov 2021
Java Classfile Deserializer
A Java Classfile deserializer and debugging utility written in Rust.
Nov 2020 - Nov 2020
Freelist Allocator
A simple K&R style freelist-based general-purpose allocator with Clang-specific optimization.
Sep 2019 - Oct 2020
Assembly Virtual Machine
A parser and virtual machine for a simple x86-style instruction set with Intel syntax.
Jan 2016 - Present
ntrupin.com
My personal full-stack website.
Sep 2014 - Dec 2015
Home PC Automations
Scripts and automations in Python, JavaScript, and Visual Basic for Applications for Windows 7 and Microsoft Excel 2010 on a 2010 Acer Aspire PC.