Matt Graba
Software Developer — Backend & Mobile
Currently working on a fantasy basketball platform that is aimed to deliver a more competitive, authentic general manager experience — built specifically around the NBA schedule rather than adapting basketball data to a fantasy format inherited from football.
Full-stack fantasy sports platform — custom player-scoring engine, background data pipeline, web and mobile clients
Fantasy score calculation engine scoring every game from box production, efficiency, on/off impact, and matchup difficulty
43 background jobs handling idempotent, self-healing data ingestion across the NBA and WNBA
One gamemode shipped end-to-end: draft, lineup management, automated lock and settlement
AI-assisted debugging CLI (BYOK) with a self-hostable backend — TypeScript, Zod-validated, one shared package for validation and error handling on both request paths
Rebuilt from an initial JavaScript MVP into a strict-mode TypeScript codebase — 122 tests, CI, Docker
Shared internal package (Zod schemas, typed error hierarchy, unified prompts) eliminates drift between the CLI and server request paths
Three ADRs document the key architectural decisions behind the rebuild
C++ logistics simulation with modular design patterns
Observer and Decorator patterns for extensible module composition
Battery management system for flight path optimization
Containerized builds with Docker, validated by unit tests
Education
Boston University
M.S. Software Engineering for AI — Expected May 2028
University of Minnesota — Twin Cities
B.S. Computer Science — December 2024
Systems & Architecture
Operating Systems
Computer Architecture
Machine Architecture
Algorithms & Data Structures
Software & Design
Software Engineering
Program Design & Development
Advanced Programming Concepts
Artificial Intelligence
Currently Seeking
Technical Stack
Primary stack — fantasy basketball app
UI & component systems
Design patterns & system thinking
Storage, ingestion, and processing
TypeScript primary; others from coursework & systems work
Build, deploy, and test
Developer CLI
AI-Assisted Debugging CLI + Self-Hostable Backend
A BYOK-first CLI that brings AI debugging to the terminal — analyze, explain, fix, generate, scaffold, and suggest commands, with project-aware context scanning that respects .gitignore and skips credential-shaped files. Pairs with a self-hostable Express/MongoDB backend: JWT auth, per-user rate limiting, Zod-validated requests, and a token-budget guard on every AI request.
Started as a learning project — a first pass at wiring a CLI, backend, and LLM integration together end to end. Later rebuilt in strict-mode TypeScript around a shared internal package (Zod schemas, a typed error hierarchy, unified prompt templates) that closes the gaps between the CLI's direct-to-OpenAI path and the server's hosted path — the two had drifted apart during the original build. 122 tests, CI, and a two-stage Docker build back it now; three ADRs document the key decisions from the rebuild.
Architecture
CLI
cli/
commands/ — analyze, explain, fix, generate, scaffold, terminal
utils/ — config (0600 perms), local history, context scanner
BYOK — your key, direct to OpenAI; no account, no server
Server (Express)
server/ (self-hostable)
middleware/ — JWT auth → per-user rate limit → Zod validation
routes/ — one factory generates all 6 AI routes
models/ — MongoDB schemas for users, history
packages/prompt-kernel/ — shared by both sides: Zod schemas, typed error hierarchy, prompt templates, token-budget guard
CLI Commands
analyze
Boxed, line-referenced issue report
explain
Function-level explanation
fix
Bug detection + suggested patch
generate
Boilerplate code generation
scaffold
Project structure scaffolding
terminal
Suggests commands — never executes
Fantasy Sports Platform
Full-Stack · Web + Mobile
A full-stack fantasy basketball platform, structured as a modular monorepo: a core platform layer (auth, leagues, shared contracts), a basketball data layer (ingestion, stats, scoring), and gamemode logic built on top. The API covers 16 domains and 59 database models. A 43-job background system handles ingestion for both the NBA and WNBA — box scores, injuries, season averages, advanced metrics, and live in-game updates — with automatic detection and recovery of missed data.
At its center is Impact, a fantasy score calculation engine that scores every player performance from four weighted signals: box production, efficiency, on/off impact, and matchup difficulty. One gamemode is live end-to-end — draft, lineup management, lock-time automation, and settlement — and its core mechanics are now being generalized into a season-long head-to-head format.
Tracked with architecture decision records, scope-locked specs, and a maintained technical-debt register. Clients: a Next.js web app and an Expo / React Native mobile app.
Auth, league/roster/matchup management, commissioner tooling, typed contracts at every boundary
Dual-sport ingestion (NBA + NCAAB), 59-model normalized schema, canonical-vs-provider ID mapping
Fantasy score calculation engine — box production, efficiency, on/off, matchup signals — materialized from play-by-play
Real-time draft engine, pick validation, autopick, Redis + Postgres two-layer locking
Gamemodes as format strategies over shared window machinery: generated slates → lock → hydrate → settle
Job Runner
43 registered jobs: singleton locking, retry/backoff with jitter, timeouts, Sentry capture
Self-Healing Ingestion
Daily gap detection re-ingests missed dates; every write idempotent by natural key (ADR-governed)
Live Sync
30s game polling driven by per-game due-sync timestamps, plus provider webhook ingestion
Redis + PG Locks
Two-layer pick safety: distributed mutex + Postgres FOR UPDATE with Lua token comparison
Zod Boundaries
API entry + ingest validation, domain-typed errors, z.infer<> type sync