Robin Miklinski · software systems and applied AI · London

I build AI systems with clear limits on what they can do without asking.

Fifteen years across defence, retail, collaboration software and global SaaS, spanning hands-on engineering, quality leadership and applied AI.

  1. Understand how the work gets done today
  2. Find the parts that could be simpler
  3. Remove what isn’t earning its place
  4. Build the smallest complete system
01 / Ledger

The work, the decisions behind it, and where to check them.

None of it began as portfolio work. Each item solved a problem or recorded a decision that mattered at the time.

Public work links to source. Private work is marked clearly.

Year Context / System The decision or constraint Where to check it
2026 eidetic-studio Anything I haven’t checked against the manual is marked as unchecked, so I don’t lose an evening to a menu path that doesn’t exist. Public repo →
2026 yr2l-emails It writes the reply and leaves it in drafts. Someone reads it before it goes. Public repo →
2026 ai-complaint-resolution Drafts FCA complaint responses. The QA report is published with the code: 180 test cases, plus cost guards in CI. Public repo →
2026 AI go/no-go (Reward Gateway) Asked for a yes or no on an AI assistant before launch. I gave the panel what I could prove and what I couldn’t, and they made the call. Not public
2025 eidetic-sample-tools It never writes over a source file. The library took years to put together and the tool took a weekend. Public repo →
2025 Agent infrastructure (Mac mini) A linter that enforces my writing rules, records why each one exists and denies risky operations by default. Not public
2024 BrowserStack, London Spoke on AI in test automation. London, November 2024. Talk
2023 Reward Gateway acquired by Edenred Head of Quality Engineering. I led quality engineering there and developed the evaluation approach used for AI products. The business was acquired for £1.15bn. Public record
2021 cypress-slack-reporter Cypress results straight into Slack and CircleCI. I extended and maintained it for Reward Gateway’s CI workflow. Public repo →
2019 ZAPClient OWASP ZAP security client in the CI pipeline. Automated vulnerability scanning. Public repo →
2018 Tooling budget Restructured a six-figure annual tooling spend. Left a vendor, brought the work in house, and came out with more capability at roughly the same cost. Not public
2016 Black Friday peak trading Load testing at five-figure concurrency ahead of peak. I set it up and built the team that ran it, and we got through peak trading without a performance incident. Not public
2015 OWASP ZAP in CI (Huddle) Moved security scanning into the TeamCity pipeline, so a scan ran on every build instead of once before a release. Not public
2010–14 Defence data systems Threat modelling for defence data systems. If an action couldn’t be undone, it had to pass a check before it ran. Not public
02 / The Story

I was asked to sign off an AI assistant.

I joined the project after the assistant had already been built. There were no tests or test infrastructure, and the only representative environment was the cloud stack it ran on.

It was a multi-tenant retrieval assistant, with each customer’s data separated behind a shared retrieval layer. My first question was what it would return when a user asked for data they were not authorised to see. I wrote around 180 tests covering direct and indirect prompt injection, jailbreaks, tenant isolation, PII, the authentication flow and the reach of retrieval.

Designing the attacks was not the hardest part. The harder problem was evaluation: a system that answers differently each time cannot be tested by asserting exact output, and conventional automation is a poor fit. The useful checks were bounded properties rather than exact strings, semantic and classifier-based assertions, and repeated runs to understand the distribution rather than trusting a single pass.

The suite exposed gaps serious enough to challenge the release decision. Programme management needed a final report for the launch panel, which in practice meant a recommendation: yes or no.

I did not give a binary verdict. I separated what I could attest to from what remained unknown, and put each unknown in front of the panel so that accepting it was explicit. They approved the launch with the failure modes in front of them.

I also used follow-up question rate as a product metric: if someone has to ask again, the first answer did not do its job. The suite remained the gate for every AI feature when I left.

The instinct came from defence: define the boundary before asking a system to operate inside it.

The point was not certainty. It was being informed rather than surprised.

03 / Workbench

Public repositories, and the decisions that shaped each one.

ai-complaint-resolution Python

Complete AI product with published QA report

Multilingual response drafting for FCA-regulated complaints. The system drafts a response; a person approves it before anything is sent. The 180-case QA report is published with the code.

producer-release-os TypeScript

Local-first planning tool for music producers

A local-first planning tool for music releases. React 18, entirely in the browser, with no backend. Built around a small component library, with the scope kept deliberately narrow: no accounts, no payments.

eidetic-sample-tools Python

Sample library curation for hardware samplers

Exporter for Octatrack MKII, Digitakt and TR-8S. It never writes over a source file, because the library took years to put together and the tool took a weekend.

eidetic-studio Markdown

My studio, in git

Wiring, the MIDI clock chain, a log of what broke and what fixed it, and why the setup is the way it is. Anything I haven’t checked against the manual is marked as unchecked, so I don’t lose an evening to a menu path that doesn’t exist.

cypress-slack-reporter TypeScript

CI reporter for Cypress test results

Puts Cypress run results straight into Slack and CircleCI, so a red build shows up where the team already is. I extended and maintained it for Reward Gateway’s CI workflow.

ZAPClient Python

OWASP ZAP security scanning in CI

Automated security scanning wrapped for continuous integration. Committed in 2019.

04 / Measurement

I publish the counting rules.

Halfway through the year, I changed the definition of one of my own headline metrics because the old baseline wasn’t defensible, and wrote down why. The reported number got worse, but the metric became defensible.

Every metric I publish includes the rules that produced it, so the arithmetic can be checked without relying on the dashboard.

05 / Capability Index

  1. 01 Interfaces

    • workflows
    • integrations
    • design systems
    • React 18
    • design tokens
  2. 02 Services

    • audio processing
    • APIs
    • metadata cleaning
    • background tasks
  3. 03 Applied AI

    • retrieval
    • classification
    • agents
    • evals
    • guardrails
    • red-teaming
    • prompt injection
  4. 04 Platform

    • architecture
    • reliability
    • performance
    • CI/CD
    • security scanning
  5. 05 Direction

    • technical strategy
    • feasibility
    • decision records
    • risk governance
    Evidence: eidetic-studio
06 / About

Robin Miklinski

Background

For fifteen years I’ve built systems across defence, retail, collaboration software and global SaaS. I read Internet Engineering at Exeter and began in defence data systems, where defining what a system was allowed to do came before asking it to do anything.

I still write code in Python, JavaScript, TypeScript and C#. The work also spans the architecture around it, the evidence used to judge it, and the guardrails that determine when a system must stop and ask.

Outside Work

I produce electronic music and DJ as Eidetic. The studio is documented in much the same way as the software: notes made as I go, decisions kept in git, and nothing recorded as fact until I’ve checked it against the manual.

07 / Contact

Two ways to start.

Consulting / Review

Work with me

Two weeks on one AI feature or workflow. You get a written findings document, a threat model and an evaluation test plan your team can continue to run.

  • Evaluation and guardrail audit of an AI feature
  • A testing strategy for output that’s never identical twice
  • Cost and rate guards in CI
Book a two-week review →
Leadership / Engineering

Hire me

Founding engineer or early technical lead, still hands-on with the code. For teams shipping AI products where reliability matters as much as speed.

  • Python, TypeScript, React 18, C#, SQL
  • LLM evaluation, RAG security, PyTest, Docker
  • Technical strategy for senior product and engineering decisions