I am a software engineer at Reach. I am particularly interested in compilers and statically typed, functional programming languages. I graduated from UMass Lowell with a Bachelors in Computer Science. In my free time, I enjoy composing/playing music on guitar and piano. I'm really interested in harmony and writing cool non-diatonic progressions. I also like reading philosophy, horror & poetry, and spending time with my bunnies 🐰
An OCaml library to aid users in writing binary files.This library is particularly useful for bytecode compilers when the user needs to convert decimals to binary sequences of certain lengths and endianness.
An OCaml library that provides a simple interface for reading user input. This project is particularly useful for REPLs. The user may specifiy brackets that must be closed before accepting input.
A compiler for a statically typed language that produces x86 assembly. Features include: hygienic macros, garbage collection, register allocation, functions, closures, parametric polymorphism, generalized algebraic data types, vectors, arrays, control flow, etc...
A byte-code compiler for a small lazy language and its corresponding virtual machine. The VM is based on a CEK machine and has a stop and copy garbage collector included. The compiler is written in OCaml and the VM is written in C++.
An implementation of Algorithm W, which performs type inference on an ML language. This algorithm generalizes functions without explicit parameterization. Implemented in OCaml.
An implementation of a Scheme interpreter, as described in Write Yourself a Scheme. Implemented in Haskell.