Garrick Tse

Computing Science, University of Alberta

I build things that have to be correct.

A ray tracer written from scratch in C, a card counting trainer running at countlab.ca, and a training platform built for the department where I trained dealers.

Open to
Winter 2026 and beyond
Based in
Edmonton, AB, open to relocating
Currently
CountLab
A ray traced scene: three spheres on a checkered plane, lit by a single light.
Ray-sphere intersection, Lambertian diffuse with a Blinn-Phong specular term, hard shadows. Ported from the C renderer below.

Experience

Gateway Casinos

Dealer and dealer trainer

Grand Villa Casino, Edmonton

Dealt table games and trained new dealers on procedure, game protection and pace. Training progress and sign-offs were tracked on spreadsheets passed between coordinators, which made it hard to answer a simple question: who has actually been signed off on what.

I built gatewaytraining.ca on my own time to replace that process. It is not something I was assigned or paid to do.

Selected work

07
3D Rendering Engine Ray tracer written from scratch in C 2025 C Source

Ray-sphere intersection, surface normals, diffuse and specular lighting, and PPM output, with no graphics library involved. The renderer running at the top of this page is a port of it to canvas, so the shading model you are looking at is the one implemented here.

Stock Tracker Scrapes and queries insider trading disclosures 2025 to 26 Python, Pandas Source

Scrapes public financial disclosures for trades made by executives, politicians and high net worth individuals, normalises them with Pandas, and presents them in a Tkinter desktop interface with filtering and per-person history.

Android Mood App Team-built social app, Agile term project 2026 Java, Firebase Source

An Android app for posting your current mood in an Instagram-like feed, built by a team of six across Agile sprints with Firebase for auth, storage and the live feed. My work was on the data layer: batching the query pattern behind the feed and moving image handling off the main thread so scrolling stayed smooth on older devices.

Twitter Backend Clone Core API surface reimplemented against MongoDB 2025 Python, MongoDB Source

Tweets, follows, search and the timeline query, implemented in Python against MongoDB. The interesting part was the timeline: assembling a feed from a follow graph without scanning every document, which is where the indexing decisions actually start to matter.

Tools

Languages

  • TypeScript
  • Python
  • JavaScript
  • C
  • Java
  • SQL
  • PHP

Frameworks and runtime

  • React
  • Next.js
  • Node.js
  • Express
  • Tailwind CSS
  • Pandas
  • NumPy

Infrastructure and data

  • PostgreSQL
  • Supabase
  • Firebase
  • MongoDB
  • Docker
  • Git
  • AWS

About

I gravitate toward problems where being roughly right is not good enough. A renderer either produces the correct image or it does not. A counting drill either deals a legal shoe or it quietly teaches you the wrong thing. A training record either proves someone was signed off or it fails an audit.

Most of what I have built started as something I needed. I was training dealers at Gateway and the sign-off process ran on spreadsheets, so I built a tool to replace it. I wanted to understand how rendering actually works, so I wrote a ray tracer in C instead of reading about one.

I am looking for a software role where correctness matters and I can work close to the problem. If that sounds like your team, I would like to hear about it.

Garrick Tse

Contact

The fastest way to reach me is email. If you are hiring, a link to the role and a line about what the team is building is plenty to start with.