Felix Agene · UMN Twin Cities

ML Research & Data Systems
for Probabilistic Prediction.

Open to Research Roles

I build end-to-end ML pipelines — from scraping & feature engineering through distributional model training to live inference. Current focus: probabilistic models for sports-betting markets (NGBoost, GradientLSS, TabNet) in a 100k-LOC Rust workspace, plus research tooling for AI agents. Comfortable across the stack but happiest where the research meets the infrastructure.

distributional mldata engineeringrust systemsprobabilistic modelingml research

Bio

Computer-science student at the University of Minnesota Twin Cities. My work sits at the boundary between machine-learning research and the data infrastructure that makes it run: probabilistic / distributional models, end-to-end pipelines from scraping through training to live inference, and reusable Rust libraries that come out of building them.

Currently focused on distributional ML for sports-betting markets — a ~100k-LOC Rust workspace that scrapes nine data sources, trains NGBoost / GradientLSS / TabNet models against full probability distributions, and serves predictions through a live inference layer. Alongside it: AI tooling (an AST-aware MCP server, a research-agent project) and several Rust ports of probabilistic-modeling primitives.

Comfortable across the stack but happiest where the research meets the infrastructure — in feature pipelines, distribution-fitting code, and the unglamorous plumbing that turns "this notebook works on the train set" into "this prediction is in production."

  • + Distributional forecasting for non-stationary, non-i.i.d. data
  • + Reproducible context for code-aware AI agents (AST-based MCP)
  • + Production-grade Rust ports of probabilistic-modeling libraries
  • + Experiment tracking + HPO patterns for long-running ML training

Stack

/ ml & modeling

21
pythonnumpypandasscipyscikit-learnpytorchtensorflowspacynltkngboostgradientlsstabnetmlflowoptunadistributional mlprobabilistic modelingfeature engineeringnlpjupytermatplotlibseaborn

/ languages

7
rustpythontypescriptjavajavascriptsqlbash

/ data infrastructure

18
postgresqlduckdbmongodbredismysqldatabase designquery optimizationapache sparkdata modelingseleniumplaywrightbeautifulsoupscrapyflaresolverrbyparranti-bot evasionbrowser automationapi integration

/ systems & infra

11
dockerkubernetesgithub actionsci/cdlinuxgoogle cloudawsfirebasenginxterraformprometheus

/ web (full stack)

13
svelte / sveltekitreact / next.jsvue.jstailwind cssflaskquarkusfastapispring bootnode.js / expressrestful apisgraphqlwebsocketsjwt

/ security

10
network securitypenetration testingowasp top 10sql injection preventionxss / csrf protectionnmapburp suitewiresharkmetasploitkali / parrot os

Grouped by domain

/ End of Stack

Selected Work

SportsBetting
./sportsbetting
/ Featured 2025 — ongoing · solo · rust workspace · ~100k LOC private

SportsBetting

End-to-end Rust pipeline for distributional ML on NBA / MLB / NFL / NHL betting markets. Scrapes nine sources (ESPN, Yahoo, OddsPortal, Baseball Savant, FanGraphs, NBA Stats, nflverse, …) into a hybrid PostgreSQL/DuckDB store, engineers sport-specific prop features, then trains probabilistic models — NGBoost, GradientLSS, TabNet, and a feedforward baseline — that output full P(over)/P(under) distributions rather than point estimates. Includes a "Fishtank" subsystem that pulls live PrizePicks lines and pipes them through the inference layer for confidence-tiered suggestions.

Methods

NGBoostGradientLSSTabNetOptunaMLflowCRPS / NLL
/rust/distributional ml/ngboost/gradientlss/tabnet/postgres/duckdb/mlflow/optuna/scraping

ML & Modeling

AIResearcher
./airesearcher
2025 · solo · rust

AIResearcher

Local-first MCP server for academic literature research — no API keys, everything runs on-device. Reformulates a natural-language question into keyword variants, searches six providers (arXiv, Semantic Scholar, PubMed, OpenAlex, Crossref, DBLP) in parallel, then ranks with hybrid retrieval — pgvector semantic embeddings + BM25 keyword at 60/40 — plus semantic reranking through a local harrier-oss embedding model on Candle (Metal / CUDA). Synthesizes findings and surfaces emerging trends by clustering recent papers with a local LLM (qwen via Ollama), and ships a 30-query benchmark suite to measure search quality.

/rust/hybrid search/pgvector/bm25/embeddings/candle/mcp/local llm
ngboost-rs
./ngboost-rs
2025 · solo · rust library

ngboost-rs

Rust port of Stanford's NGBoost (Natural Gradient Boosting). Implements probabilistic regression across eight distributions — Normal, Poisson, Gamma, LogNormal, Laplace, Student-T, Exponential, Bernoulli — with natural-gradient scoring rules. Designed as a drop-in primitive for the SportsBetting modeling layer.

/rust/ngboost/probabilistic regression/gradient boosting
gradientlss-rs
./gradientlss-rs
2025 · solo · rust library

gradientlss-rs

Rust port of GradientLSS — distributional gradient boosting that learns Location, Scale, and Shape parameters jointly. Supports Gaussian, Poisson, Negative-Binomial, Gamma, and Student-T distributions with NLL and CRPS loss functions, plus the stabilization heuristics from the original Python reference.

/rust/distributional boosting/lss models/crps
ATORP
./atorp
2025 — ongoing · solo · python · private private

ATORP

Algorithmic Trading & Options Research Platform — a Python framework covering the full lifecycle from research to live execution, built to test whether a systematically profitable strategy is actually reachable. Backtesting engine with configurable slippage/commissions, walk-forward out-of-sample analysis with overfitting detection, and a full metrics suite (Sharpe, Sortino, drawdown). Adds options support (Black-Scholes pricing, Greeks, IV solver), risk management (position limits, drawdown circuit breakers, daily loss caps), and Alpaca paper/live integration with crash recovery — plus an isolated ML research harness that explores model-driven strategies without touching production logic.

/python/quant/backtesting/walk-forward/options/alpaca/risk management

Archive · 2 more in ML & Modeling

Data Engineering & Tooling

dbkit-rs
./dbkit-rs
2025 · solo · rust library

dbkit-rs

Reusable crate extracted from SportsBetting that splits database I/O along read/write boundaries: PostgreSQL via a connection pool for transactional writes, DuckDB for analytical reads. Trait-based fetcher / saver pattern behind a single facade so downstream code doesn't care which backend a query hits.

/rust/postgres/duckdb/oltp/olap/data infrastructure
AstBasedContext-rs
./astbasedcontext-rs
2025 · solo · rust binary

AstBasedContext-rs

MCP (Model Context Protocol) server that gives AI coding agents AST-aware visibility into a codebase. Walk by symbol, fetch the call graph, query "where is X defined or used" — all keyed on parsed syntax trees rather than text matching.

/rust/mcp/ai tooling/ast/codebase context
scraprs
./scraprs
2026 · solo · rust framework 0.1 alpha

scraprs

High-performance, batteries-included web-scraping framework for Rust, inspired by Python's Scrapy. Wraps the orchestration around fetching so you write extraction instead of concurrency plumbing: compile-time-typed spiders and items, dual-backend fetching (HTTP-first with a chromiumoxide browser fallback), first-class antibot-rs integration for Cloudflare / DataDome / Turnstile, adaptive response-aware throttling, pluggable middleware + pipelines, TLS-fingerprint impersonation, and dbkit-backed storage. Async on Tokio, feature-gated, with a CLI and declarative TOML spiders on the roadmap.

/rust/web scraping/framework/tokio/chromiumoxide/antibot-rs
pulse
./pulse
2026 · solo · rust + tauri + sveltekit in progress

pulse

Trend-to-content opportunity engine that fuses trend velocity, news freshness, and SEO opportunity into one ranked feed of content ideas — each carrying an evidence trail for *why* it's worth writing. Live ingestion pulls Google's trending-searches RSS (bundled news per trend) and enriches topics with free SEO signals — autocomplete, PAA-style questions, and a SERP-competition score — routed through the sibling scraprs framework, then a deterministic scoring engine ranks them. Rust workspace (ingest / seo / scoring / storage / service) behind a Tauri 2 + SvelteKit shell, with pluggable storage (in-memory by default, Postgres via dbkit-rs).

/rust/trend analysis/seo/scoring engine/scraprs/dbkit-rs/tauri
DealSynth
./dealsynth
2026 · solo · rust + ratatui in progress

DealSynth

Personal deal-hunting engine in Rust that monitors retail and secondhand marketplaces for price drops and clearance, scores deals against demand signals, and surfaces them through a Ratatui TUI. Pulls Walmart (Byparr + __NEXT_DATA__ JSON), Target (Redsky JSON API), and Best Buy (Apollo SSR JSON) concurrently into one aggregated, sorted, scored report, and gauges demand from active eBay listings via the Browse API (OAuth). Postgres persistence with a bundled DuckDB build for analytical reads.

/rust/ratatui/tui/scraping/ebay api/postgres/duckdb

Archive · 2 more in Data Engineering & Tooling

Learning & Spaced Repetition

3 Entries
Varianta
./varianta
2026 · solo · tauri + vue + rust in progress

Varianta

Chess opening repertoire trainer built as a Tauri 2 desktop app (Vue 3 + Vite frontend, Rust backend). Build a repertoire, drill it with spaced repetition, and explore your lines; a native SQLite storage crate (on dbkit-rs) persists openings and variations, replacing the earlier browser sql.js store. Also the shell for *Gambit*, a planned game-import + engine-analysis layer whose Rust crates live alongside the storage crate in the same Cargo workspace.

/rust/tauri/vue/spaced repetition/sqlite/chess
glossa
./glossa
2026 · solo · rust + tauri + sveltekit in progress

glossa

AI-native language-learning app that generates every sentence and story from a per-learner knowledge graph — so there's no fixed curriculum, only the next most useful thing to read at your exact level. Rust domain logic (frequency-weighted next-word selection, mastery transitions with recency decay over an append-only event log) behind a Tauri 2 + SvelteKit shell, with Anthropic-API generation and an offline mock so the full loop runs with zero config. Split into transport-agnostic crates (core / graph / content / storage / service) so a future web version is a thin Axum layer over the same functions, not a rewrite.

/rust/llm/knowledge graph/spaced repetition/tauri/anthropic api
lattice
./lattice
2026 · solo · rust + tauri + sveltekit in progress

lattice

Concept-graph adaptive tutoring app scoped to the math under machine learning — linear algebra, calculus, probability. A deliberately AI-free deterministic engine traces a missed problem past its surface topic to the specific decayed prerequisite that's actually weak (e.g. a failed integral diagnosed down to a factoring skill). The learner model is pluggable behind a MasteryModel trait — default Bayesian Knowledge Tracing, with a roadmap to EM-fit its parameters and a Deep Knowledge Tracing LSTM (via candle). Rust workspace (core / graph / content / storage / service) behind a Tauri 2 + SvelteKit shell; subjects are authored as data, not code.

/rust/knowledge tracing/bayesian/adaptive learning/candle/tauri

Applied & Earlier Work

GainzTracker
./gainztracker
2023–2024 · solo · full-stack

GainzTracker

Nutrition and fitness platform with hybrid TF-IDF + Word2Vec recommender, custom Ternary Search Tree for sub-200ms autocomplete, and spaCy NLP for parsing raw ingredient strings. Polyglot microservices: Java Quarkus API gateway, Python Flask ML service, Svelte frontend, PostgreSQL, Redis, Kubernetes.

/svelte/java/quarkus/python/flask/nlp/recommender/kubernetes
Data Analysis Suite
./data-analysis-suite
2023 · solo · python in progress

Data Analysis Suite

Collection of exploratory data-science notebooks covering market analysis, predictive modeling, and dashboarding. Robust preprocessing pipelines in Pandas, cross-validated scikit-learn models, interactive Plotly / Dash visualization.

/python/pandas/scikit-learn/jupyter/plotly
Healthcare Consulting Platform
./healthcare-consulting-platform
2022 · client work · squarespace

Healthcare Consulting Platform

Professional website for a healthcare consulting firm with custom CSS / JS extensions on Squarespace, integrated third-party booking + CRM, and SEO optimization targeting niche healthcare keywords.

/squarespace/css/javascript/seo

Archive · 2 more in Applied & Earlier Work

End of Catalogue · Last entry indexed 2026.07

All Repos on GitHub

Get in Touch

Reach out about research collaborations, internship / new-grad opportunities, or anything ML / data-infrastructure adjacent. I read everything that lands in my inbox.

/ Compose

→ Outbound
/ ready to transmit