A compiler and bytecode interpreter for a sizeable subset of Python, written in OCaml (with the help of Ocamllex and Menhir for lexing and parsing). Created as an individual semester-long software project under the supervision of Adam Dingle at Charles University in Prague. Relevant blog posts: 1, 2.


An interactive lambda-calculus interpreter that performs normal-order beta-reduction and includes support for variable bindings.

Natural-Language Parser

A program that generates syntax trees for English sentences, written in Haskell. A blog post detailing the approach as well as the limitations of the program can be found here.

Miscellaneous Programs

A collection of small programs and scripts I wrote while learning new languages. Many are solutions to coding puzzles and challenges. Some of the most fleshed-out are:


HackPrague 2019

My teammate and I created Mattoni, a program that allows you to generate and interact with escape-time fractals. We used the SDL2 graphics library and wrote the program in C. I wrote more about it here. (May 2019)

ConUHacks IV

My team implemented Nim, a mathematical strategy game, using the Processing programming language and platform. I wrote more about it here. (January 2019)

HackPrinceton Fall 2018

My team created CourseTalk, a discussion and collaboration platform for students. A blog post describing the process and functionality can be found here. (November 2018)


These are my assignment solutions for certain classes. They were made public only after their respective course end dates.

COMP 206 Winter 2018

Assignments from COMP 206 Introduction to Software Systems at McGill University.

COMP 321 Fall 2019

Assignments from COMP 321 Programming Challenges at McGill University.