I'm a student at University of Toronto who loves to code. In my free time, I make graphical simulations, build frontend sites, and write the occasional Rust server. I carefully craft fast and clean code. Click on the items below to see more about my work in different programming languages and environments.
I've worked on multiple very large TypeScript & React projects, and I love to keep up with the latest frontend trends and news. I'm a core team member on SolidJS, where I lead the Solid Playground and DevTools teams. I'm also experienced in writing NodeJS servers, WebGL, and React.
In addition to loving cutting edge performance libraries, I'm also a programming language polyglot. I've written several small WebGPU apps, networking servers, and even a compiler in Rust. I've even made a metasploit reverse shell payload Rust.
I developed a massively multiplayer realtime browser game in Scala & ScalaJS called Snowy, a synthesis of my interest in graphics, physics, and networking. This project taught me about build tools, profiling, and functional programming.
I worked on a large microservices document management system used by thousands of lawyers. My work involved building an OAuth server for SSO and replacing a SQL Server ORM with native PostgreSQL.
I teach an 8 week advanced Python course for students at Robotics for All. I've also used Python to develop a webserver using FastAPI and SQLAlchemy
The Solid Playground is a web app that lets you write Solid code and see the results in real time. It uses Monaco and ESLint to provide a developer experience that rivals a full local setup.
TimeViewer is a web app that lets you view your daily activity in realtime with extreme precision. Its macOS window watcher was used to rebuild ActivityWatch and is used by thousands of users daily.
The Busy Beaver Challenge is working on a formal proof of the upper bound of BB(5). I added the interactive viewer of Turing Machines that shows the simulations.
I have made over a hundred fun little simulation projects. I've put a few below and many more are available at CM-Tech, a name I use on projects that I build with my friend Cole.
A fun project where dots move randomly semi locked to a grid. They bump into each other and you can click to repel or attract them, depending on the setting.
This project uses the planck.js physics engine to simulate and evolve cars to drive through a virtual course.
Boids is a term coined by Craig Reynolds that is used to describe objects which flock in groups. This project simulates boids shaped like caterpillars.