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.

Fantasy Basketball Platform

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

TypeScriptPostgreSQLNext.jsReact Native
Dev Toolkit

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

TypeScriptZodExpressMongoDB
Drone Delivery Simulation

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

C++DockerUMLDesign Patterns
Background

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

Backend EngineerPlatform EngineerFull-Stack Engineer
Expertise

Technical Stack

Core Stack

Primary stack — fantasy basketball app

TypeScriptNode.jsExpressPostgreSQLPrismaRedis
Frontend

UI & component systems

ReactNext.jsTailwind CSSshadcn/ui
Architecture & Design

Design patterns & system thinking

Domain-Driven DesignBounded ContextsREST API DesignJWT / RBAC
Data & Pipelines

Storage, ingestion, and processing

SQL Schema DesignData Ingestion PipelinesIdempotent ProcessingData Normalization
Languages

TypeScript primary; others from coursework & systems work

TypeScriptPythonSQLC / C++Java
Infrastructure & Tooling

Build, deploy, and test

DockerGit / GitHubLinuxJestPostman
Dev Toolkit

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

terminal
~/projects$

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

TypeScriptZodExpressMongoDBDockerVitest
Peak Fantasy Basketball · In Active Development

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.

System Architecture16 Domain Modules · 3-Layer Platform
CORE PLATFORM

Auth, league/roster/matchup management, commissioner tooling, typed contracts at every boundary

BASKETBALL CORE

Dual-sport ingestion (NBA + NCAAB), 59-model normalized schema, canonical-vs-provider ID mapping

IMPACT

Fantasy score calculation engine — box production, efficiency, on/off, matchup signals — materialized from play-by-play

DRAFT

Real-time draft engine, pick validation, autopick, Redis + Postgres two-layer locking

GAMEMODE LOGIC

Gamemodes as format strategies over shared window machinery: generated slates → lock → hydrate → settle

Infrastructure Layer

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

TypeScriptNode.jsPostgreSQLPrismaRedisNext.jsExpoReact Native