VIEW RÉSUMÉ

Harkaran Gill / CS at Waterloo

What happens when light meets a surface?

I build software to understand what is happening underneath. Lately that has meant tracing light in C++, training a small language model, and connecting code to a physical sorting system.

C++ / Python / Java / Waterloo, ON
Fig 01 / A pixel in my C++ ray tracer Scene → Image
One sample's path through the renderer
01
Camera generates a rayPosition + direction through a pixel
02
Ray tests scene geometryFind the nearest sphere intersection
03
Material scatters the rayDiffuse, metal, or dielectric response
04
Follow light recursivelyTrace bounce(s) and accumulate colour
05
Average pixel samplesAnti-aliasing smooths the final result

Depth of field varies camera rays; recursive scattering handles reflection, refraction, and diffuse surfaces. This is a conceptual pipeline, not an image of the renderer.

Camera → hit → scatter → colour C++ / CMake
At a glance ↗

Computer Science
University of Waterloo · BCS, expected May 2031.

What I've built
A path tracer, a language model, and a hackathon-winning sorting system.

01 / Selected projects

Built it.
Figured it out.

Three different projects, one common thread: getting beyond a working demo to understand the mechanics that make it work.

01 / Computer graphics
Final render from the C++ RayTracer repository
Actual render in RayTracer/images/final_render.png
C++ ray tracer / project output
Aug 2025 – Nov 2026 / C++ · CMake

C++ Ray Tracer

A CPU-based path tracer that builds an image by sending rays into a scene and recursively following how surfaces scatter light. Implemented the geometry and camera foundations before adding anti-aliasing, depth of field, and diffuse, reflective, and refractive materials.

Built from scratch
Vector and ray classes, ray–sphere intersections, camera positioning, and recursive light transport.
Made usable
CMake configuration and build/run documentation for Visual Studio and CLion.
Graphics / Recursion / Physically based rendering Source, render & README ↗
02 / Language models
TinyStories image from the LanguageModels repository
Image from LanguageModels/images/TinyStories.png
TinyStories / repository image
Dec 2024 – Feb 2025 / Python · PyTorch

Storyteller AI Chatbot

Developed a 10-million-parameter character-level language model based on the GPT architecture. Trained on TinyStories under limited hardware, then adjusted the training setup and dataset to reach a reported 0.6 cross-entropy loss.

Training setup
Character-level tokenization, PyTorch, Jupyter Notebook, and Anaconda.
Iteration
Used AdamW and revised the dataset and training choices to improve learning.
Model architecture / Training / Evaluation Notebooks & source ↗
03 / Hackathon · 1st of 76 teams
Classification decision → Arduino mechanism
May 2025 / Java · Python · Arduino

AI-Powered Waste Sorting

Led a four-person hackathon team that placed first out of 76 groups (300+ participants). Architected a waste-management solution, developed classification logic, and connected the software to an Arduino-controlled sorting mechanism.

The system
A software classification decision drives a physical sorting action.
The result
1st place; concept aligned with Brampton's 2040 municipal goals.
Team leadership / Software + hardware / Prototyping
04 / Android / Java
Opening screen from the MinionChess Android repository Game screen from the MinionChess Android repository
Actual screenshots from MinionChess/READMEImages.
Java · Android · Gradle

MinionChess

A fan-made Android chess project with character-themed pieces. Its public repository contains Android source and screenshots of the opening and game screens.

What you can inspect
Java/Android project files and Gradle configuration.
What you can see
Two screenshots committed to the repository.
Android source & screenshots ↗

Education.

02 / Foundations

University of Waterloo

Bachelor of Computer Science / Waterloo, ON

President’s Scholarship of Distinction · Michael Egan Entrance Scholarship.

Brampton Centennial Secondary School

OSSD / Brampton, ON

Governor General’s Medal of Academic Excellence.

Google Cybersecurity Professional Certificate

May – Sep 2025

Security fundamentals, network defense, Linux, Python automation, and technical documentation.

Experience.

03 / In practice

Math, Physics, Chemistry & CS Tutor

Sep 2025 – Aug 2026
Peel District School Board volunteer / Self-employed

Provided one-on-one help, including debugging Python and Java assignments; adapted explanations of math and science concepts to each student.

DSD Receiver · Walmart Canada

May – Aug 2026
Brampton, ON

Verified direct-to-store deliveries, resolved discrepancies with vendors, drivers, and associates, and reported bugs and crashes in the internal receiving app.

Co-Founder · STEM Club

Sep 2024 – Jun 2025
Brampton Centennial Secondary School

Led the CS division, delivered 10+ workshops on AI, Python, and game development, and taught data structures and algorithms through a coding contest curriculum.

04 / Toolkit

Tools I actually use.

A short list, not a wall of logos. My projects above show where these tools fit.

LanguagesC++, Python, Java, SQL
DevelopmentGit / GitHub, Linux, CMake, VS Code, Visual Studio, CLion, IntelliJ, Eclipse
ML & notebooksPyTorch, Jupyter Notebook, Anaconda
05 / Résumé

Prefer the PDF?

The full one-page view of projects, experience, education, and skills.

Open résumé
06 / Elsewhere

Let's talk
about the work.

I'm interested in software engineering, systems, and low-level computing. Email is the best way to reach me.