Skip to projects

Eric Song Portfolio

HELLO! I’m Eric Song.

I study Math at the University of Toronto.

I build

Internal tools · Creator tools · Trading bots · Bots that watch bots · Monitoring & Data Tools

Toronto · University of Toronto

Eric Song

Math & stats student at U of T.

Mostly I build software that saves someone time: a map tool for an appraisal team, research tools for a creator, and a small fleet of bots that trade, scrape, and keep an eye on each other.

Monitoring & Data Tools

Six small collectors that watch social feeds and marketplaces, clean up what they find, and flag anything worth a look.

6 collectors
Right now
5 source families
Right now
25K+ archived source checks
Counted, rounded down
  1. Social Code Collector

    100+ tracked run snapshotsCounted, rounded down

    Checks social posts, reads image text, removes repeats, and alerts on new codes.

    Instagram · Facebook · Discord · OCR · deduplication

    Private source · ChardXBT/social-code-scraper

  2. Cross-Market Price Comparison

    1,447 listings in the latest saved scanRight now

    Normalizes marketplace prices, caches lookups, ranks value, and exports reviewable results.

    Price comparison · normalization · SQLite · export

    Private source · ChardXBT/csgo-price-checker

  3. Skinport Price Monitor

    2,700+ archived checksCounted, rounded down

    Checks configured searches, validates listing conditions, and alerts on matches.

    Skinport · conditions · source health · alerts

    Private source · ChardXBT/Skinport_skin_finder

  4. CS.Money Price Monitor

    13,000+ archived checksCounted, rounded down

    Runs as its own stage inside the Skinport monitor, with its own labels and health checks.

    CS.Money · normalization · source isolation · alerts

    Shared codebase · ChardXBT/Skinport_skin_finder

  5. Steam Market Monitor

    9,000+ archived checksCounted, rounded down

    Schedules searches, converts prices to USD, filters conditions, and ranks alerts.

    Steam · Playwright · FX normalization · scheduled alerts

    Private source · ChardXBT/steam-market-monitor

  6. BUFF Market Monitor

    40+ substantial archived runsCounted, rounded down

    Keeps browser checks recoverable with retries, circuit breakers, archives, and alerts.

    BUFF · browser automation · circuit breakers · recovery state

    Private source · ChardXBT/buff-market-monitor

Things I’ve built

Public repo · in production at an appraisal office

Property Appraisal Workspace

A map-first workspace where an appraisal team finds past reports.

15–20 min → 1–3 min Time to look up comparable properties and reports

I pulled 225+ appraisal reports into one protected, map-first workspace, so researching a property starts from a single search.

  • Search 225+ reports by map, address, square footage, or property details
  • Upload report details, photos, PDFs, and the documents that go with them
  • Records are locked down with sign-in, row-level security, roles, and signed links
  • React
  • Supabase
  • PostgreSQL
  • Google Maps
  • Leaflet

Private repo · the creator’s data stays private

Runway

A research and scheduling tool for a creator, built on 770+ of their past posts.

770+ posts indexed Used for live posts on a 280K+ follower channel

It turns a channel’s back catalogue into something you can search, drafts captions grounded in past posts, and schedules them once a person has signed off.

  • 4,800+ searchable image and text records with 136K+ cached comparisons
  • Nearly 400 labeled creator preferences
  • Tested two ranking models and kept the stronger baseline
  • Python
  • FastAPI
  • SQLAlchemy
  • SQLite
  • Next.js
  • TypeScript
  • NumPy

Public architecture and demos · the live system is private

CS Marketplace Operations

Bots that price, buy, list, and sell CS2 items, and recover when a trade goes sideways.

200K+ listings · 1,000+ sold US$4K+ net realized profit after fees

One system does the research and the trading: 200K+ listings checked, 2,000+ targets watched, 1,000+ items sold, and US$4K+ in realized profit.

  • Checks live prices and submits bounded offers or purchases
  • Keeps inventory in sync, reprices orders, relists items, and confirms sales
  • Remembers pending actions and double-checks unclear responses before retrying
  • Python
  • Node.js
  • Playwright
  • REST APIs
  • GitHub Actions

The recovery pattern is public · the real supervisor is private

Automation Supervisor

One supervisor that schedules, checks on, and restarts 29 automation workflows.

29 tracked workflows under one supervisor Up from an 8-hour daily run window

It keeps 29 workflows on schedule while I sleep: launching runs, only counting one as done when there’s fresh proof, and recovering when something breaks.

  • Coordinates schedules so nothing runs twice or fights over the same resources
  • A run only counts as successful with fresh evidence that it finished
  • Recovers cleanly from crashes, outages, closed terminals, and machine restarts, tested against 70+ fault scenarios
  • Python
  • Textual
  • Windows ConPTY
  • PowerShell
  • Automated testing