Hey, I’m Tom

I’m a computer science co-op student at University of Waterloo. I build thoughtful interfaces, reliable systems, and AI tools that make information easier to use.

At Faire. Researching with Castorini.
MY LITTLE CORNER OF THE INTERNET
SETTING THE DESK…

A room full of rabbit holes.

A few things I’m into. Pick an object to find its story.

DRAG TO ROTATE
CLICK TO EXPLORE
PICK AN OBJECT
TAKE A LOOK

Waterloo, Ontario

A LOOK AROUND

MADE OF MANY LITTLE INTERESTS

01 SELECTED WORK

A FEW THINGS I’VE PUT INTO THE WORLD

Ideas are nice.
Making them real is better.

More on GitHub
P—01
Local retrieval. Local answers.
ILLUSTRATED PIPELINE

Browser-native search · Castorini

RAG in a box — right in your browser. Search document collections with DuckDB-Wasm, then generate cited answers with a language model running on your device.

TypeScriptDuckDB-WasmWebGPUTransformers.js
A little more about the build

Built with the Castorini Research Group at Waterloo. I developed browser-native full-text retrieval and BM25 ranking, OPFS-backed persistence, Parquet ingestion, and LLM integration. Ragbox supports NFCorpus and MS MARCO search, with optional WebGPU-powered answer generation through Transformers.js. Retrieval and inference run locally; initial setup downloads the required runtime, indexes, and model.

Explore the code
P—02
A diagram summarizing the optical file transfer workflow
Droptic

Software & experiments

An offline way to transfer files between devices

TypescriptSvelteKitWASM
P—03
spinema screenshot
Spinema

Software & experiments

An Android application for a group of friends to search and vote concurrently for movies to watch.

KotlinJetPack ComposeGradleSupabase
P—04
path-robot.png
Sensing. Mapping. Finding a way.
AUTONOMOUS NAVIGATION

Robotics & autonomy

Giving a robot a sense of direction. A LiDAR-powered navigation system that turns its surroundings into a collision-free path.

C++ROS2DockerFoxglove
A little more about the build

I built the cost-map node to turn raw LiDAR readings into local and global obstacle maps, then used A* to plan the shortest safe route for a differential-drive robot. Built with the WATonomous team.

Explore the code
P—06
personal-notes.png
A little clarity for a lot of notes.

AI & learning · Hack the North 2024

Less searching, more understanding. A place to turn scattered notes and documents into summaries, flashcards, and questions.

Next.jsOpenAIFlaskPostgreSQL
A little more about the build

We built a document and note workspace with a Next.js interface and a Flask backend. OpenAI embeddings connect uploaded materials to a knowledge base, making it possible to ask questions and generate study materials from your own notes.

Explore the code
P—07
chess.png
One more move. One better algorithm.

Systems & algorithms

A familiar game, built from the ground up. A C++ chess engine with multiplayer and an AI that thinks a few moves ahead.

C++MinimaxAlpha–beta pruningCMake
A little more about the build

A team-built command-line chess game with human-versus-human and human-versus-computer modes. Minimax search and alpha–beta pruning power the computer opponent, with multiple difficulty levels.

Explore the code

Also built AllSet — a cross-platform AI recipe companion with React Native and Expo, a NestJS semantic-search API, and LangChain tool calling with support for multiple language models.

02 ALONG THE WAY

Good work.
Good people.

A few places where I’ve learned by doing, with people who care about what they build.

Sep 2026 — Present

Faire Wholesale

Software Engineer Intern

Shipping React and TypeScript features for merchant-facing pricing workflows. Working across application logic and APIs with engineering, product, and design, and building an internal analytics tool with typed integrations, asynchronous processing, and clear loading and error states.

ReactTypeScriptAPI integration

Jun 2026 — Present

Castorini Research Group · UWaterloo

Research Assistant

Building browser-native retrieval with DuckDB-Wasm: full-text search, BM25 ranking, and persistent storage through OPFS. Extending the system with Parquet ingestion, local caching, and language-model workflows for search applications.

DuckDB-WasmWebAssemblyOPFSRAG

Jan — Apr 2026

ATS Corporation

Software Engineer Intern

Built ASP.NET and RabbitMQ services processing over 20,000 industrial sensor metrics per second. Added buffering, retries, recovery, and Grafana monitoring, then containerized and deployed the services on Siemens edge devices.

C#ASP.NETRabbitMQDocker

May — Aug 2025

Studica Robotics

Software Engineer Intern

Made robot telemetry interfaces more responsive, reducing unnecessary re-renders by 50%. Fixed frontend defects, introduced Vitest, and restructured an Express backend in TypeScript with an MVC architecture and a CI/CD pipeline.

ReactTypeScriptExpressVitest

Jan — Aug 2024

University of Waterloo · Faculty of Science

Software Engineer Intern

Built and maintained a Next.js application for remote healthcare, with server-side rendering, Auth0 authentication, and cloud integrations. Maintained Azure serverless services supporting authentication and video streaming.

Next.jsAuth0Azure

03 THE PERSON BEHIND THE PROJECTS

Still learning.
Always tinkering.

I’m Tom Wang, a computer science co-op student at the University of Waterloo. These days, I’m building merchant-facing software at Faire and researching browser-native retrieval with the Castorini Research Group. I’m interested in making powerful systems feel straightforward to use.

My work has taken me from industrial sensor streams and healthcare platforms to robotics, mobile apps, and local AI. I like understanding how the pieces fit, then making them simpler to work with. Most of my favourite projects still start with a pretty simple question: “What if I tried this?”

See what I’m tinkering with
FIELD NOTESTW / 001
A few recurring themes

Search that stays local

Browser-native retrieval, RAG, and on-device AI.

01

Systems you can rely on

Resilient services, message brokers, and data pipelines.

02

Care in the little details

Thoughtful interfaces. Well-built systems.

03
University of WaterlooBachelor of Computer Science, Co-opExpected April 2027

And yes, that’s a tiny ION train on the shelf.
A little piece of Waterloo, brought indoors.