Name

Caden Sun

SchoolUniversity of Waterloo

Mathematics, class of 2030

Click to openTap to open

Contents

About me

Hi! I’m Caden, a mathematics student at the University of Waterloo, graduating in 2030. I’m interested in software engineering, machine learning, and AI.

This summer I built an AI calling agent at ProCogia. Now I help Professor Jimmy Lin’s Castorini group with retrieval research, and in winter 2027 I join Bits In Glass as a machine learning engineer.

Caden in a cream hoodie and a black apron, pulling a face and holding out a plate of little white dough balls.

Experience

Machine learning engineer at Bits In Glass

Incoming, winter 2027

A global boutique technology firm that designs, builds and runs enterprise AI, with the data, processes and platforms around it.

Bits In Glass

AI engineering intern at ProCogia

May to August 2026

At ProCogia I built an AI calling agent and was responsible for designing and implementing the system behind it. It was my first time working in Vancouver, and I got to see all the cool views and mountains. My favourite part of the city was Kitsilano.

Some of my favourite photos I took
A pink and orange sunset over the water, freighters at anchor, mountains in silhouette and two people wading in.Downtown Vancouver's towers across the harbour from the seawall, under a grey sky and maple leaves.A hazy sun over calm water, its light on the waves, and a windswept pine on the rocks.
ProCogia

Research assistant to Professor Jimmy Lin

June 2026 to now

Testing multi-stage retrieval on TREC benchmarks in the Castorini group, from BM25 to listwise LLM reranking. Folded 24 near-duplicate tests into 5 suites merged into Pyserini, and fixed a caching bug that forced a 2 GB download on every fresh install.

Python, BM25, LLM reranking, TREC

My favourite paper I’ve read
Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small World graphsYu. A. Malkov and D. A. Yashunin, arXiv:1603.09320
University of Waterloo

ML engineer at Wat Street

January to August 2026

Volatility forecasting with Waterloo’s quantitative finance team: a pipeline from raw S&P 500 OHLCV data to 10 engineered features, and the PyTorch module that feeds a graph attention network into an LSTM across 500 stocks.

Python, PyTorch, pandas, NumPy

Wat Street

Projects

Flight Price Predictor

Data engineering, XGBoost, SQLite

The fare checker: a plane over the clouds above a ticket from JFK to Tokyo Narita for 12 December 2026, with a typical fare of $1,296 and a range of $1,107 to $1,485.

An XGBoost model that prices round-trip flights on 200+ routes across 55+ airports. It misses by 14.6% on average on held-out trips, against 17.1% for a linear baseline. The pipeline collects about 4,000 offers a day.

Cat Classifier

Computer vision, PyTorch, ONNX

Four cats, one judge

The judge: Ragdoll, 84% sure.The judge: Ragdoll, 99.58% sure.The judge: Not a ragdoll, 99.97% sure.The judge: Not a ragdoll, 99.6% sure.

A ResNet-18 fine-tuned on 1,722 photos decides whether a cat is a ragdoll, right in your browser. Answering no every time scored 77%, so a class-weighted loss ended that shortcut; a from-scratch baseline reached only 0.48 F1.

F1
0.832
Precision
0.800
Recall
0.867

Chess Bot

Game-tree search, Flask, React

Negamax search with alpha-beta pruning, iterative deepening and quiescence search, a Zobrist-hashed transposition table and a tapered evaluation. A Flask API on Vercel answers a React board with a live evaluation bar.

World Cup Goal Predictor

Linear regression, NumPy, gradient descent

Dot chart of goals per match at each men’s World Cup from 1930 to 2022: the six tournaments from 1930 to 1958 averaged 4.25, peaking at 5.38 in 1954, while all sixteen since 1962 stayed below 3, averaging 2.59.

Linear regression in NumPy with hand-derived gradient descent, predicting the goals in a match. It barely beats guessing the average, and loses on later tournaments: it learned 2.9 goals a match, and the next eight years averaged 2.5.