Portrait of Rick Liu
👋

Hi, I'm Rick.

>

From idea to users, I ship AI products end to end.

“a stonecutter hammering 100 times with no crack, then it splits on the 101st...”

My experience

My projects

TermPocket

    Made with:

Personal finance for university students, budgeted by school term instead of calendar month. 50+ users in production.

  • Pocky, an AI assistant (EN/ZH) that drafts transactions from chat for one-tap confirmation, answers questions about your spending, and plans savings with deterministic math. Model chosen by an 82-case eval; prompt caching makes each turn ~70% cheaper.
  • On-device screenshot import (OCR in the browser, zero silent amount errors on 215 benchmark rows) and Whisper dictation, nudged toward your merchant names (90% to 97% on a 60-clip synthetic set); plus a read-only MCP server for your AI client.

PreBell

    Made with:

Automated US market news in English and Chinese at prebell.site. It tracks earnings for 561 US-listed companies and publishes a premarket brief, an after-close recap and earnings write-ups every trading day, with no human in the loop.

  • Fully automated, end to end: every 5 minutes it polls SEC EDGAR for results filings, reads the release and its XBRL, and an LLM drafts both languages. Code checks every number against the filing and every news reason against a word-for-word quote, or nothing publishes; failed runs retry on their own.
  • A live earnings calendar for all 561 companies, ticked within 5 minutes of a results filing, alongside Fed, jobs, CPI and election dates. The 139 largest get a full bilingual write-up built straight from their SEC filing.

SlopFish

    Made with:

A fork of Stockfish for a chess variant where capturing is mandatory. Built for Waterloo's CO 456 Game Theory course and placed top 4 in class.

  • The rule must hold at every search node, so it reaches into move generation, ordering, check evasions and quiescence, where stand-pat pruning is disabled because a forced capture breaks alpha-beta's lower bound.
  • Trained a variant-specific NNUE on 17.2M self-play positions and shipped it as the default. An independent self-play arbiter caught rule violations in 2.5% of games (promotions counted as captures); fixed and verified at zero in 400 games.

DearByte

    Made with:

A self-hosted personal AI agent that turns Apple Watch health data, calendar and memory into morning briefs over Telegram. Open source.

  • TypeScript agent loop on the Anthropic SDK with a validated tool registry and two model tiers: a cheap worker for bulk work and a stronger brain for judgment calls, swappable between DeepSeek and Claude. Every call is cost-logged under a weekly cap.
  • Apple HealthKit bridged over remote MCP on Cloudflare Workers; spending context from TermPocket over read-only MCP; x402 purchases on Base Sepolia with explicit approval, seller allowlists and caps enforced in code.
DearByte running in Telegram, showing a contextual morning brief and a testnet purchase approval request

openfilm (open source)

    Made with:

Contributor to openfilm, the open-source AI video agent (5k+ stars, MIT). Some of what I've shipped across its agent layer, render pipeline and Electron studio:

  • Built resumable rendering: films render in 1–10 s chunks, so a stopped render resumes where it left off. A 60 s 1080p film resumed frame-identical in half the time.
  • Agent layer: conversations remember their agent and model across restarts, and the OS pings you when a turn finishes or needs an answer. Plus a 0.1× to 100× clip speed past Chromium's 16× media cap; the rest is under My PRs.

AGE Game Engine

    Made with:

A C++20 module-based MVC game engine for 2D ASCII games, running Space Invaders and Snake.

  • Entity-Component System with rendering, input, game loop and collision built in; new games subclass GameEngine and override virtual hooks.

My Education

University of Waterloo logo

Bachelor of Mathematics

University of Waterloo

2023 - 2028

  • Major in Computational Mathematics
  • Major in Statistics
  • Minor in Combinatorics and Optimization
  • Minor in Computing (Computer Science)
  • Activities: Founding Member at Sustainable Physical AI Society (SPAIS); ML Lead at WAT.ai (Sentiment Pulse); Core Member at Waterloo Blockchain Club; Basketball Intramural Champion
  • Available for 4- or 8-month co-op placements, May – December 2027 (Summer and Fall 2027).

Blog

8 min read

TermPocket: a budget that runs on school terms, not months

A free, open-source finance app for Canadian university students that budgets by term, reads screenshots on your device, and lets you record spending by talking to Pocky.

  • project
21 min read

DearByte: Agent That Knows You

A self-hosted agent that reads my Apple Watch, calendar and budget, messages me first, and pays for small things once I approve. Plus, one month later: the labs shipped the same idea, and what that means for solo developers.

  • project
17 min read

A Waterloo Student's Honest Recruiting Recap 2025/2026

From zero interviews to 30+ rounds including startups, unicorns, and FAANG. The unfiltered version.

  • career
  • personal
8 min read

From $6.5K to $20K to –$2.6K

A CRO stake that tripled on a Trump Media headline, then crashed into a $2,600 loss and a 36-day lock-up.

  • investment
  • crypto
  • personal
View all posts →

Contact me

Open to Summer & Fall 2027 co-op

4- or 8-month placements, May – December 2027. I'm also open to part-time work and interesting side projects. Email is the fastest way to reach me.

m69liu@uwaterloo.ca