Ann Arbor, MI & Bethesda, MD

Building things.

Applied math student at the University of Michigan, concentrating in Discrete and Algorithmic Methods, with a minor in Philosophy. I like problems that have a best answer, rather than a correct one.

B.S. Mathematical Sciences Discrete & Algorithmic Methods Philosophy Minor University of Michigan '29
Selected Work

Some things I've built

A mix of tooling, from-scratch implementations, and one piece that isn't trying to be useful at all.

01 · Web App

Film Lab

A browser-based, canvas-driven simulator for analog film stocks (Kodak Portra, Ektar, Gold, Tri-X, Ilford HP5, Cinestill 800T, Fuji Velvia, etc) modeling grain, color response, and contrast curves. An auto-suggestion engine reads the pixel data of an uploaded photo and recommends the best-fit stock. Everything runs client-side.

JavaScript Canvas Image Processing
View project
02 · From Scratch

Autograd Engine

A small automatic-differentiation engine built from first principles in C++: scalar-valued computation graphs, reverse-mode backpropagation, and a minimal neural net library trained on top of it. Implemented with manual memory management rather than leaning on a garbage-collected runtime, in the spirit of Karpathy's micrograd but built to understand both backprop and memory ownership as code, not as an API call.

C++ Autodiff Manual Memory Management
View on GitHub
03 · Generative Art

The Window

An algorithmically generated artwork where every pattern has a vanishingly small chance of ever appearing again. Each press of the button shows something no one else in the universe will see. A thought experiment on authorship: is the artist the machine, the programmer, or the viewer who pressed the button?

Generative Canvas Software Art
View project
04 · Java

Algorithms & Data Structures Suite

A collection of core implementations built for the sake of building them: a binary search tree, an in-place merge sort achieving O(n log n) time in constant space, a feed-forward neural network written from scratch, and a multithreaded Monte Carlo estimator for π with a live GUI.

Java Data Structures Concurrency
View on GitHub
Coursework & Proofs

Math at Michigan

The theoretical side of the same interests — finite structures, algorithms, and the mathematics that sits underneath computer science.

B.S. Mathematical Sciences — Discrete & Algorithmic Methods

My major track focuses on the analysis of the finite structures (graphs, networks, codes, and combinatorial systems) forming the mathematical core underneath much of computer science. The coursework spans optimization, algorithmic complexity, and probabilistic estimation, paired with a Philosophy minor on the side.

Core coursework so far includes EECS 280 (Programming & Data Structures), EECS 203 (Discrete Mathematics), Math 217 (proof-based Linear Algebra), and Math 425 (Probability). The concentration draws from a track that includes:

Math 416 — Theory of Algorithms Math 465 — Combinatorics Math 565 — Combinatorics & Graph Theory Math 567 — Coding Theory EECS 477 — Intro to Algorithms EECS 586 — Design & Analysis of Algorithms

Proof Notebook

A few write-ups from coursework, typeset in LaTeX. Drop images or PDFs into these slots.

+ Add proof — e.g. Math 217, Rank-Nullity / eigenspace invariance
+ Add proof
+ Add proof

About

I've been writing code to build interesting things since I was twelve years old. Now I like working on hard problems on anything from algoritmic efficiency to philosophy of mind and going down Wikipedia rabbit holes.

Studying
B.S. Mathematical Sciences, Discrete & Algorithmic Methods · Philosophy Minor
Based
Ann Arbor, MI / Bethesda, MD
Interested in
Algorithm design, ML theory, generative systems