~/happy · software engineer · johannesburg
I build AI systems,
then take them apart.
By day I build MCP servers and agent workflows for an invoicing product at Looped. The rest of the time I rebuild the layer underneath: GPT-2 inference on hand-written Metal kernels, an MCP server without the SDK, a coding agent from scratch.
The terminal below is Claude with tools that read this site. Ask it anything, or type /wire to watch what it sends.
Welcome to Happy's terminal

Haiku 4.5 · 6 tools over this site
/help for commands · /wire to see the payloads
~/happymahlangu.com
↵ ask anything · answers come from tools reading this site
# Now
more →- Work
- Building MCP servers and multi-step agent workflows for an invoicing SaaS at Looped Automation.
- Building
- A terminal coding agent from scratch with sandboxed tools, cost limits, and evals. No agent framework.
- Researching
- Distilling a frontier LLM into a small quantized model that classifies bank transactions privately and cheaply.
# Selected work
all projects →bare-metal-llm
Systems · ML inferenceGPT-2 inference on hand-written Metal kernels
A from-scratch GPT-2 124M inference engine on an Apple M2. Tokenizer, safetensors loader, 14 compute kernels and a real KV cache, with no ML framework in the inference path. Matches an MLX reference token for token.
investec-ai
Developer tooling · FintechAn AI-native SDK for Investec banking
An npm SDK that adds conversational banking, spending analysis, fraud scoring, receipt scanning and voice to any app built on the Investec Open API. Published on npm, with headless React components and a demo app.
# Lab
all experiments →Interactive pieces that show how things work on the wire.