Hi, I'm Brian Tsoi.
This page is a comprehensive directory of descriptions and links to my technical experiences.
For a concise summary, please refer to my resume.
In Summer 2025, I worked at Nvidia as a System Software Engineer Intern.
Before that, I worked at Mozilla Firefox as a Backend Software Engineer Intern for a year.
I am also studying Computer Engineering at the University of Toronto (finished 3rd year).
My main interest is in system software, compilers and embedded systems.
I like "interacting with hardware from software's perspective" (phrase borrowed from Linus Torvalds).
Focused on improving tooling for performance analysis of the NvStreams SDK.
I developed a stress test application that simulates multi-process NvStreams automotive customer use cases.
I also collected and analyzed performance data of the NvStream SDK under multi-stream workloads.
Focused on improvements to the Firefox crash reporting pipeline, reduce signal-to-noise ratio in crash data by detecting faulty hardware.
I am the author and maintainer of the memtest crate, which is an open source Rust library for memory testing.
I integrated memory testing into the Firefox crash reporter client.
I also worked on Rust-minidump, the industry-leading open source crash report library. I added an inconsistency detection features that identifies crashes cause by faulty hardware.
Managed the DinoJump project with a team of 10 alongside with fellow project lead, Alexander Lay.
The Spark Design Team builds interactive LED displays for the UofT Engineering community.
In the 2024-2025 academic year, we built a holographic display for the dino hopping game. It uses ESP32, FreeRTOS, C++ and the ESP-NOW protocol.
In previous years, I also worked on two other Spark projects, Arena Pinball and Hack-It. Notably, I developed a Python OpenCV based pinball tracking camera system.
Wrote software for the FINCH mission of UTAT Space Systems.
UTAT Space Systems is a student team that builds CubeSats for scientific missions.
FINCH is a satellite for crop residue mapping from the Low-Earth Orbit, set to launch in 2025.
I developed an adaptive
Python compression algorithm
for hyperspectral images, based on Golomb-Rice coding, according to the Consultative Committee for Space Data Systems standards.
The algorithm achieved a 2:1 compression ratio and is currently being translated to C to
run on the STM32 microcontroller on the CubeSat.
I was also involved in prototyping the multithreaded high-level finite state machine for the satellite software, using STM32 Hardware Abstraction Layer and FreeRTOS.
A Rust based interpreter of the Lox language (created by Robert Nystrom in Crafting Interpreters)
I am looking to expand this work to a bytecode compiler in C++ as well.
A terminal text editor written with the C standard library, POSIX API and VT100 terminal sequences Did I mention that I'm obsessed with Vim?
A Pytorch based Autoencoder neural network that denoises poorly rendered 3D images by 83%
I worked in a team of 4. We collected training data from open source 3D models, and finetuned the model with several iterations. The final model beats conventional denising filter by 47%.
A Java key-value database for distributed servers, with consistent hashing and virtual nodes
I worked in a team of 3. We tested with the Enron dataset (over 2.6 GB), achieving 99.3% reliability and below 5ms of latency.
(Source code not available due to academic restriction)
A C++ map application using OpenStreetMap data and GTK.
I worked in a team of 3. The map includes features such as drag and zoom, locations searching and path finding using the A* algorithm.
(Source code not available due to academic restriction)
A game built in C to run on Quartus FPGA and interface with a PS/2 mouse and a VGA monitor
Player has to untangle a mess of lines connected to nodes such that no lines overlap.
Conway's Game of Life in HTML, CSS and vanilla Javascript
The classic Pong game with a computer opponent, written with Pygame
Programming: C, C++, Python, Rust, Java, HTML, CSS and Javascript, Assembly, Go
Hardware/Embedded: Arduino, STM32 microcontrollers, UART, I2C, SPI, RTOS, FPGAs (Verilog)
Tools and Platforms: Linux dev tools (gcc, make, gdb, valgrind), Git, Github
Languages: Chinese (native in Cantonese, fluent in Mandarin), English (fluent)
I am obsessed with text editors. VS Code, Vim, Emacs....I've tried them all.
These days I use Helix for coding, and Doom Emacs for personal notes, both truly amazing editors
My favourite language used to be C, but I'm a Rustacean🦀 now.
My hobbies include reading, movies, board games, and occasionally having an existential crisis.