Building the agentic backbone for professional services across Europe.
From PoC to production · Eval-first · Typed end to end · Shipped in vertical slices
I'm Ryan Lisse — AI Agentic Augmented Engineer / Forward Deployed Engineer at Blinqx in Amsterdam, in the AI Expertise Hub. Living in Almere 🇳🇱.
I help build Qore, our agentic backbone powering Blinqx products across Insurance, Mortgage, Accountancy & Tax, Legal, and HR — the layer where model routing, tool access, evaluation and observability stop being demos and start being infrastructure that regulated European businesses run on every day.
From PoC to production is the whole job. Anyone can get a demo to work once. I care about agents that are boring in production — deterministic where it matters, evaluated before they're trusted, typed from the edge of the network to the edge of the model.
const ryan = {
role: "AI Agentic Augmented Engineer · FDE @ Blinqx",
buildingWith: "the AI Expertise Hub team — Qore, our agentic backbone for professional services",
principles: ["eval-first", "TDD", "vertical slice architecture"],
stack: ["TypeScript", "Effect-TS", "Vercel AI SDK", "MCP", "Azure"],
motto: "From PoC to production",
alsoKnownAs: "King Luffy · self-solver · professional googler",
} as const satisfies Engineer👩🏾🦱 My mom taught computer basics before the internet was a thing. That's the origin story. Everything since is just a longer changelog.
- 👨🏾🦱👩🏾🐶 Proud father of two kids and a dog
- 🇳🇱 Born in Amsterdam, roots from Suriname 🇸🇷
- 🎹 20+ years in the music and entertainment scene — taught me shipping, taste, and how to read a room
- 🖥️ Passionate about learning new tech; self-solver and unapologetic professional googler
- 👀 Interested in all things TECHNOLOGY — blockchain / web3 and AI above all
- 🎓 Ethereum development at Alchemy University; built on Lens, Livepeer, Audius and Biconomy
Music before code, and it shows — both are about timing, structure, and knowing which part to leave out. It's no accident the web3 protocols I gravitated to were the ones about sound and video.
The model is the small box. Everything else is where the work happens.
Sculley's 2015 paper showed that ML code is a tiny fraction of a real ML system — the rest is infrastructure. Agentic systems repeat the lesson exactly: the LLM call is the easy part. What I actually build is every layer wrapped around it.
flowchart TB
subgraph G["🛡️ Guardrails & safety · injection · PII · cost ceilings · off-policy"]
subgraph O["🔭 Observability, tracing & evaluation harness"]
subgraph H["🧠 Agent harness · loop, state machine, memory tiers, serving"]
subgraph T["🔌 Tool layer & markdown configs · MCP schemas, prompts, skills"]
M["🤖 Model layer<br/>routing · fallback · provider-agnostic"]
end
end
end
end
style M fill:#06B6D4,stroke:#06B6D4,color:#04121f
style T fill:#0B1120,stroke:#06B6D4,color:#fff
style H fill:#111c33,stroke:#06B6D4,color:#fff
style O fill:#0B1120,stroke:#06B6D4,color:#fff
style G fill:#111c33,stroke:#06B6D4,color:#fff
| Layer | What it means in my day job |
|---|---|
| Markdown configs | Prompts and skill files are source code — versioned, reviewed, evaluated |
| Model layer | LiteLLM + Azure OpenAI: routing, fallback chains, no single-vendor lock-in |
| Agent harness | Effect-TS + Vercel AI SDK: typed state machines, not prompt spaghetti |
| Tool layer | MCP servers — the agent never sees your tools, only their descriptions |
| Memory | Scratchpad → session summary → long-term semantic/episodic |
| Serving | Trigger.dev v4: long-lived, stateful, asynchronous runs — not request/response |
| Observability | Langfuse (self-hosted): trace trees for debugging, aggregates for monitoring |
| Evaluation | Reference-free, trajectory and end-to-end — regressions gate the release |
| Guardrails | Defence in depth: injection, PII, cost runaway, off-policy behaviour |
sequenceDiagram
autonumber
participant U as 🧑 User
participant G as 🛡️ Guardrails
participant H as 🧠 Harness
participant M as 🔀 Model gateway
participant T as 🔌 MCP tools
participant O as 🔭 Langfuse
U->>G: request
G->>G: injection · PII · cost ceiling
G->>H: sanitised input
loop until done, or budget spent
H->>M: messages + tool schemas
M-->>H: tool call
H->>T: execute — typed, permissioned
T-->>H: result
H->>O: span
end
H->>G: draft answer
G-->>U: answer + trace id
Note over O,H: every step is replayable —<br/>a bug report is a trace, not a screenshot
The loop is the whole game. Everything hard — retries, budget ceilings, partial failure, "the tool returned nonsense" — lives inside those five lines.
Evals are the CI. If a change can't beat the current suite, it doesn't ship.
stateDiagram-v2
direction LR
[*] --> Change
Change --> Evals: PR opened
Evals --> Ship: beats the current suite
Evals --> Change: regression — back it out
Ship --> [*]
Framing borrowed from Hidden Technical Debt in Agentic Systems — the clearest write-up of what AI Systems Engineering actually is.
Languages
Agentic & AI
Platform & data
web3 & creative
| Project | What it is | Stack | ⭐ |
|---|---|---|---|
| Contactbook | macOS CLI and MCP server for Apple Contacts — your address book, agent-addressable | Swift MCP |
|
| Vitalink | macOS CLI & MCP server for Apple HealthKit — your health data, your way | Swift MCP |
|
| lancedb_mcp | MCP server over LanceDB — vector search as a first-class agent tool | Python LanceDB |
|
| mexc-mcp-server | Exchange data exposed to agents through a typed MCP surface | TypeScript MCP |
|
| mexc-sniper-bot | Pattern-discovery trading agent with automated execution | TypeScript |
|
| sleepcatch | Sleep tracking, built for the data you actually own | TypeScript |
🔭 A recurring theme: local-first data, made addressable to agents over MCP. Your contacts, your health, your vectors — no lock-in.
I don't just build agentic systems — I teach teams to build them. I've run workshops and training sessions for engineering teams, and I'm opening freelance capacity for AI upskilling programmes for developers.
| I help teams with | What that looks like |
|---|---|
| 🧑🏫 Developer upskilling | Hands-on programmes that take engineers from "I've used an LLM API" to shipping evaluated agents |
| 🏛️ Agent architecture reviews | An honest read on your harness, tool layer, memory and failure modes — before it hits production |
| 🔌 MCP & tooling | Designing tool surfaces agents can actually use, because descriptions are the interface |
| 📏 Eval discipline | Standing up the harness that turns "it seemed better" into a number you can gate releases on |
| 🇪🇺 EU-sovereign AI | Deployment, data residency and AI Act realities for regulated European businesses |
Available for freelance work soon. Workshops, training, architecture consulting — ryan@ryanlisse.com.
Early contributor to OpenClaw — the open-source personal AI assistant. I landed the OpenResponses /v1/responses endpoint in the gateway (#1229), following earlier work on an OpenAI-compatible HTTP API with auth and SSE streaming (#675).
Building an OpenAI-compatible surface for someone else's agent runtime is the same problem as Qore, one layer down: the API contract is the product, and everything interesting lives in the streaming, the auth and the error semantics.
Always up for a conversation about agent evaluation, MCP tooling, EU-sovereign AI deployment, or how to make LLM systems survive an audit. Music and web3 tangents equally welcome.




