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.
A mix of tooling, from-scratch implementations, and one piece that isn't trying to be useful at all.
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.
View project →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.
View on GitHub →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?
View project →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.
View on GitHub →The theoretical side of the same interests — finite structures, algorithms, and the mathematics that sits underneath computer science.
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:
A few write-ups from coursework, typeset in LaTeX. Drop images or PDFs into these slots.
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.