AI Product Engineer · LLM Systems Contractor

Adrian Kujawski

I build LLM systems you can actually trust. Custom MCP tooling, RAG, statistical evals, provider-agnostic harness.

Native Polish · Fluent English · Worked with Danish healthcare + US corporations

See the project Get in touch
LinkedIn GitHub Email
LLM SYSTEMS RAG MCP STATISTICAL EVALS GO + PYTHON

Case Study - Live in Production

Geo Duelist

An AI-native product I built end-to-end to prove the architecture I sell.

Real-time PvP and turn-based hex tactics with LLM-driven personalities that remember your last 5 fights. Flutter across web/iOS/Android, Go backend with WebSocket matchmaking, PostgreSQL for shape memory, provider-swappable LLM harness (Groq primary, Claude fallback, one-line swap to Ollama or OpenAI). Ships with structured output validation, canary tokens, rate limiting, and a curated static-response fallback for when the model is slow or down. Zero infra cost on the free tier. This is the shape of every AI feature I ship for clients.

Flutter Go Groq LLM PostgreSQL Turn-based

Last shipped: 2026-07-15 · Working on hex combat expansion

AI Systems I Built

Three companion repos showing the eval-first pattern I ship. Same architecture, different domains.

MCP Server · Go

geoduelist-mcp

Statistical eval infrastructure for the Geo Duelist hex combat. Six tools, baselines cached by harness SHA, verdicts via z-score, anomaly detectors for defects metrics miss. First serious run flagged 48.6% of matches as broken. Human playtests never surfaced it.

MCP Go Statistical eval
View on GitHub →

RAG Chatbot · Go

adrian-agent

The RAG chatbot powering this portfolio. pgvector on my own VPS, custom retrieval, provider-swappable LLM, citations on every claim. Six functions, no framework. Ask it about my work in the modal button on this page.

RAG pgvector Go
View on GitHub →

MCP Server · Go

synthfactory-mcp

Same six-tool eval architecture as geoduelist-mcp, applied to a synthetic factory generator. Proves the pattern transfers across unrelated domains. Caught its own baseline miscalibration during acceptance testing.

MCP Pattern transfer Manufacturing
View on GitHub →

What You Get

Hiring a contractor is a bet on speed and reliability. Here's the specific bet you’re placing.

Ship LLM features you can measure

Not features that "look fine" until they don't. Statistical eval infrastructure, anomaly detectors, and z-score verdicts that catch drift before your users do. I built the same pattern for two unrelated domains to prove it transfers.

Provider-agnostic architecture from day one

Groq, Claude, OpenAI, Ollama swappable via one-line change. Rate limiting per user, structured output validation with canary tokens, curated static-response fallback for when the model is slow or down. Provider outage doesn’t become your user-facing outage.

Custom MCP tooling for your domain

Most MCP servers are API wrappers. I build them as research instruments over your domain data, with statistical guarantees. Rare skill in 2026, hard to hire for, transferable to any measurable system you own.

Selected Work

Production systems shipped before the AI-native work. Same discipline transfers: measure before you ship, degrade gracefully, own the delivery end-to-end.

Manufacturing · MES

Real-time monitoring for Poland’s biggest food factories

Senior Flutter developer on a MES app pushed to production lines that run 24/7. Live dashboards, real-time reporting, and mentoring other Flutter devs across parallel projects.

Flutter Real-time Mentoring

Healthcare · Denmark / US

HIPAA-grade mobile app across two continents

Delivered with a US corporation for the Danish healthcare market. Cross-border data compliance, real-time patient sync, and a 30% cut in app load time through targeted profiling. Team of five Flutter devs.

Flutter HIPAA GDPR Perf

E-commerce · 50k+ downloads

Checkout that converts at 95% on mobile

A Flutter e-commerce app with 50,000+ installs. Iterated the checkout flow with A/B tests until mobile completion sat at 95%. Owned state management, CI/CD, and the backend seams.

Flutter A/B testing CI/CD

Fintech · Real-time trading

Forex trading systems where milliseconds matter

High-frequency Forex execution on .NET Core with SignalR live market feeds. Financial-grade auth, sub-second latency, and end-to-end ownership on a small fullstack team.

.NET Core SignalR HFT

How We Work Together

From first email to signed contract in about a week. Three steps, zero surprises.

01

30-min discovery call

Book a slot. We’ll cover what you’re shipping, timeline, technical constraints, and whether I’m the right fit. No sales pitch, no obligation.

02

Discovery sprint (2 weeks, fixed price)

If we click, we start with a 2-week paid sprint. Output: scope, roadmap, and the first shipped feature. You walk away with real work whether you continue or not.

03

Delivery sprint or retainer

From there we either commit to a fixed-price delivery sprint (4-8 weeks, defined scope) or an ongoing retainer (3-6 months, 20-30h/week). Your choice, based on how the discovery went.

Engagements

Three ways to work with me. All EUR, excluding VAT. Pick your entry point.

Discovery Sprint

from €5,000

2 weeks. Scope + roadmap + first shipped feature. Low-risk way to test the working relationship.

  • Kickoff call + architecture review
  • 1 shipped feature or POC
  • Written recommendations for next 30 days
MOST COMMON

Delivery Sprint

from €30,000

4-8 weeks, fixed scope. MVP or a complete feature end-to-end. Best for a defined outcome with a hard deadline.

  • End-to-end delivery: DB → API → mobile
  • Deployed to production, monitored
  • 2 weeks of post-launch support included

Retainer

from €12,000/mo

3-6 months starter, 20-30h/week. Ongoing partnership for teams that want a senior on tap without a full-time hire.

  • Async-first, EU timezone friendly
  • Weekly demo + written status
  • Renewable every 6 months, 30-day notice

The Fine Print

Common questions before we talk.

NDA before discovery call?

Happy to sign a mutual NDA before we discuss anything technical. Send yours, or I have a template ready.

Who owns the code?

You do. Full IP transfer on delivery, standard. Written into every contract.

How do you invoice?

Monthly, in EUR. EU B2B reverse charge VAT (client handles VAT locally). Non-EU: gross invoicing. Poland-based JDG, valid VAT-EU registered.

Can I talk to a past client?

Happy to connect you with references on request after our first call. Not before - respecting their time.

How do you communicate?

Async by default - Slack, Linear, GitHub. Video calls only for kickoff and mid-sprint check-in. Written status updates weekly.

Adrian Kujawski presenting

Open for Contract Work

Have a product to ship?

I go deep, not wide. Your codebase, your domain, your roadmap — not a slot on someone’s roster. Preferred setup: 3–6 month engagements, 20–30h per week, EU timezone friendly.

Reply within 24h · EU business hours (Mon-Fri 9-17 CET)

Now booking Q4 2026 · Earlier start possible for the right fit

Book a 30-min call → Or email [email protected]

or reach me on LinkedIn ↑