Matt Graba
Software Developer • Backend Platform Engineer
Founder, PEAK Fantasy
Welcome to my page! I'm a dev currently building a fantasy basketball platform for fans who care about the full picture — not just whoever had 40 points last night. PEAK Fantasy is designed to reward players for their true impact, and give the guys who don't show up in highlights the recognition they deserve. The goal is to give fans the tools to play the game their way — custom scoring models, deeper player analytics, and a community built around people who love the game.
CLI-to-backend debugging assistant published to npm
JWT-authenticated CLI commands routed through Express API
OpenAI-powered analysis with per-user MongoDB history
Schema validation, CLI UX enhancements (ora spinners), cloud container deployment via Render
Domain-driven fantasy basketball platform with real-time systems
Five bounded contexts with typed contracts at every boundary
Redis distributed locks for concurrent draft coordination
Cron-scheduled ingestion pipelines into Prisma/Postgres
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
University of Minnesota — Twin Cities
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
Continued Learning
Since graduating, I've concentrated on distributed systems, domain-driven design, and data infrastructure — applied directly through building PEAK. Ongoing study includes Designing Data-Intensive Applications and system design patterns.
Currently Seeking
Sole engineer on PEAK — looking to bring that ownership into a team.
Technical Stack
Primary stack — PEAK Fantasy
UI & component systems
Design patterns & system thinking
Storage, processing, and scoring
TypeScript primary; others from coursework & systems work
Build, deploy, and test
Dev Helper AI
Full-Stack Debugging Assistant
A CLI tool published to npm that streamlines error resolution directly from the terminal. Analyze files, explain functions, fix bugs, generate boilerplate, and scaffold project structures — all authenticated via JWT, backed by an Express API that routes requests through OpenAI and stores results in MongoDB.
Tested with Jest unit tests and Postman integration flows. Schema validation on all inputs, token-secured CLI commands, web-app demo deployment.
Architecture
CLI (npm package)
cli/
commands/ — analyze, explain, fix, generate, scaffold
utils/ — ora spinners, error handler, auth token
login — stores JWT locally for authenticated routes
Server (Express)
server/
routes/ — /analyze, /history (auth required)
controllers/ — request handling, validation
services/ — OpenAI integration, prompt construction
models/ — MongoDB schemas for responses, users
CLI Commands
analyze
Static analysis + AI review
explain
Function-level explanation
fix
Bug detection + suggested patch
generate
Boilerplate code generation
scaffold
Project structure scaffolding
login
JWT auth, stored locally
PEAK Fantasy
Performance Systems for Competitive Basketball
A full-stack NBA fantasy platform with a native mobile app (Expo / React Native) and a real-time draft engine. Five bounded contexts — Auth, League, Draft, Scoring, Provider — each with isolated business logic and typed contracts at the boundary. The domain-driven structure wasn't an upfront architectural decision; it emerged from the genuine complexity of combining synchronous multi-user draft mechanics, async background scoring settlement, and external stat ingestion into a single system.
Session lifecycle, JWT validation, role-based access control
League creation, roster rules, commissioner controls, invite flow
Real-time draft engine, pick validation, queue management, timer sync
Pure-function scoring engine, configurable multiplier model, per-stat audit breakdown
Provider abstraction layer, adapter-based normalization, external ID mapping, job orchestration
Redis + PG Locks
Two-layer pick safety: distributed mutex + Postgres FOR UPDATE with Lua token comparison
Provider Adapters
Adapter-based normalization, external ID → internal player ID
Ingestion Jobs
Six registered background modes, singleton locking, 250-record batch transactions
Prisma / Postgres
Typed ORM, Neon managed serverless, migrations, relations
Zod Boundaries
API entry + ingest validation, domain-typed errors, z.infer<> type sync