~/ottawa $ whoami

Andrew McGillivary

I build things that run in the browser, on the edge of my home network, and on a GPU under my desk — multiplayer games, automation bots, small hardware, and local AI tooling.

Selected projects

EDH Hangout

edhangout.games ↗

A polished, Arena-style browser client for 4–6 player online Magic: The Gathering Commander, built on top of the open-source Forge rules engine. Real-time tables, a mobile landscape layout, and an Android build. Invite-only while in playtesting.

  • Java
  • TypeScript
  • WebSockets
  • Cloudflare

Lunch Remixer

source ↗

A fridge-mounted e-ink lunch picker for my kids. Press the button, get a random lunch combo. ESP32-S3 with a 4.7" e-paper display, a 3D-printed case, and a Wi-Fi page for editing the food list.

  • ESP32
  • C++
  • E-ink
  • 3D printing

Campsite Sniper

Ontario Parks campsites sell out months ahead. This bot watches for cancellations on the dates and sites I want, alerts me the moment one opens, and can carry the booking through checkout. Runs 24/7 on a Raspberry Pi.

  • Python
  • Automation
  • Raspberry Pi

MTG Proxy Printer

Prints playtest card sheets on a home inkjet with accurate colour. A scanner-based calibration loop measures printed swatches and builds a correction profile so cards match their on-screen art.

  • Python
  • Colour science
  • Image processing

Local LLM Offload

A toolkit that lets an AI coding agent hand grunt work — summarizing big logs, drafting boilerplate, bulk edits — to a 30B model on a local RTX 5090 via Ollama, cutting cloud token spend.

  • Ollama
  • PowerShell
  • LLMs

Homelab

The infrastructure behind everything else: a QNAP NAS running containers, Pi-hole for network-wide ad blocking and DHCP, and Cloudflare Tunnels with Access policies to publish services safely without opening ports.

  • Docker
  • Linux
  • Networking
  • Cloudflare

About

I'm based in Ottawa, Canada. Most of my side projects start with a small annoyance — a campsite that's always booked, a kid who can't decide on lunch, a card game I want to play with friends in other cities — and end with something running on hardware at home.

I like shipping working software quickly, then making it reliable.

  • languages TypeScript, Java, Python, C++
  • web Node, WebSockets, Vite
  • infra Docker, Cloudflare, Linux
  • hardware ESP32, Raspberry Pi
  • ai Ollama, local GPUs, Claude