← Back to home
Building under pressure · 2021 — 2026

AntidoteML, and the ideas that won.

Hackathons taught me what a classroom can't: spotting a real problem, scoping it to a weekend, and shipping something that works in front of judges before the clock hits zero. The most recent one, AntidoteML, is the most serious: a 4-person team, a real adversarial-ML problem, and a working defense by the deadline. Below it are the earlier weekend builds where the pattern was the same — a genuine problem, a simple ML or automation core, and a demo that just works. Click any card to flip it.

99.6→1.2% AntidoteML · backdoor success 1st UN Hackathon 2022 · 40+ teams 2nd WilHacks 2.0 Winner FillerBuster · Devpost
TLN Cybersecurity Challenge 2026 · Sept 2026 · team lead

AntidoteML — a poisoning defense for distributed ML

In federated learning, many clients train one shared model and send back weight updates. A single malicious client can plant a backdoor — a trigger pattern that makes the model misclassify on command while clean accuracy looks perfectly normal. AntidoteML catches the attacker from the updates alone.

99.6% → 1.2%
BACKDOOR ATTACK SUCCESS
94.7%
CLEAN ACCURACY ON GTSRB · 118 TESTS
629K
PARAMETER CNN, SEEDED TRAINING
2
ROUNDS TO EJECT THE ATTACKER

What I built

The ML core. A 629K-parameter CNN on GTSRB (German traffic signs) in PyTorch with fully seeded training, so every run is reproducible, and paired metrics — clean accuracy and attack success rate — reported together so a "defense" can't hide a drop in one behind the other. 94.7% clean accuracy across 118 tests.

The detector. Scores every client's weight update against the round's median using median/MAD z-scores, a robust statistic that a single outlier can't drag. Poisoned updates stand out; the server drops them and ejects the client. Backdoor success fell from 99.6% to 1.2% with no drop in clean accuracy, and the attacker was ejected two rounds after its first poison.

The team. I led the 4-person team: split the system into four owned modules behind a fixed interface contract on day one, and owned every merge to main so the demo never broke.

PyTorchFederated LearningAdversarial MLRobust StatisticsGTSRB
Why it matters

Backdoor attacks are the realistic threat to any model trained on data you don't fully control — federated phones, crowdsourced labels, open fine-tuning. The hard part isn't detecting a loud attacker; it's detecting one whose updates look almost normal without throwing away honest clients whose data just happens to be unusual. Robust statistics are the right tool for exactly that line, and the paired-metric reporting is what makes the claim checkable.

Earlier builds · 2021 — 2024
1st

RealMeals

UN Hackathon 2022 · won among 40+ teams

Point your camera at a meal; a machine-learning model tells you which food groups it's missing.

CLICK TO FLIP →

Built a Python/TensorFlow image-classification model that analyzes photos of meals and flags missing nutrients across the five food groups — a practical tool aimed at fighting diet-driven obesity. As a 4-person team, we trained the model, wrapped it in a usable app, and pitched it live to United Nations judges, taking 1st place out of more than 40 teams. My first proof that an ML model and a clear story beat a complicated demo.

PythonTensorFlowComputer Vision
View on Devpost ↗
2nd

BoostMe — COVID Vaccine Notifier

WilHacks 2.0 · winner badge

Texts you the moment a vaccine appointment opens in your zip code — built when appointments were nearly impossible to find.

CLICK TO FLIP →

During the height of the vaccine shortage, appointments vanished within minutes of appearing. BoostMe is a Python/Twilio service that continuously monitored appointment availability by zip code and sent instant SMS alerts when a slot opened. Simple architecture, real stakes: automation applied to a problem people were refreshing browser tabs over. Took 2nd place at WilHacks 2.0.

PythonTwilio APIAutomation
View on Devpost ↗
★

FillerBuster

Winner badge · Devpost

A public-speaking coach that catches your "um"s and "like"s — built to make high schoolers more confident presenters.

CLICK TO FLIP →

A speech-analysis tool that listens to you practice and flags filler words — the "um"s, "uh"s, and "like"s that undermine a presentation — so speakers can see their habits and train them away. Aimed at students who dread presenting. It earned a winner badge, and it's the project that taught me a tool people actually want to use starts from a problem you've personally felt.

PythonSpeech AnalysisEdTech
View on Devpost ↗
◐

Envision

Code for Good · "See beyond limitations"

An assistive-vision app that describes the world out loud for visually impaired users, in real time.

CLICK TO FLIP →

An accessibility app that pairs OpenCV with TensorFlow to caption a live camera feed — describing surroundings aloud so visually impaired users can navigate more independently. Real-time image captioning on a hackathon deadline forced hard trade-offs between model size, latency, and accuracy: my first genuine lesson in deploying ML under constraints, not just training it.

OpenCVTensorFlowReal-time CVAccessibility
View on Devpost ↗

Running a hackathon, or hiring people who ship fast?

Weekend builds are where I learned to move quickly without cutting the corners that matter. If that's the kind of energy your team runs on, let's talk.