Building
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.
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.
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.
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.
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.
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 →
Public · Python · Streamlit
A small experiment in adjustable-depth explanations. Source is public. github.com/MikeyPetrillo/explain-like-im →