Work
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.

- 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.

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.
Writing on dev.to
Technical posts are published on dev.to/syamaner and remain canonical there. The most recent:
- Building a Coffee Roaster with a Team of Agents (Jun 21)
- One More Cup, Four Agents: Getting Warp to Roast My Coffee (Jun 7)
- Part 5: From Local Model to Live Demo - Publishing to Hugging Face with Warp (May 5)
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.
- The architecture and the agent
- Building the audio dataset
- The science: tuning to high precision
- Optimising an 86M-parameter audio transformer for Raspberry Pi
- From local model to live demo on Hugging Face
- 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.
- Training a neural network to detect first crack from audio
- Building MCP servers to control a home roaster
- Orchestrating MCP servers with .NET Aspire and n8n
Applied AI and RAG with .NET Aspire (2024–2025)
- Beyond basic RAG: measuring with RAGAS
- An LLM-enabled Jupyter environment with .NET Aspire
- Ingesting documents for a simple RAG system
- Building a simple RAG system with .NET Aspire
- Comparing open-source vision models for photo description
- .NET Aspire 9.0: the Photo Summary project
Earlier engineering writing (2022–2024)
- Map-based photo viewer with Stencil and OpenStreetMap
- Remote Docker container connections in .NET Aspire with SSH.Net
- A custom reverse-geocoding resource for .NET Aspire
- .NET Aspire, Python, Docker and ML for summarising photos
- A command-line photo GPS tagger with Docker, .NET and ExifTool
- Accelerating ML local development with Nvidia Docker
- Image feature detection and matching with OpenCvSharp
- Docker multi-architecture, .NET 6.0 and OpenCVSharp
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
- GitHub: github.com/syamaner
- Hugging Face: huggingface.co/syamaner
- dev.to: dev.to/syamaner
- LinkedIn: linkedin.com/in/s-yamaner