In my free time, I like to design and develop applications. This gives me an opportunity to become acquainted with new tools and technologies


A Compiler to x86-64 Assembly

Torrey is a Lisp-like programming language implemented via compilation. Here is the context-free grammar of the language.

Language features include: type inference, integer and boolean primitive expressions, a unary minus expression, binary arithmetic and relational expressions, standard output, lexically-scoped variables, if and if-else expressions, and logical expressions.

Torrey is implemented as a compiler in Java and has a small C runtime. After building an abstract syntax tree (AST) of the program, the compiler translates the AST to an intermediate representation, or IR.

The IR can then be compiled down to one or more target languages. At the moment, the only target language is x86-64 gas assembly; however, additional targets can be added at any time.

This project is actively maintained and additional language features and targets are anticipated.

1, 1


A Single Page Web Application

Polysent is a single page application that enables users to create, view, search for, and interact with public or private polls.

It's built on the MEAN (MongoDB, ExpressJS, Angular, Node.js) tech stack and uses browser local storage to save the user's voting history. It's currently running in a Docker container on a Digital Ocean virtual private server (VPS).

This project is not actively maintained.

A photo showing the homepage of Polysent


A unit conversion tool

Pixem is an intuitive unit conversion tool for stylesheets. Essentially, it is an interactive dashboard that takes in a CSS stylesheet with REM or EM units and outputs a stylesheet with pixel units. Pixem received over 3,000 unique pageviews in 2021.

The project was built using React and TypeScript and leverages Gatsby for static file generation.

This project is not actively maintained.

Pixem editor