TinyOCaml to WebAssembly Compiler

I’ve wanted to learn about compilers for a while, but it hasn’t been offered at Cornell since 2023, so I decided to learn on my own by making this small compiler. It was written in TypeScript and compiles a subset of OCaml (which I’ll call TinyOCaml) to WebAssembly (Wasm). Here is the link to the demo. For more details like the exact BNF grammar of the language, check out the GitHub repo. ...

September 3, 2025 · Jiming Chen
Map of Magic Kingdom

Optimal Theme Park Ride Order

If we assign happiness to certain rides and have information about how much time it takes to ride a string of rides in a certain order, how can we maximize happiness in one day at a theme park? This app (also embedded below) seeks to do exactly that. Here is the Github link. Demo Motivation There is a lot of information we can work with: Each ride has an associated happiness. Each ride has a wait time. Total time must not exceed the time the park is open. Walking between any two rides takes a certain amount of time. Throughout the day, wait times and walk times (crowd levels) change. My first thought was to use a maximum flow reduction with Ford-Fulkerson. However, there seemed to be too many factors which made Ford-Fulkerson seem infeasible. ...

User Interface

OCaml Transformer

This (Cornell GitHub) was our final project for CS 3110: Data Structures and Functional Programming. We implemented a simple transformer in OCaml and trained it on successful posts on SideChat, a social media app popular at Cornell and other schools. I worked with Haadi Khan, Domenic Fioravanti, and Will Bradley. Fig. 1. YouTube demo of our post generator made by Haadi. Probabilistic Model Before creating the transformer, we first created a probabilistic model. ...

Profit chart

Sports Betting Devigger

This tool (GitHub) looks at de-vigorished sports betting odds for bets offered by Pinnacle, a sharp bookmaker, and uses those to find positive EV betting opportunities on FanDuel, a soft bookmaker. Tools like this are not unique, but they are offered as a service for high fees, so I decided to make a simple version myself. Rather than search for arbitrage opportunities, it looks for statistical arbitrage-esque market inefficiencies since sports betting “markets” are somewhat inefficient. ...