I like playing jazz on clarinet and piano, programming in languages with fancy type systems, watching (and sometimes performing in) improv, an occasional run or swim, singing, foosball (2015 MIT intramural champions!), and the decrement-jump-if-nonzero 8051 assembly instruction.
Various Projects and Writing
This is a compendium of advice I have for coding interviews and algorithm design in general. For advice on proving correctness of algorithms, this similar page might be helpful.
A video explaining a relatively nontechnical proof of the hairy ball theorem. I really like Minute Physics and thought the format might lend itself well to pure math. I hope to make more of these one day!
My final paper for MIT 18.504, Seminar in Logic. Planning to write about categorical logic, I read a lot of material on that, but by the time I had written the introductory background I was already over the page limit.
A presentation for MIT 18.504, Seminar in Logic. An explanation of recursion theorem by relating it to the Y combinator from -calculus.
A report on a system I created with Daniel Shaar for a final project in MIT 6.945, Adventures in Symbolic Programming. The goal was to automatically infer “obvious” function arguments to reduce code clutter and make code more robust to future change.
A handout supplementing my Splash class “The Banach-Tarski Paradox: Speed Run!”, which covers a 50-minute-long subset of the handout’s material. It’s meant to fill in holes left by the class and be a starting point for students interested in exploring the finer details deeply.