* Projects
Solution for the 2026 IEEE Big Data Cup TrafficFlowBench on ten synthetic freeway corridors: reconstruct blanked traffic states, forecast queues 30 minutes ahead, respect traffic physics and recover origin-destination demand.
- Strictly causal queue forecasting: every input is stamped at or before the forecast origin T. A deletion test blanks every cell after T, rebuilds inputs and predictions, and they come out bit-identical; a negative control shows the test catches leaks.
- State reconstruction with an XGBoost residual model plus a 14-network 2-D convolutional imputer ensemble and a shock post-correction.
- Queue forecasting with a space-time CNN for ongoing queues and a LightGBM + CatBoost onset blend with a "month-pure" memory of earlier days.
- Origin-destination demand recovered with non-negative ridge regression; physics treated as an identity of the state answer, not a separate target.
- Spotted a regime shift between evaluation windows that the public leaderboard could not show, and documented it in a technical report.
Stack: Python · PyTorch · XGBoost · LightGBM · CatBoost · scikit-learn · pandas · NumPy
Repository
The Refactoring Swarm
Team project
A relay of three LLM agents that turns buggy Python into clean, tested code. An Auditor finds issues with Pylint and an LLM, a Fixer rewrites the code with Gemini, and a Judge generates and runs tests. Failing tests send the error back to the Fixer in a self-healing loop.
- Orchestrated as a LangGraph state graph with conditional edges (plus a legacy relay orchestrator).
- Listener (Auditor): Pylint static analysis plus LLM issue detection. Corrector (Fixer): Gemini-generated fixes. Validator (Judge): LLM-generated pytest suites.
- Sandboxed file tools with path validation, and JSON telemetry of every prompt and response with an HTML dashboard.
Stack: Python · LangGraph · LangChain · Gemini · Pylint · Pytest
Repository
The challenge's scored road layer drops service and pedestrian roads ("escape-route framing"). In the network it defines, 2.88 million residents (7.1%) live in 13,775 pockets whose only connection is a single road link, and the coverage score never counts ways out.
- For 17.5% of pocket residents in the highest wildfire-hazard quartile, a second way out exists in Overture Maps, but only in the road classes the filter drops.
- Concentrated where the hazard is highest, and checked against OpenStreetMap and the FHWA public-road inventory.
- Shows who carries it (care homes, residents 65+, mobile-home parks) and what an egress component would change in the scorecard.
- Delivered an action list of 5,095 high-hazard single-exit pockets; a verification script recomputes all 107 reported numbers.
Stack: Python · pandas · DuckDB · Shapely · pyproj · Overture Maps · OpenStreetMap
Repository
ML Algorithms From Scratch
Foundational algorithms implemented from the ground up in Python notebooks, to understand the mechanics behind the libraries: linear and logistic regression, decision trees and random forests.
- Linear regression trained with gradient descent on the cost function.
- Logistic regression with a sigmoid and cross-entropy loss.
- Decision trees with feature-based splits, and random forests over random data subsets.
Stack: Python · NumPy · Jupyter
Repository
A small, dependency-free tool and live dashboard for participants. It reads the public leaderboard and shows where headline points are still unclaimed per metric, estimates where a submission stands, and tracks how the field moves.
- Reproduces the published headline formula from the task weights and prints the check on every report.
- A "where do I stand" calculator runs fully in the browser and sends nothing anywhere.
- A daily GitHub Action stores an anonymised snapshot (team names and affiliations are dropped, enforced by a test).
Stack: Python (stdlib) · GitHub Actions · GitHub Pages · HTML
Repository · Live dashboard
LLM-FineTune (Qwen 2.5 3B QLoRA)
Co-built at llm-lab-dz
A lightweight fine-tuning workflow for Qwen2.5-3B-Instruct: clean the UltraChat conversations, train a 4-bit QLoRA adapter on a single GPU, publish checkpoints to the Hugging Face Hub and compare base vs fine-tuned generations.
- Data cleaning: turn and length filters, strict user/assistant alternation, de-duplication and normalisation.
- 4-bit NF4 quantisation (BitsAndBytes), LoRA rank 16 / alpha 32, paged 8-bit AdamW.
- Checkpoints pushed to the Hugging Face Hub; inference script compares the base model and the adapter.
Stack: PyTorch · Transformers · PEFT · BitsAndBytes · Hugging Face Hub
Repository
APCS Frontend (MicroHack)
MicroHack, team project
A Next.js + TypeScript web app where carriers book terminal appointments for their containers, and operators and admins manage bookings, terminals, carriers, notifications, reports and an audit log.
- Role-based portals (admin, operator, carrier) plus chat and notifications.
- A centralised API layer with CSRF-token handling and HTTP-only cookie sessions.
Stack: TypeScript · Next.js · React · Tailwind CSS · Radix UI · socket.io
Repository
* Skills
- Data
- Python, pandas, NumPy
- Deep learning & LLMs
- PyTorch, QLoRA fine-tuning (Transformers, PEFT)
- ML
- XGBoost, LightGBM, CatBoost, scikit-learn
- Agents
- LangGraph, Multi-agent LLM systems
- Web & tooling
- TypeScript, Git & GitHub Actions