Eric Fan
builds things that ship.

Computer science & biology grad from UBC. A year as a machine learning engineer shipping computer vision models to production, and a habit of turning small ideas into finished apps — currently five on the App Store, none of them behind an account or a server.

Vancouver, BC UBC · BSc Computer Science & Biology, 2026

Shipped

Apps on the App Store

Designed, built, and shipped solo — SwiftUI front to back, with user data kept on the device or in your own iCloud.

Milestone

iOS 18+ iCloud sync

A project kept as voice notes and photos, with its tasks on the page beside them.

  • Voice, photo, or note from one floating control
  • Timeline grouped by day, cards dragged between them
  • Tasks as one hand-arranged list, finished work folded away
  • Voice transcribed and photos read on the device
  • Search into what was said, what a photo held, or what you meant
  • Projects counted in days since they started
SwiftSwiftUI SwiftDataCloudKit AVFoundationSpeech VisionNaturalLanguage Swift Testing

Allo: Budget & Expense Tracker

iOS 18+ On-device AI

One monthly limit, split into days — so the only number you have to hold is what today allows.

  • Monthly spend target divided into a daily budget
  • Under-spent days roll forward into a buffer
  • Bank alerts read into purchases via Shortcuts
  • On-device Apple Intelligence files each merchant
  • Saving shown a line at a time, income through to on track
  • Home and Lock Screen widgets for all three screens
SwiftSwiftUI SwiftDataWidgetKit App IntentsFoundation Models UserNotificationsSwift Testing

Cleanly: AI Photo Organizer

iOS 17+ On-device Vision

Clears the junk, duplicates, and bursts out of a camera roll — every judgement made on the device.

  • Flags blurry shots, empty frames, and screenshots
  • Clusters duplicates and bursts into one decision
  • Grid and Swipe passes over the same library
  • Names a keeper by sharpness, or abstains outright
  • Two-step Trash, so nothing leaves in a single tap
  • Favourites written straight to Apple Photos
SwiftSwiftUI SwiftDataVision Core MLPhotoKit AccelerateSwift Testing

Impulse: Cost to Work Hours

iOS 17+ Widgets

Prices you a purchase in hours of your own work, then gives you a way to sleep on it.

  • Converts any price into take-home work time
  • Defer a buy for 10 minutes or until tomorrow
  • Notification actions resolve a pause without opening the app
  • Running “time kept” total from everything you skipped
  • Interactive Home Screen keypad widget
  • Lock Screen gauges + category breakdown
SwiftSwiftUI SwiftDataWidgetKit App IntentsStoreKit 2 UserNotificationsXCTest

GIC Tracker

iOS 18+ Zero network

Every GIC you hold, across every bank — maturity dates, accrued interest, and one blended rate.

  • Simple and compound interest, accrued to today
  • Principal-weighted blended rate across holdings
  • Ladder view of maturities grouped by year
  • Local reminders 30 / 14 / 7 days before maturity
  • Renew, auto-renew, or cash out with linked terms
  • Localized in English and Simplified Chinese
SwiftSwiftUI SwiftDataUserNotifications LocalizationNo dependencies

Experience

Machine Learning Software Engineer

Metrized Consulting Inc. · September 2024 – September 2025

Computer vision for electrical blueprint analysis

  • Built and deployed detection and segmentation models with PyTorch, YOLO, RF-DETR, and SAM, automating blueprint analysis at 90%+ accuracy.
  • Engineered a one-shot learning pipeline that removed retraining entirely — 85% less processing time, near-instant classification from a single template.
  • Shipped full-stack tooling around it: React/TypeScript frontend on a FastAPI backend, with real-time processing and interactive visualization.
  • Designed the inference layer for scale — caching and queue optimization for concurrent multi-user access.
  • Implemented authentication, role-based access control, and Stripe billing for enterprise accounts.
PyTorchYOLO RF-DETRSAM FastAPIReact TypeScriptDocker Stripe

Selected work

Other things I've built

Mostly nights-and-weekends projects, each one an excuse to learn a layer of the stack properly.

Stashd — AI document inbox

Feeds extracted text and vision data into a locally hosted LLM to classify incoming documents, with a confidence threshold that routes uncertain cases to human review. A Strategy + Adapter layer behind one TypeScript interface keeps the app decoupled from any single AI provider.

ReactExpress TypeScriptOllama Gemma

Codeboard — live coding & whiteboard

A browser workspace that unifies collaborative editing (Monaco) and whiteboarding (Excalidraw) over WebSocket, with a peer-to-peer handshake that brings new joiners up to full session state instantly. Serverless AWS backend manages session lifecycle, enforces a 4-user cap, and broadcasts content in-memory only.

ReactWebSocket API GatewayLambda DynamoDB

Warehaus — digital closet

A React Native app with a multi-stage ML pipeline pairing object detection with SAM segmentation, processing clothing items in 2–4 seconds fully on-device to avoid latency and keep photos private. S3 for image storage, Supabase Postgres for the catalogue.

React NativeExpo SAMAWS S3 Supabase

Contact

Say hello

I'm looking for new grad software engineering roles — ML, iOS, or full-stack. Also happy to hear about a bug in one of the apps, or an idea for what should come next.

Email
ericfan.apps@gmail.com
GitHub
github.com/ericlyfan
LinkedIn
linkedin.com/in/ericlyfan