Skip to content
View RyanLisse's full-sized avatar

Block or report RyanLisse

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
RyanLisse/README.md

Ryan Lisse

AI Agentic Augmented Engineer · FDE @ Blinqx

Website LinkedIn X Hugging Face Email

Building the agentic backbone for professional services across Europe.

From PoC to production · Eval-first · Typed end to end · Shipped in vertical slices


🧭 What I do

I'm Ryan LisseAI 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

👋 The human behind the commits

👩🏾‍🦱 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.


🏗️ How I think about agentic systems

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

What one request actually does

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
Loading

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 --> [*]
Loading

Framing borrowed from Hidden Technical Debt in Agentic Systems — the clearest write-up of what AI Systems Engineering actually is.


🧰 Stack

Languages

TypeScript Python Swift Go Solidity SQL

Agentic & AI

Effect Vercel AI SDK MCP LangFuse LiteLLM Trigger.dev

Platform & data

Azure Next.js Vercel Postgres Supabase GraphQL TanStack Query Docker

web3 & creative

Ethereum Lens Livepeer Three.js GSAP Figma


🚀 Selected work

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.


🎓 Training, workshops & advisory

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.


🦞 Open source

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.

Followers OpenClaw PR


💬 Let's talk

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.

Popular repositories Loading

  1. Contactbook Contactbook Public

    macOS CLI and MCP server for Apple Contacts

    Swift 14 6

  2. lancedb_mcp lancedb_mcp Public

    Python 7 6

  3. mexc-mcp-server mexc-mcp-server Public

    TypeScript 5 1

  4. Vitalink Vitalink Public

    macOS CLI & MCP server for Apple HealthKit - your health data, your way

    Swift 5 3

  5. sleepcatch sleepcatch Public

    TypeScript 4 1

  6. engram engram Public

    Unified multi-agent memory for OpenClaw. Local-first, Convex-synced, agent-native.

    TypeScript 4