Skip to content

Projects

Everything I've built, in one place.

Featured case studies first, then smaller projects and work in progress. Filter by the kind of system you care about.

10 projects

  • 01Live · Early access

    Agentic AI · LLM Applications · Full-Stack AI

    IntelliCast AI — Personal news agent

    A personal news agent that follows the world for you, checks claims across sources, and briefs you by voice.

    Problem
    News products hand people more to read. Following the few stories that matter — and knowing which claims are actually confirmed — still takes time and judgment.
    Approach
    An agent cycle clusters articles into evolving stories, verifies claims across outlets, ranks stories against each listener's goals, and turns the result into a fact-checked, two-host audio briefing you can question.
    outlets on a 30-minute agent cycle
    14
    tap to first audio · internal testing
    ~15 s
    offline backend tests in CI
    180
    • Python
    • FastAPI
    • React
    • TypeScript
    • PostgreSQL
    • pgvector
    • Llama 3.3 70B
    • +5 more
    View case study

    Source is private — happy to walk through the architecture.

    SOURCESSTORIESCLAIMSBRIEFING1HOST AHOST BEN · FRSchematic
  • 02Core complete · Evals in progress

    Agentic AI · LangGraph · Grounded critique

    Atlas — Autonomous multi-agent research platform

    A multi-agent research platform: parallel researchers, a critic grounded in the sources it retrieved, and a live view of the agent graph as it runs.

    Problem
    Single-pass LLM research is slow when sequential and unreliable when unchecked — and a minute-long agent run shouldn't die with the browser connection.
    Approach
    A LangGraph planner fans out parallel researchers; a critic checks the answer against retrieved sources and sends back only the faulty branches; runs execute on a worker and stream to the UI over resumable SSE.
    5 parallel branches · 93.4 s if run back to back
    23.3 s
    submit to first visual feedback
    1.14 s
    backend · frontend tests, no network
    168 · 34
    • LangGraph
    • Claude Sonnet 5
    • GPT-4o (failover)
    • FastAPI
    • arq
    • Redis
    • PostgreSQL
    • +4 more
    PLANRESEARCH × NSYNTHESIZECRITICplannerr1r2r3r4synthesizercriticTARGETED RETRYCITED≤ 2 ROUNDS · TOKEN BUDGET ENFORCEDSchematic
  • 03Complete

    Machine Learning · Deep Learning · Anomaly Detection

    Real-Time Fraud Detection Ensemble

    A stacked ensemble where autoencoder and Isolation Forest anomaly scores feed an XGBoost decision — tuned to catch fraud at a very low false-alarm rate.

    Problem
    Card fraud is rare — under 0.2% of transactions in the benchmark data — so accuracy is meaningless, and every false alarm is friction for a real customer.
    Approach
    An autoencoder trained only on legitimate transactions and an Isolation Forest each produce an anomaly score; XGBoost makes the final call over 44 engineered features plus both scores.
    ROC-AUC
    0.9834
    recall
    85.71%
    false-positive rate
    0.16%
    • Python
    • PyTorch
    • scikit-learn
    • XGBoost
    • pandas
    • NumPy
    TXNS44 FEATURESDETECTORSXGBOOSTP(FRAUD)AUTOENCODERISOLATION FORESTSCALED FEATURESTHRESHOLDSchematic
  • 04Complete

    Recommender Systems · Machine Learning · Evaluation

    Recommendation Engine from Scratch

    Five recommenders built from first principles on 568,454 Amazon reviews, compared with ranking metrics, significance tests and a popularity-bias audit.

    Problem
    Recommender comparisons often stop at a single accuracy number. On extremely sparse data, which method actually ranks best — and at what cost to fairness?
    Approach
    Implemented popularity, user-based CF, SVD, TF-IDF content-based and a hybrid ensemble with NumPy and SciPy, then evaluated with leave-one-out HR@10, NDCG@10 and MRR, statistical tests and a bias audit.
    HR@10 — user-based CF, best of five
    0.026
    better than random selection
    12.8×
    effect size behind p = 0.022
    d = 0.18
    • Python
    • NumPy
    • SciPy
    • scikit-learn
    • pandas
    • Matplotlib
    USER × ITEMRANKED TOP-100.195% DENSE · K-CORE FILTERED123456HR@10 · NDCG · MRRSchematic
  • 05Complete

    Data Science · Predictive Analytics · Business Intelligence

    Full-Cycle E-Commerce Churn & CLV

    An end-to-end churn and customer-value analysis of a Brazilian marketplace, from SQL engineering to an executive-ready retention plan.

    Problem
    Which customers are about to leave, how much revenue is at risk, and what should the marketing team do about it?
    Approach
    Built an analytical base table in SQL across nine relational tables, modeled churn with a temporal split, segmented customers with RFM, estimated CLV with BG/NBD and Gamma-Gamma, and turned the findings into five prioritized recommendations.
    customers
    96,096
    records across 9 tables
    1.55M
    actionable RFM segments
    8
    • Python
    • SQL
    • pandas
    • scikit-learn
    • XGBoost
    • LightGBM
    • Lifetimes
    • +1 more
    RFM SEGMENTSTEMPORAL SPLIT555155343211151432111R · F · M SCORESTRAINTESTSchematic

More engineering & data science work