Thomas Majewski

Projects

Experience

Skills

About

Contact

SYSTEMS DEVELOPER · UOFT CS '29

I build what doesn't
exist yet.

I solve problems that don't have solutions yet, building whatever I need along the way. My past projects include everything from low-level systems development to full-stack web applications.

C++
C
VUE.JS
AVAILABLE FOR INTERNSHIPS

Select Projects

RISC-V Assembler & Emulator

  • Designed and implemented a RISC-V toolchain from scratch in C, including a custom assembler, virtual CPU, and interactive debugger supporting the RV32I+M instruction set and connected through ELF32 executables
  • Built multi-stage assembler pipeline including lexing, parsing, pseudoinstruction expansion, two-pass symbol resolution, and binary encoding
  • Verified emulator correctness against the official riscv-tests ISA suite (50/50 rv32ui + rv32um tests) and ~555 unit tests. Profiled with perf and optimized hot paths, reaching ~36 MIPS on a loop microbenchmark
  • Implemented a two-level Sv32-style virtual memory system with permission-checked memory IO
  • Developed a CLI debugger with breakpoint/watchpoint support and symbol-aware disassembly
C
Systems
Compilers
Computer Architecture
Virtual Memory
Debugging

OpenVR Conduit

  • Developed an OpenVR driver and library in C++, enabling real-time manipulation of VR devices for external apps
  • Designed and implemented high-frequency multi-layer shared memory interfaces for lock-free cross-process command and state streaming between driver and client apps with average latencies less than 0.5ms
  • Implemented low-level inline function hooking (MinHook) to intercept and modify OpenVR-based device data
  • Built a developer-friendly, well-documented API exposing commands and event listeners
C++
OpenVR
API
IPC
Systems

C Compiler (In Progress)

  • Building a C compiler toolchain from scratch, currently working on the frontend
  • Implemented a preprocessor with line splicing, pp-tokenization, and conditional and defining directives
C++
Compilers
Systems

VIAplanner

  • Took over development of a student-run timetable generator and course browser used by University of Toronto students, and fully redesigned a legacy codebase, reducing monthly costs by 98%
  • Developed modular timetable generation algorithm in C++, compiled to WebAssembly and integrated into frontend
  • Designed Express and MongoDB backend and automated scraping of course data using a scheduled job
  • Containerized and deployed application to live users using Docker Compose, and AWS Lambda, S3, and CloudFront
Vue.js
Express.js
MongoDB
AWS
Node.js

Experience

University of Toronto | Software Engineering Intern

September 2026 – Present

Integrating custom RISC-V toolchain into a learning platform for Computer Architecture with 320+ students. Implementing interactive code editing, debugging, and profiling tools into an educational platform, including live CPU state diagrams and cache representation for arbitrary code

University of Toronto | Teaching Assistant

September 2026 – Present

Assisting the professor during lectures for a 300+ student course, facilitating group discussions and providing feedback.

Skills

LANGUAGES

C++
C
RISC-V ASSEMBLY
TYPESCRIPT
PYTHON
SQL

FULL STACK

VUE.JS
EXPRESS.JS
MONGODB
TAILWIND
NODE.JS

SYSTEMS

LINUX/UNIX
COMPILERS
EMULATION
OPENVR
GDB

INFRASTRUCTURE

DOCKER
CMAKE
AWS
CMAKE
GIT

About

How's it going, I'm Thomas. I'm a third-year computer science undergraduate at the University of Toronto. I build things that solve real problems, from compilers, emulators, and drivers, to full stack web applications used by actual users. I'm currently looking for 12 or 16-month internship opportunities for Summer 2027.

Contact

Feel free to reach out with any inquiries.

Thomas Majewski · 2026