Accepting new engagements · Q3 2026

Engineering leadership, on call.

MCP consulting, AI architecture, and fractional CTO advisory for B2B SaaS. Fifteen years architecting, shipping, and leading engineering. If your team is wiring LLMs into internal systems and improvising the protocol layer, that is the conversation.

Based
Malta · EU
Certified
ISO 9001 · 14001 · 27001
Accessibility
WCAG 2.2 AA by default
Response
One business day
5M+
monthly visitors held at sub-second response
150M+
requests per month, zero to exit
99.999%
uptime on critical production systems
60%+
cloud spend reduced without losing performance
15+
years shipping software in production
still shipping · six months to Apr 2026
scan of ~/Projects/ · 2026-04-24
30+
repositories actively touched, Nov 2025 – Apr 2026
9
Next.js builds shipped in Q2 2026
5
MCP servers built, from stdio tools to remote OAuth 2.1
5
Payload CMS sites in production
3
k3s · Helm · Terraform deploys, self-managed
2
MCP servers published open source, MIT
01what I do

Three engagement shapes. One operator.

For B2B SaaS founders and CTOs wiring LLMs into systems that matter. Most engagements combine two of these inside the same week; the boundary between architecture and leadership is a matter of invoicing, not substance.

01 · mcp.consulting
fixed scope or retainer

MCP consulting

Teams wiring LLMs into internal systems tend to improvise the protocol layer, and the improvisation fails at auth. I design and build MCP servers that hold up in production - and I will say so plainly when you do not need one.

  • Protocol strategy: what becomes a tool, what stays an API
  • Remote server builds in TypeScript · OAuth 2.1, PKCE, dynamic client registration
  • Deployment: tunnels vs open ports, token storage, what an attacker sees
  • Working references: Skapis, auseklis, aisthesis - real servers, two open source
the full brief →
02 · ai.architecture
fixed scope · 2–8 weeks

AI architecture

Retrieval that refuses to guess, models routed by cost, and evaluation that catches regressions before your customers do. Designed against your data and your budget, not a vendor deck.

  • RAG and retrieval design · pgvector, hybrid search, grounding guards
  • LLM routing and cost control: cheap models where they suffice, strong ones where it pays
  • Evaluation pipelines and hallucination control
  • Self-hosted vs managed: the tradeoff written down, with numbers
the full brief →
03 · cto.fractional
retainer · weekly cadence

Fractional CTO

A senior technology leader, embedded in your business, without the cost or commitment of a full-time hire. I sit alongside the CEO, own the technical narrative with the board, and build the team your in-house leaders will inherit.

  • Architecture reviews, roadmap, technical diligence for investors
  • Hiring plan, lead-engineer bar, build-vs-buy and vendor sanity checks
  • AI adoption where it pays, a straight no where it is theatre
  • Interim, fractional, or advisory - scoped to a clear exit
the full brief →
02selected work

Shipped, not slide-decked.

Products I design, build, and run myself. No client names appear here: client work stays confidential. The proof is the work that carries my own name.

work.01
TypeScript · OAuth 2.1 · Hetzner · Cloudflare Tunnel

Skapis

Personal knowledge vault: a remote TypeScript MCP server with a self-hosted OAuth 2.1 authorization server - PKCE, dynamic client registration, refresh-token rotation. Five tools over Streamable HTTP, deployed on Hetzner behind a Cloudflare Tunnel. Claude connects to it as a custom connector.

work.02
TypeScript · Cloudflare Workers · astronomy-engine · MIT

auseklis

Ephemeris and astrology MCP server on Cloudflare Workers. Twelve tools that compute real astronomy; the model is never allowed to do the math. MIT-licensed, runs local or remote.

work.03
TypeScript · MCP · MIT

aisthesis

MCP server that gives models senses: image generation, speech, transcription with speaker diarization, vision, and moderation. Eight tools, MIT-licensed.

work.04
FastAPI · Next.js · Postgres · pgvector

Ospite

AI concierge platform for hospitality venues. FastAPI + Next.js + Postgres/pgvector, tenant isolation enforced in the database, and retrieval that escalates to a human rather than answer without a source.

work.05
compliance · iGaming

Verax

Compliance intelligence platform for the iGaming vertical: AML / KYC.

03expertise

The working inventory.

Fifteen years of shipped code. Bold marks where I go deep; the rest I reach for when the problem rewards it. I am comfortable on almost any mainstream stack — if it is not listed, ask.

Frontend
stack.frontend
Next.jsReactTypeScriptTailwindZodnext-intl · i18nRadix · shadcn/uiVue 3 / NuxtSvelte / SvelteKitAstroRemixTanStack QueryZustand / ReduxThree.js / R3FFramer Motion · LottieLeaflet · MapboxPlaywright · Vitest
Backend & runtime
stack.backend
Node.jsPython / FastAPIGo (Fiber · sqlx)BunNestJSExpress / FastifyElixir / PhoenixFlaskRust (tokio / axum)DenogRPC · tRPC · GraphQL · RESTWebSockets · SSE
Data & messaging
stack.data
PostgreSQLRedis · UpstashPrisma · Drizzle · TypeORMNeon · Vercel PostgresMySQL / MariaDBMongoDB · MongooseDynamoDBClickHouseBigQueryElasticsearch / OpenSearchKafkaSQS · EventBridgeAlgolia · Meilisearchpgvector
Cloud & infra
stack.cloud
Docker · composeTerraform / PulumiKubernetes · k3sHelm (maintained chart)GitHub Actions · reusable workflowsHetzner Cloud · bare metalAWS · Serverless (Lambda)GCP · VertexAzureCloudflare WorkersVercel · NetlifyPacker (snapshots)cert-manager · TraefikDatadog · Grafana · Sentry
Commerce & content
stack.commerce
Payload CMSnext-auth / Auth.jsStripe · Adyen · BraintreeMedusaSanity · Contentful · StrapiWallee · QR-bill · crefopay (Swiss)Custom checkout flowsKlaviyo · Segment · MailchimpPIM integrations
AI & ML
stack.ai
OpenAI · AnthropicVercel AI SDKMCP serversRAG pipelines · pgvector · PineconeQdrant · ChromaCohere · LiteLLMSelf-hosted LLM platforms (Onyx)Bedrock · Vertex AI · GeminivLLM · Ollama · GroqLangGraph · LlamaIndexPyTorch · transformers · sentence-transformersGradio · Streamlit evalsEvals · red-teamingAgent orchestration
domains I have shipped into
FinTech · blockchain lendingHealthcare · HIPAAHigh-traffic e-commerceLead-gen SaaS · 150M req/moTax / VAT systemsAnalytics & tracking pipelines

seen combat, not current: WordPress · WooCommerce · Shopify · PHP 8 · composer · PSR-4 · Laravel · CodeIgniter · Angular 2 · Ruby on Rails · jQuery

04artificial intelligence

AI, shipped. Not sold.

Large-language-model pipelines, classical ML, and the unglamorous plumbing that makes both pay back. I read the papers; I also read the bill at the end of the month.

ai.01

LLM integration, done properly

Production RAG pipelines, agent orchestration, tool use. Cost and latency budgets modelled before the prompt is written. OpenAI, Anthropic, Gemini, open-weights on Bedrock and vLLM — whatever the workload rewards.

RAGagentsfunction callingevals
ai.02

Classical ML in production

Recommenders, classifiers, scoring models shipped against real traffic. Feature stores, training pipelines, drift monitoring. The unglamorous plumbing that decides whether the model earns its keep once the launch announcement has aged.

feature storestraining pipelinesdrift monitoring
ai.03

Applied to your business, not your pitch deck

A cold eye over where AI actually helps — which is rarely where the hype lands. Internal tooling, ops leverage, and customer workflows tend to pay back long before the customer-facing chatbot does.

opportunity reviewbuild vs buycost modelling
ai.04

Governance from the first line

Data lineage, prompt versioning, audit trails, red-team exercises. If the workload touches regulated data, the controls are in place before it ships — not bolted on after a procurement review blocks the rollout.

data lineagered teamingaudit
providers
OpenAI · Anthropic · Google · Mistral · open-weights
inference
Bedrock · vLLM · Ollama · Groq · local GPU
tooling
LangGraph · Vercel AI · LlamaIndex · Weaviate · pgvector
agents
MCP servers · function calling · multi-step tool use
05how I work

Six rules. No exceptions.

The operating model is the same across every engagement shape. It is how I stay useful without becoming furniture.

p.01

Written by default

Every engagement has a Monday memo. Decisions, risks, and what is moving. You never wonder what you are paying for, and the document survives me.

p.02

NDA before the first call

If the problem is sensitive, we sign first and talk second. Standard mutual NDA, or yours — whichever travels faster.

p.03

Async, across time zones

Remote-first from Malta. Two to three synchronous hours a week with leadership is usually enough. The rest is written, recorded, and searchable.

p.04

Scoped to an exit

Every engagement has a written end condition on day one. Handover doc, runbooks, a team that operates without me. Leaving cleanly is the point.

p.05

Senior bar, only

The work is done by me, and every hire I sign off on for your team is someone I would ship production with. No staffing-agency shuffle, no bench-warmers billed to your burn rate.

p.06

Your IP, always

Code, designs, and documentation are assigned to you on delivery. No escrow, no licensing back to me. Clean title, every time.

06process

Five stages. One exit.

No surprise retainers. No scope creep dressed as partnership. You will know by the end of week two whether you want me to stay.

  1. 01 / introduce

    Introduce

    You send the shape of the problem — new product, failing system, missing leader. I reply within one business day and we book a call. Free, NDA-first if you want it.

  2. 02 / diagnose

    Diagnose

    A short paid diagnostic, usually a week. You receive a written read — what is broken, what it costs to fix, what it costs to ignore. The document is yours either way.

  3. 03 / agree

    Agree

    If the fit is right, we pick the engagement shape: retainer, fixed scope, or advisory. Clear deliverables, clear exit conditions. No perpetual consultants.

  4. 04 / deliver

    Deliver

    I work in the open — weekly written update, shared board, direct access to me. You will know by the end of week two whether you want me to stay.

  5. 05 / hand over

    Hand over

    Every engagement ends with a handover pack: documentation, runbooks, hiring plan, and a team that can operate without me. Leaving cleanly is the point.

07compliance

Standards I have written, not just read.

Three ISO management systems, WCAG 2.2 AA, GDPR-native. Enterprise procurement paperwork returned within a week.

iso.9001
ISO 9001
Quality management
iso.14001
ISO 14001
Environmental management
iso.27001
ISO 27001
Information security
wcag.2.2
WCAG 2.2 AA
Accessibility, shipped
gdpr
GDPR
EU data protection
08questions

Asked, before answered.

The questions founders tend to ask before they commit. If yours is not here, the form at the bottom goes directly to me.

  • Forty-five minutes, on me. No deck, no intake form, no sales theatre. You describe the problem, I ask the uncomfortable questions, and you leave with at least one useful thing — even if we never work together. If the engagement does not make sense, I will say so and point you at someone who fits better.

  • Pricing depends on shape and cadence, and I quote per engagement once we have had the first call. Retainers, fixed-scope, and advisory engagements are all priced in writing up front — no hidden burn, no surprise invoices. If budget is the question, open with it on the first call and we will work backwards from there.

  • You do, from the moment it is delivered. Work is assigned on acceptance under a straightforward mutual agreement. No escrow, no licensing back, no clauses that survive the engagement.

  • An initial call inside a week, usually inside a few days. A paid diagnostic can begin within two weeks of signing. Retainers take three to six weeks to stand up well: the early weeks are spent learning your system, not billing against it.

  • Yes. ISO 27001, ISO 9001, ISO 14001, GDPR, WCAG 2.2 AA — the standard vendor paperwork is on file. Security questionnaires are returned inside a week, references available under NDA.

  • Thirty-day notice on retainers, no cancellation fee. I would rather part cleanly than drag an engagement past its useful life — and a client who leaves well often comes back.

09contact

Start a conversation.

I read every message personally and reply inside one business day. The first call is on me — forty-five minutes, no deck. You will leave with at least one useful thing, even if we never work together. NDA before it starts, if the problem is sensitive.

✷ first consultation · always free
Location
Malta · EU · remote-first
Response
One business day, faster on weekdays
First call
Free · 45 minutes · NDA on request
New inquiry
Encrypted · TLS 1.3
Human on the other side