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.
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.
MCPGoStatistical eval
RAG Chatbot · Python
adrian-agent
The RAG chatbot powering this portfolio. pgvector on my own VPS, custom retrieval, provider-swappable LLM, citations on every claim. Python 3.14, FastAPI, async end to end, strict mypy, versioned eval dataset. No LangGraph: one deterministic embed → retrieve → prompt → generate path. Ask it about my work in the modal button on this page.
RAGpgvectorPython
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.
MCPPattern transferManufacturing
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.
FlutterReal-timeMentoring
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.
FlutterHIPAAGDPRPerf
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.
FlutterA/B testingCI/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 CoreSignalRHFT
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.
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–12 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