Projects

I’ve written a few small open source projects using Python, Haskell, OCaml, JavaScript, and POSIX compatible shellscript.

A lot of my programming work is in private repositories belonging to large companies. Read about my career or autobiography if you’re curious about how I learned al this.

LangJam GameJam

Solar system simulation (2024)

Written in Love2D and Lua, including differential equation solver.

Tetris for Two (2017)

Written in Elm, a functional programming language for the web browser with a time-traveling debugger.

An animated periodic table (2015).

Written in CoffeeScript, what we used before ES6 and TypeScript ;)

CLOX (2018 and 2025)

I wrote an OCaml interpreter and a C compilerfor the Lox learning language: clox.

This is based on the Crafting Interpreters book by Bob Nystrom. I had the name clox for my OCaml code before Bob finished writing the C section where he uses the same word.

coolnoise (2016)

Parser and generator for programs written in the Classroom Object-Oriented Language. Eases testing of lexer and parser. See github.com/roguh/coolnoise.

This is for my senior project where I wrote a compiler for an OOP language to x86 assembly in C++.

SCMinHS (2015)

A Scheme Implementation in Haskell. Followed “Write Yourself a Scheme in 48 Hours. See github.com/roguh/SCMinHS.

An interpreter for the low-level CORE language (2014)

Haskell was once compiled to a language called CORE.

See github.com/roguh/CORE

Rust, Misc

I like to open source some of the projects I use to learn new programming languages:

Utilities and Productivity

Some of my projects are meant to improve my productivity on Linux/MacOS, such as confs, which I can use to quickly setup my development environment on a new Linux/MacOS machine, and my shellscripts (including gp, makeanywhere and parallely), which include a script that I use to speed up running tests and code checks. i3empty is used to quickly open a new workspace on my keyboard-based window manager: i3.

I also have some scripts I used to write documents for school using Pandoc and LaTex: pandoc.