profile picture

Brian Tsoi

Toronto, Canada

brian.s.tsoi@gmail.com

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.

About Me

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).

Experience

System Software Engineer Intern @ Nvidia, NvStreams Team

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.



Backend Software Engineer Intern @ Mozilla, OS Integration Team of Firefox

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.



Student Project Lead & Software Developer @ UofT Spark Design Team

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.



Student Software Developer @ UofT Aerospace Team Space Systems

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.

Projects

Toy Language Interpreter

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.


Terminal Text Editor

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?


AI Raytracing Image Denoising Filter

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%.


Distributed NoSQL Database

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)


Google Maps Clone

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)


Minigame: Untangle

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.


Minigame: Conway's Game of Life

Conway's Game of Life in HTML, CSS and vanilla Javascript


Minigame: Pong

The classic Pong game with a computer opponent, written with Pygame

Skills

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)

Random

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.