Building

What I’m working on right now.

A mix of public and private projects. Most of the source is private — descriptions live here so the work isn’t hidden behind a login wall.

MarketMind

Private · Python · Polymarket + Kalshi · ~20K LOC

An automated weather-prediction-market trading bot for Polymarket and Kalshi. The core is a multi-model NWP ensemble — nine deterministic models (GFS, ECMWF, ICON, JMA, GEM, Météo-France, UKMO, BOM, CMA) plus four ensemble systems with ~143 members, NOAA/MOS point forecasts, and METAR station observations — fed into a LightGBM post-processor with 5-fold temporal cross-validation. The bot trades when the model disagrees with the market and the edge is meaningful.

  • Multi-strategy execution: long YES on cheap most-likely buckets, contrarian NO when the model disagrees with the book, observation gating against live METAR readings.
  • Risk: adaptive Kelly sizing with calibration-tier confidence, daily loss limits, per-city position caps, leader election to prevent duplicate execution.
  • Worker on Railway, Postgres on Supabase, Discord alerts.

CapCheck

Private · TypeScript · Next.js 14 + Drizzle

“Prove it or it’s cap.” An API-first platform where users post predictions, lock them, and external data sources resolve them when the deadline hits. No betting and no payouts — just public receipts and a rep score. CoinGecko handles crypto resolution; the resolver layer is built to extend to other domains. Custom JWT-cookie auth, Drizzle ORM, Railway Postgres. Deploys on Railway.

CardHavok

Private · TypeScript · Next.js 14 + Stripe

A Pokémon TCG research tool. Free, Pro, and Premium tiers backed by Stripe Checkout, with scan limits and feature gates per tier. The interesting part is the insights pipeline — Twitter/X buzz, Reddit sentiment, eBay completed sales, and PSA population trends aggregated into a single “rising” list that surfaces undergraded cards before the market notices. Prisma + NextAuth on the back end.

AdJuice SDK

Private · TypeScript · Next.js + Stripe Connect

A creator-facing ad SDK: paste a snippet, earn money. One-line install for banner, interstitial, and rewarded placements with signed requests, multi-provider routing (smartlinks, house ads, optional AdSense), referrer blocklisting, and CSP-aware fraud controls. Payouts via Stripe Connect (USD) and USDC on Base. Two plans with platform-cut differentials.

Push the Button

Public · Python · Streamlit

A small reflex-timing game. Click the button at the perfect moment; unlock cosmetics and badges based on streaks. Streamlit on the front end. Built it as a Saturday project to play with animation and state in Streamlit. github.com/MikeyPetrillo/pushthebutton-site →

Explain Like I’m…

Public · Python · Streamlit

A small experiment in adjustable-depth explanations. Source is public. github.com/MikeyPetrillo/explain-like-im →

← Index