Cleveland, Ohio · open to relocation · --:--:--
Senior Data Analyst at Visa, working in fraud risk with Python, PySpark, Databricks, Hadoop, Tableau and Kibana to turn raw transaction data into reports people actually use. Outside work I ship my own software in TypeScript and Python: Discord bots in production, marketplace arbitrage tooling, a Plaid-linked finance dashboard and a paper-trading terminal built end to end.
Repositories appear here automatically as they are published on GitHub. Plus 15 projects that live only on this machine.
Subscription SaaS that watches eBay for alerts users define and notifies them by email and browser push, with AI price analysis on premium tiers. Identical alerts across users share one eBay API call; a background worker polls on a schedule, Stripe sets the tier and Supabase stores everything behind row-level security.
Paper-trading terminal with a live quote pipeline, an append-only SQLite ledger, DPAPI-protected credentials and an isolated Playwright browser suite. Local-first by design.
Decoupled eBay-to-Amazon arbitrage miner: a background miner fills an indexed store while the search layer only reads it, so queries across a six-figure catalogue return in milliseconds.
Local, offline transcription of video and audio files with faster-whisper on the GPU. One-command setup on Windows; text, SRT and word-level JSON per file.
The arbitrage research that came first: eBay Finding API crawls by category, Keepa price pulls, a lighting-retailer product scraper and MongoDB storage, with AWS Lambda trials. The notebooks that led to funko-sniper, arbmine and The Arbity.
Built for a reseller: HobbyDB listings turned into clean Excel catalogues through a Databricks pipeline, with Grok vision identifying items from photos and a Keepa finder for pricing.
Crypto headlines from the CryptoPanic API turned into finished videos: scripted story, generated images, voiceover, captions and render. Includes a clipper that transcribes long finance videos and cuts the question-led moments into 10 to 30 second clips.
Streamlit tool that assembles compliant peer groups for benchmarking from a mock issuer database, explains each selection and charts the result with Plotly.
On-chain Solana analysis against the public RPC, a Selenium scraper that follows token pages through to their project accounts, and GPT-assisted screening of what it finds.
Pulls articles from newsdata.io on a schedule into MongoDB and drafts a daily newsletter from them.
Spotify API plus web lookups to tag an entire playlist with tempo, then build sets by BPM range.
Extracts and cleans textbook PDFs with PyPDF2 and produces chaptered GPT-4o summaries as a Word report.
Google Trends pulls through pytrends compiled into a PDF launch report with ReportLab.
Searches ScholarAI for recent papers and turns each into a short and a long narrated script.
First Discord bot: an OpenAI chat companion that keeps per-user conversation history across messages.
Unfinished on purpose. Repositories pushed to in the last two months, and local work that is still moving.
TypeScript · local
buildingSubscription SaaS that watches eBay for alerts users define and notifies them by email and browser push, with AI price analysis on premium tiers. Identical alerts across users share one eBay API call; a background worker polls on a schedule, Stripe sets the tier and Supabase stores everything behind row-level security.
Now Launch runbook and capacity model: fitting a few hundred users inside the eBay API budget before opening sign-ups.
Python · local
buildingPaper-trading terminal with a live quote pipeline, an append-only SQLite ledger, DPAPI-protected credentials and an isolated Playwright browser suite. Local-first by design.
Now Numbered delivery and review cycles: verified quote policy, history pages, and an isolated browser test harness that fails closed.