I have a large body of published work behind me spanning several years. The work I did in my early days is unfortunately lost to the mists of time, but my more recent work is shown here.
May 2023 → August 2023 | Angular, TypeScript, Java, Spring Framework
Developed software and automation for small business credit and loans as part of the Credit Compass lab within RBC Technology & Operations, enabling financial advisors to effectively cater to clients.
April 2023 → Present | Leadership, diplomacy, public speaking, negotiation, people management
Elected to represent all undergraduate students in the Faculty of Applied Science & Engineering in all matters academic. This includes:
This is a major leadership and people management role and is the position with the greatest direct impact on students' academic lives.
September 2022 → March 2023 | Python, Qt (PySide2, PySide6), Flask
Developed tooling to streamline industrial processes, including a Python/Flask web application for end-of-line manufacturing.
May 2022 → August 2022 | Python, Qt (PySide2, PySide6), Flask, UDS (DoCAN, DoIP)
Develop tooling to streamline industrial processes, such as a PySide/Qt user interface for flashing firmware, and a Python/Flask web application for end-of-line manufacturing, learning automotive knowledge such as UDS (DoCAN, DoIP), ECUs, and over-the-air updates, plus gaining experience in a corporate environment.
Oversee, develop, and contribute to the Scratch Wiki, which is a family of comprehensive, collaboratively‐written wikis documenting the Scratch programming language and its surrounding phenomena. Administering these wikis has required technological, leadership, communication, and interpersonal skills, with people of many different cultures.
November 2021 → January 2023 | Node.js, React, CSS
The University of Toronto Freelancers' Organization is a group dedicated to providing software development services for other University of Toronto associated groups or individuals. This is not only for the benefit of clients, but also to provide the members with professional development experience working for a client. The team implements DevOps principles to build software and extend knowledge of programming with experience in developing in a team environment.
November 2021 | Node.js, React, Tesseract OCR, OpenCV, Python, Google Cloud Vision
Implemented the backend (including optical character recognition) of Rite, a web application that helps track spending, within 25 hours, in a skilled team of 4.
May 2020 | Python
Taught an introductory class on Python to students ranging from Primary 6 (6th grade) to Secondary 4 (10th grade), covering I/O, data types, control flow, and functions.
Created and operated a content management system for my school's online publication, replacing its annual newspaper, and designed and implemented its frontend.
July 2018 → August 2018 | C#
Streamlined internal workflows by creating an application in C# using the Windows API that allows dialing selected phone numbers at the press of a keyboard shortcut.
Create flyers, posters, and covers for the Contemporary A Cappella Society of Hong Kong.
The majority of my true experience is in personal projects that I've done out of interest.
These are only a curated selection; for my full body of open-source work see my GitHub profile.
Extends the functionality of MediaWiki, the software that powers Wikipedia, by adding a mechanism to privately report edits for administrator attention.
An 8-bit CPU created by hand with a custom architecture in Verilog HDL. (Work in progress.)
Provides tools for computing n-dimensional multivectors, following the rules of geometric algebra.
A soundboard bot with support for per-server custom sounds, plus some common global sounds.
The actual logic of the popular tile game Mahjong is surprisingly complex. This library implements a game engine to abstract that logic from other applications.
A parsing expression grammar library that uses type annotations as a grammar definition.
Re-implements the Arrow programming language in Python.
Implements the OAuth2 protocol on behalf of the Scratch website which does not natively support it.
Tracks spending by scanning receipts and logging the amount, category, and method of spending. Built with Google Cloud Vision and React.
Over the course of a year, I implemented a fully Turing-complete 4-bit CPU in Minecraft. It's currently not well-documented, but those interested can download the world (9.74 MB ZIP).