🔭 Machine Learning Engineer based in London — currently building Industrial-scale multi-agent systems @ London Export Corporation.
🧪 Often the founding ML engineer at growing teams, owning the full path from research to deployed, monitored infrastructure.
🎓 Masters in Applied Data Science @ University of London (Distinction)
⚡ Deep interest in LLM Reasoning, Multi-Agent Systems, Low-Latency Inference, and Reinforcement Learning.
🤝 Passionate about open source and writing about ML on Medium.
💬 Ask me about PyTorch, LangChain, vector retrieval, or anything LLM-flavoured.
Fixes I've authored and merged into widely-used AI / ML libraries — every link goes straight to the PR.
| Project | Contribution | |
|---|---|---|
🧠 OpenAI · openai-agents-python (28k★) — 3 fixes |
Tool parameters named like JSON Schema keywords were silently dropped (#4036) — the schema trimmer recursed into properties treating parameter names as keywords, deleting them while leaving them in required, so the model received an invalid schema with hidden parametersSigned reasoning blocks leaked across conversation turns (#4089) — a reasoning item not followed by its own assistant message kept its thinking blocks pending, replaying a previous turn's private reasoning Output guardrail results were dropped when a tripwire aborted the run (#4090) |
✅ Merged |
🤗 Hugging Face · datasets |
Path-traversal fix in folder-based dataset builders (#8325) — closed an arbitrary-file-read vector (CWE-22) from an unsanitized metadata file_name, covering fsspec chained-URL and symlink-escape cases |
✅ Merged |
🎯 outlines (15k★) |
Gemini adapter sent the system message as a chat role instead of a system instruction (#1967) — Content.role only accepts user/model, so any chat with a system message was malformed; system messages are now collected and passed as system_instruction |
✅ Merged |
⚙️ statsmodels |
Correct Hessian handling for L-BFGS-B / TNC optimizers (#9908) · Sison–Glaz multinomial CI failure on sparse counts (#9909) | ✅ Merged |
📈 yfinance |
Fix read-only-array crash in dividend-adjust repair (#2897) | ✅ Merged |
🧮 TheAlgorithms/Python (223k★) |
Job-scraping module (#2219) — web_programming/fetch_jobs.py, still shipping and maintained five years on |
✅ Merged |
📝 Check out my Medium for deep-dives on ML, LLMs, and production AI.



