Featured Project
Co-Founder · bet-board.com · Sep 2025 – Present
A self-improving sports prediction system that trains 258 ML models across 5 sports, serves daily picks via a Bloomberg Terminal-style dashboard, and continuously optimizes itself using an autonomous daemon, LLM-powered meta-analysis, and Conditional Portfolio Optimization.
The Dashboard
bet-board.com is a Bloomberg Terminal-style sports analytics dashboard built in React, TypeScript, Vite, and Tailwind with shadcn/ui components. The January 2026 UX redesign reduced user scan time from 8-12 seconds to 2-3 seconds through progressive disclosure — game cards show 120-140px summaries that expand into full analysis modals.
Each daily game card surfaces: real-time odds from 15+ sportsbooks with best-line identification and line movement tracking, injury reports and lineup data, team and player statistics, recent performance trends, game logs, team travel schedules, and weather conditions for outdoor sports. The dashboard renders sport-specific SVG visualizations — a hockey rink for NHL, basketball court for NBA, baseball diamond for MLB, and soccer field for international matches — giving spatial context to matchup data.
Model predictions appear alongside odds data in every game card: consensus signals showing model agreement, expected value calculations per sportsbook, and confidence indicators. Market pills color-code prediction types — blue for moneyline, purple for spread, orange for over/under, green for three-way — with all 258 models named after legendary athletes (Gretzky, Jordan, Messi, etc.).
The infrastructure runs on DigitalOcean: Flask REST API serving model predictions on port 5050, Express auth server, Nginx reverse proxy, with PM2 process management and systemd timers triggering the daily pipeline at 10 AM and 6 PM EDT. Stripe is integrated with tiered subscription access: Free (live odds + consensus signal), Pro at $29/month (full ML predictions, EV by book, alerts, bet tracking), and Terminal at $79/month (API access, streaming alerts, priority features).
The ML Engine
The prediction system runs 258 stacking ensemble models across 5 sports (NHL, NBA, NCAAB, Soccer, MLB) and 6 target types: moneyline, spread, over/under, total score, margin, and three-way results. Each model stacks XGBoost, LightGBM, CatBoost, Random Forest, SVM, and Elastic Net as base learners, feeds out-of-fold predictions into a meta-learner, then applies isotonic or Platt calibration. Training uses walk-forward validation with a 7-day temporal gap to prevent data leakage.
Every model trains on 300-500 engineered features per game derived from ESPN API data — rolling windows, time-series transformations, and cross-competition aggregation across 70K+ historical games. Soccer alone covers 21 leagues including EPL, La Liga, Bundesliga, Serie A, UCL, Europa League, and more, with a custom cross-competition feature pipeline that reduced null features from 60% to 14-18% for cup and international matches.
An always-on optimizer daemon runs continuously, cycling through all models worst-first. For each model it backs up the current state, mutates hyperparameters via Optuna (50 trials per algorithm), evaluates, and keeps improvements or reverts to the backup — with 3,254+ experiments tracked and a 7% improvement rate. Safety features include singleton locking, a diminishing returns filter that auto-skips models with 5+ experiments and 3+ consecutive rejections, and automatic orphan process cleanup.
The system includes a Conditional Portfolio Optimization (CPO) layer — three ML models that adapt pipeline parameters, bet sizing, and meta-analyst strategy to daily market conditions using LightGBM regression with intelligent sampling. A self-improving LLM meta-analyst reads model performance every 6 hours, identifies calibration gaps and waste patterns, and feeds prioritized recommendations back into the daemon's optimization queue. The meta-analyst's own prompt is parameterized across 28 tunable fields and evolves through a mutation-evaluation-revert cycle. Daily pipeline runs fully autonomously twice per day: data collection, feature engineering, model inference across all 258 models, consensus aggregation, expected value calculation, and result settlement with ROI tracking at actual odds.
GTM & Content Engine
BetBoard's go-to-market centers on the positioning “Bloomberg Terminal of Sports Betting” — targeting serious sports bettors who want data-driven edge over gut-feel handicapping. The launch follows a phased sequence: 4-6 weeks of silent prediction tracking to build a verified public record, then coordinated launch across Twitter, Reddit, Product Hunt, and Instagram.
The content pipeline is fully automated. An LLM-powered system reads model outputs daily and generates formatted pick threads, cheatsheet graphics, and prediction card images. Three social accounts serve distinct lanes: @KingAri_Bets operates as a personal sharp analyst persona on Twitter Premium, posting game analysis and ML-backed picks with a human voice; @BetBoard_Info serves as the product and data brand, publishing model tournament results, line alerts, and LLM Leaderboard content (Claude vs GPT-4o vs DeepSeek head-to-head prediction accuracy); and @bet__board handles visual brand content on Instagram.
Silent tracking accumulates timestamped predictions before every game — auto-graded nightly with ROI computed at the odds available at time of prediction. This creates verifiable, non-cherry-picked performance data that separates BetBoard from typical tout services. Revenue follows a subscription model: Free tier (live odds + consensus signals), Pro at $29/month (full model access + EV calculations + alerts), Terminal at $79/month (API access + streaming + priority features), targeting 1,000 paying users for $30-50K MRR.
Siskinds Sports Management | Apr 2020 – Dec 2024
Statistical analysis on NHL player performance data for contract negotiations. Analytical reports for player agents and management teams informing critical contracting decisions.
4+ Year Engagement · Contract Negotiation Support