Work

A cobbled Victorian warehouse street in London, with iron overhead walkways linking the brick buildings and a single figure walking between them.

The index of what I build, write, and publish. Long-form essays live here on the site; technical write-ups are on dev.to, where they're canonical, and are collected below.


Open-source build: RoastPilot, a coffee-roasting agent

An agentic control system that roasts coffee on a real Hottop roaster, built to explore how much autonomy an agent should have when the blast radius is physical. The design principle throughout: the deterministic controller owns the roast loop; the LLM only advises. A hard safety policy returns typed verdicts (allow, clamp, reject, emergency stop) before anything reaches a 200°C machine, and advisor prompts are pinned by replay bake-offs against logged real roasts, scoring drop-decision F1, heat / fan error, and latency. It has roasted every batch of my coffee since November 2025.

The RoastPilot device console: roast curve with event markers, heat and fan controls, and the LLM advisory panel with typed recommendations gated by allow verdicts
End of a roast on the device console: first crack detected over MCP, a drop recommendation at 0.95 confidence, and every advisory gated by an allow verdict.
  • roastpilot-agent: the deterministic agent harness and web console; a state-machine controller owns every hardware command, and the LLM advisor returns typed recommendations only.
  • coffee-roaster-mcp: spec-driven MCP server exposing fourteen tools for roast session lifecycle, telemetry, first-crack detection, and log export behind a single hardware boundary. On PyPI and the MCP Registry.
  • coffee-first-crack-detection: fine-tuned Audio Spectrogram Transformer detecting first crack from audio (98% accuracy, 0.93 macro F1), quantised to INT8 ONNX for torch-free inference on a Raspberry Pi 5. The model, dataset, and a live demo Space are on Hugging Face, with current metrics and benchmarks maintained on the cards.
  • roastpilot-plan: the cross-repository planning hub holding the agent orchestration architecture, decision records, and epic tracking.

The rebuild is spec-driven: repository rules, externalised plan state, and replay evals, with coding agents doing the implementation across more than 460 merged pull requests while I keep ownership of architecture, ML decisions, and quality gates.

The RoastPilot rig mid-roast: the Hottop roaster, the first-crack microphone, and a live agent session driving it over MCP
Roast day: an agent session drives the roaster over MCP while the first-crack rig listens.

Essays: AI and the Industrial Revolution

A series on the parallels between the Industrial Revolution and what agentic AI is doing to software engineering, argued from economic history and evidence, not prediction. New parts appear here automatically as they're published.

Cheap Tokens, Cheap Attempts · 7 Jun 2026
Cheap generation doesn't make engineering judgment obsolete. It makes it the scarce thing, and the first Industrial Revolution shows why.

Better Ground, Not a Better Model · 1 Jul 2026
You don't get a better agent by buying a better model alone. You get one by preparing the ground it runs on: the tests, the structure, the rules it runs inside.

The Factory Was the Real Invention · 19 Jul 2026
The factory, not the machine, was the real invention. The final post in the series: how the organisation decides what AI productivity is worth, and who it is for.

Read the series in order.


Writing on dev.to

Technical posts are published on dev.to/syamaner and remain canonical there. The most recent:

Spec-driven ML: rebuilding the coffee agent (2026)

A six-part series on rebuilding the prototype into a production system, directing coding agents through a multi-phase ML project while keeping ownership of architecture, ML decisions, and quality gates. It ends with a live roast: four agents, one MCP server, and a supervised run on real hardware.

  1. The architecture and the agent
  2. Building the audio dataset
  3. The science: tuning to high precision
  4. Optimising an 86M-parameter audio transformer for Raspberry Pi
  5. From local model to live demo on Hugging Face
  6. Roast day: four agents and a live roast over MCP

The original prototype (2025)

How the project started: training the first-crack detector, building MCP servers for roaster control, and closing the loop with an agent.

  1. Training a neural network to detect first crack from audio
  2. Building MCP servers to control a home roaster
  3. Orchestrating MCP servers with .NET Aspire and n8n

Applied AI and RAG with .NET Aspire (2024–2025)

Earlier engineering writing (2022–2024)


Research and teaching

MSc Artificial Intelligence, University of Bath (distinction). Before industry: doctoral research in augmented reality at the Pattern Recognition and Image Analysis group, University of Salford; the ideas were right, the timing was early, and I chose the engineering career.

Teaching is half the point of the building: I've been a Kubernetes trainer at ASOS, run TDD and machine-learning kata sessions at Flagstone that twice won a culture award, delivered technical-transformation talks across European markets representing Mercedes-Benz Cars UK, and run hands-on agentic development sessions for engineering teams.

  • Data Mining Approach to Implement a Recommendation System for Electronic Tour Guides. EEE 2005.
  • Mining GPS Logs to Augment Location Models. WIT Transactions on Information and Communication Technologies, 2005.
  • Determining the Locations Visited by GPS Users: A Clustering Approach. CISST '04.

Profile and outputs: Semantic Scholar · Salford repository


Elsewhere