What I'm doing right now

  • Looking for a job
  • Creating push-based reactivity engine in TypeScript
  • Designing a linear-functional language
  • Prepping for "surgery" on my laptop - need to replace the fans
  • Setting up my home server
  • Creating this website

Pinned Projects

Newtonian Dance

2026

Generic n-body simulation using Newton's Law of Gravity and other laws.

tech: TS, SolidJS, canvas
concepts:
- structure-of-arrays
- data-oriented-design
- classical-mechanics

Eyes

2026

An implementation of an interactive version of the Picture Language from SICP.

tech: JS, canvas, gifs
concepts:
- SICP Picture-Language
- reactive-programming

Polymede

2024

WASM Compiler/Runtime for the Polymede language I designed - all in about 6 weeks distributed over 2 months. Special implementation constraint: can't use any non-trivial libraries or tooling (zero-dependency bootstrap compiler) 💪

tech: Rust, WebAssembly, JS
concepts:
- Language-design
- Parametric-Polymorphism
- Bidirectional-Type-Checking
- Algebraic-Data-Types
- Closures
- pattern-matching
- Lexing/Top-down-parsing
- IO-Monad & side-effect management
- Graph Memory Machine (GMM) intermediate representation
- tail-calls
- Custom WASM-Bytecode-Serializer
- Hand-rolled copying 2-space GC in ~1000 lines of .wat (Cheney's Algorithm)

Deep Learning

2023

MLP implementation in Rust. Thinking through memory-layout by implementing my own Linear Algebra

tech: Rust
concepts:
- Neural-Network
- Multilayer-Perceptron
- Adjoint-Linear-Operators
- Backpropagation on Riemannian-Manifolds
- Stochastic-Gradient-Descent
- MNIST

Type Inference

2022

Interpreter and a Type inference for a (Polymorphic) Typed Lambda Calculus, and a register machine visualization.

tech: Elm, ElmUI
concepts:
- HM type-inference
- let-polymorphism
- module-system
- parsing-combinators
- register-machine

Stack Machine

2022

Visualization of a stack machine that supports closures, continuations, actor-model.

tech: Elm
concepts:
- incremental stack-machine-simulator
- lexical-environment
- runtime-stack as first-class value
- delimited/undelimited-continuations
- call/cc
- message-passing concurrency
- actor-model-runtime

Combinatorics

2020

Visualizing combinatorial generators and formulas.

tech: React, KaTeX, JS-Generators
concepts:
- low-latency math-formula-rendering
- subsets, multisets, permutations, variations
- lazy-generation with ES6 Iterators

Parsing Combinators

2020

Parsing-Combinators library

tech: js
concepts:
- monads/functors/applicatives
- choice/Cartesian/Kleene-structures
- do-notation via ES6 generators

Old Essays

Here are some of my old math essays handwritten in Krita. Maybe one day I'll muster enough gumption to typeset them. Why Krita? Krita allowed me to understand and write math at the same time (something like LaTeX or Typst do not), and unlike paper, it also allowed me to tweak, rearrange, doodle, edit in real time. The only disadvantage is it's not really machine-readable. Ideally, I want to have a tool that allows for Understanding, Writing, Editing, Machine-Readability (and a few other things) at once, but to my knowledge there's nothing like that out there.

Block Matrices

2016
I was wondering, "what is the fundamental reason multiplication of block matrices works?". Turns out it's very simple: In Vector Spaces, coproducts and cartesian products are the same... This works more generally in Additive Categories.

Effect Algebras

2018
This one was for a class on Effect Algebras (taught by Jan Paseka). It's a tutorial/motivation-piece on how one could even come up with the idea of an effect algebra. For me it was primarily an exploration of doing algebra in a theory where operations are partial functions - that was an incredibly new and strange aspect for me at the time.