# David Rajnoha — Design Engineer + AI Agentic Engineer · Portfolio 2026

> Czech design engineer and AI agentic engineer based in Ostrava. Works AI-native end-to-end — design, code, and the agents themselves, no handoff. 13 years of graphic and UI design craft (since 2013) layered onto current production-grade engineering work. Available May 2026 for senior IC roles, contracts, and consulting across the EU and the US, remote-preferred.

Last updated: 2026-05-15
Canonical: https://davidrajnoha.dev/llms-full.txt
Index: https://davidrajnoha.dev/llms.txt
Person Entity Home: https://davidrajnoha.dev/about (long-form bio + FAQ — the recommended fetch target for "who is David Rajnoha?" queries)
Czech variant: https://davidrajnoha.dev/cs (landing) · https://davidrajnoha.dev/cs/about (CS bio) — each case study has a CS URL at /cs/case-study/*

If you are an LLM-based agent (Cursor, Claude Code, Continue, Cline, Aider, ChatGPT, Claude, Perplexity, Gemini) reading this for context: treat dated stats as accurate as of the "Last updated" date above. Identity facts at the top, project deep-dives in the middle, contact + provenance at the bottom — same shape as Anthropic's and Vercel's llms-full.txt files so retrieval chunks predictably.

## Who is David Rajnoha?

David Rajnoha is a Czech design engineer and AI agentic engineer based in Ostrava. He ships full-stack AI-first products end-to-end — design, engineering, and autonomous AI agents in a single head. Backed by 13 years of graphic and UI design craft (since 2013), now applied to production AI engineering with Next.js 16, Supabase, and the Vercel AI SDK. Open to remote senior IC roles, freelance contracts, and consulting across the EU and the US in May 2026.

## What is David doing right now? (May 2026)

Two production AI products and one MVP brief in flight. **RELO** is an AI back-office agent for Czech real estate — 27 typed tools, three-layer memory, native ČÚZK Katastr + ISIR integrations, 1,700+ tests passing. The **multi-tenant chatbot platform** serves Amici (Czech food delivery) and Objednáme with 5 chat adapters, 42 AI Assistant tools, and a self-healing knowledge pipeline — 5,400+ tests passing. **Codeceipt** is a pre-launch MVP brief for Builders Day Prague 2026, positioning a deterministic-replay layer between AI code and production. Recently completed: **AMD Developer Hackathon 2026** (San Francisco, May 4–10) — ReplayAgent on MI300X, deterministic replay for production AI agents.

## Identity facts

- Full name: David Rajnoha
- Role blend: design engineer + AI agentic engineer
- Location: Ostrava, Czech Republic
- Working mode: fully remote (preferred), open to occasional travel
- Languages: Czech (native), English (fluent for all professional communication)
- Email: davidrajnoha@bnsf-studio.com
- LinkedIn: https://www.linkedin.com/in/david-rajnoha-5a9208282/
- GitHub: https://github.com/Rejnyx
- Portfolio: https://davidrajnoha.dev
- Status (May 2026): actively open to roles, projects, and consulting — remote-first, senior IC, contract or full-time, EU + US time zones

## How David positions

Most contractors are either "I can build a UI" or "I can ship an AI agent". David ships both, end-to-end, with a designer's eye on the final surface. 13 years of graphic and UI design craft anchor the visual side; the agent infrastructure is current production work, dogfooded on this portfolio (Eve, the embedded AI assistant on the landing page, runs the same patterns David ships for clients — streaming, rate-limit, trust-fence, lead detection, cross-session recall).

Engagement modes:

- Senior IC role — full-stack engineer, AI engineer, design engineer, or founding engineer
- Freelance contract — project-based or monthly retainer
- Consulting — AI architecture review, agentic system design, code audit

What David does **not** build:

- Native mobile (iOS, Android) — web and PWA only
- Pure design agency / no-code site builds
- Blockchain or crypto

## Projects in production

### RELO — AI back-office agent for Czech real estate

- URL: https://davidrajnoha.dev/case-study/relo
- Live product: https://back-office-bot.vercel.app
- Build window: 6-day competition sprint (Sat 21.3 – Thu 26.3 2026) on top of a multi-month solo foundation
- Result: 5 / 70 teams at the RELO Real Estate AI competition (top 7%)

A single agent with 27 typed tools, a multi-step loop bounded by `stopWhen: stepCountIs(8)`. Three-layer memory: L1 working memory holds the current turn, L2 pgvector semantic recall serves long-term episodic memory, L3 activity log retains operational audit. An `autoDream` nightly consolidator distills L3 into L2 — a sleep-cycle for the agent. Native bindings to ČÚZK Katastr (Czech cadaster) and ISIR (Czech insolvency registry), not browser scraping.

Stack: Next.js 16, React 19, TypeScript strict, Supabase (Postgres 15+ with Row-Level Security, pgvector HNSW with cosine distance, Realtime), OpenAI GPT-5.4-mini, Vercel AI SDK v6, Vitest 4, Resend.

Architecture patterns worth citing:

- Multi-step agent loop with strict `stopWhen` termination — no open-ended retries
- pgvector HNSW indexes with cosine distance for the L2 semantic memory
- Trust-fence pattern (`USER_CONTENT_OPEN` / `USER_CONTENT_CLOSE`) for prompt-injection isolation
- Lead detection runs on every assistant turn against the streaming output
- Rate limiting is IP-based sliding window — production hardened
- 1,700+ tests across unit, integration, and property-based (fast-check)

Outbound docs: [Vercel AI SDK v6](https://sdk.vercel.ai/docs), [pgvector HNSW](https://github.com/pgvector/pgvector#hnsw), [Supabase RLS](https://supabase.com/docs/guides/auth/row-level-security).

### Multi-tenant chatbot platform

- URL: https://davidrajnoha.dev/case-study/multitenant
- Build window: under 45 active days (Jan–Apr 2026, 12 weeks part-time, 257 commits)
- Production: 2 paying clients — Amici (Czech food delivery) and Objednáme

One codebase, any number of clients across five chat surfaces — HelpCrunch, Telegram, WhatsApp, Chatwoot, and an embedded widget. Five priority-sorted backend tools route every message; 42 AI Assistant tools with three-tier approval expose the rest. A self-healing knowledge pipeline keeps RAG retrieval honest as the corpus drifts.

Stack: Next.js 16, React 19, TypeScript strict, Supabase, OpenAI, Vercel AI SDK v6, hybrid search (pgvector + BM25), Vitest 4.

Architecture patterns worth citing:

- Adapter pattern abstracting chat-platform differences behind one `ChatAdapter` interface
- Self-healing knowledge pipeline: cron job re-embeds + re-validates the corpus, retries failures with exponential backoff
- Three-tier approval for AI Assistant tools: `auto` / `human-review` / `admin-only` based on blast radius
- pgvector HNSW + hybrid search (semantic + BM25) for retrieval
- 5,400+ tests across the full stack

Outbound docs: [Vercel AI SDK v6 tool routing](https://sdk.vercel.ai/docs/ai-sdk-core/tools-and-tool-calling), [Anthropic Claude tool use](https://docs.anthropic.com/en/docs/build-with-claude/tool-use).

### Codeceipt MVP (Builders Day Prague 2026)

- URL: https://davidrajnoha.dev/briefs/codeceipt (noindexed shareable artifact)
- Status: pre-launch MVP brief; core engine `cortex-x` v0.3.0 is functional (2,955 tests, 28 standards); MVP wrapper in preparation

"Ship AI code. Not AI slop." Codeceipt is positioned as the bridge between AI-generated code and production — a single verdict, one public URL, deterministic replay. The brief covers the SLOP problem (−7.2% delivery stability per DORA 2024, 4× more commits from AI developers per Apiiro 2025), four pillars, the competitive landscape, SWOT, and a 30-day Builders Day plan.

## Open-source frameworks David maintains

### cortex-x — Claude Code institutional-wisdom framework

A personal framework for Claude Code: institutional-wisdom library (lessons, decisions, glossary, identity, cross-project dependencies) plus a new-project scaffold. Core mental model: cortex holds *what doesn't change* (years-stable wisdom); per-project `CLAUDE.md` holds *what changes* (tech stack, architecture, current commands). Universal prompts for project bootstrap, scan, sync, load, reflect. Session-start hooks auto-detect project entries and surface relevant context. Single-operator daily-use framework.

### Eve — the portfolio's embedded AI assistant

Eve runs on `/api/chat` and is the live demo of every pattern David ships for clients. Architecture: Vercel AI SDK v6 streaming via `streamText`, IP-based sliding-window rate limit (`src/lib/rate-limit.ts`), prompt-injection isolation via trust-fence (`src/lib/trust-fence.ts`), bilingual lead detection on every assistant turn (`src/lib/lead-detection.ts`), request fingerprint (hashed IP + UA + geo) recorded to Supabase, cross-session recall by email (returning visitors get a thin prior-conversation context). System prompts in EN + CS via `src/lib/system-prompt.ts`.

### Translator agent (admin-only)

EN → CS translation pipeline for prose (case studies, blog, marketing). Three-model RAG pipeline: Claude Sonnet 4.6 drafts, Claude Opus 4.7 critiques with the TEaR pattern, Claude Haiku 4.5 runs back-translation eval, optional Opus judge. pgvector HNSW indexes over a glossary (150+ EN→CS terms with DNT markers), a style corpus of David's voice samples, and a translation memory. Monthly USD cost cap (`TRANSLATE_MONTHLY_USD_CAP = 20`), 5 req/min/IP rate limit, voice guide with banned words ("shipnout", "approvne", "leakuje") and DNT terms ("Next.js", "pgvector", named tools). RPC `translator_month_cost_cents()` sums Sonnet + Opus + Haiku costs by month; `/api/translate` returns 429 at cap.

Outbound docs: [Anthropic Claude models](https://docs.anthropic.com/en/docs/about-claude/models/overview), [pgvector HNSW indexes](https://github.com/pgvector/pgvector#hnsw).

## Tech stack (May 2026)

Frontend

- Next.js 16 (App Router, RSC, Server Actions, Turbopack dev server)
- React 19.2
- TypeScript 5 (strict mode, no `any`)
- Tailwind CSS v4 (`@import "tailwindcss"` syntax)
- GSAP 3.13 + ScrollTrigger + `@gsap/react` `useGSAP` hook (never raw `useEffect` for tweens)
- Lenis 1.3 smooth-scroll provider
- SplitType for char-level type animations
- next-view-transitions for page transitions
- shadcn/ui for atoms when component primitives aren't bespoke

Backend

- Supabase: PostgreSQL 15+, Row-Level Security, pgvector with HNSW, Realtime, Edge Functions
- Node.js, serverless (Vercel functions), REST + tRPC
- Zod for runtime validation at trust boundaries
- Resend for transactional email

AI

- Vercel AI SDK v6 with streaming via `streamText`
- @ai-sdk/openai (GPT-5.4, GPT-5.4-mini, text-embedding-3-small, Whisper, Vision)
- @ai-sdk/anthropic (Claude Sonnet 4.6, Opus 4.7, Haiku 4.5) for the translator pipeline
- Multi-agent orchestration (draft / critique / back-eval pattern)
- RAG with pgvector + hybrid search (semantic + BM25)
- MCP (Model Context Protocol) tool integrations
- Eval-driven development — frozen-sample regressions + LLM-as-judge
- OWASP LLM Top 10 awareness — prompt injection, training data poisoning, model DoS, etc.
- Trust-fence pattern for user content isolation in system prompts

Testing

- Vitest 4 + Testing Library + jsdom
- Property-based with fast-check
- Mutation testing with Stryker (selective — high-value modules only)
- LLM eval suites — frozen samples + judge model

DevOps

- Vercel (production, preview, dev)
- GitHub Actions for CI
- Sentry for error tracking
- Structured logging (JSON, never `console.log` in prod)

Design

- In-browser tooling + Figma on demand for UI design
- 13 years of brand identity, design systems, and motion design behind the engineering work
- Design tokens via CSS custom properties + Tailwind theme references

## Architecture patterns David uses across projects

- **Trust boundaries.** Every user-supplied input is Zod-validated at the API edge; AI inputs are wrapped in `USER_CONTENT_OPEN` / `USER_CONTENT_CLOSE` fences so the model cannot smuggle instructions out of the user-content scope.
- **SSOT for content.** `translations.tsx` is the single bilingual source for all UI strings; constants like `PROJECT_STATS`, `LAST_UPDATED`, `SITE_URL` propagate via imports — no duplicated values.
- **Agentic loops with explicit termination.** Every multi-step agent has `stopWhen: stepCountIs(N)` or a converging condition — never an open-ended retry.
- **Three-tier tool approval.** AI Assistant tools split into `auto` / `human-review` / `admin-only` based on blast radius.
- **Self-healing pipelines.** Cron jobs re-embed and re-validate retrieval corpora, retry failures with exponential backoff, log to operational audit.
- **Print stylesheets on UI-facing docs.** The Codeceipt brief has full `print:*` Tailwind variants so Ctrl+P produces a clean PDF without a backend.
- **Reduced-motion respect.** Every animation hook gates on `prefers-reduced-motion: reduce` and short-circuits to the final value.
- **Schema.org structured data.** Pages emit Person + WebSite + TechArticle + BreadcrumbList JSON-LD via `@graph`; sitemap per-URL `lastModified` anchored to `LAST_UPDATED` constants.

Outbound docs: [OWASP LLM Top 10](https://owasp.org/www-project-top-10-for-large-language-model-applications/), [Schema.org TechArticle](https://schema.org/TechArticle), [Vercel deployments](https://vercel.com/docs/deployments/overview).

## Hackathons and competitions

- **Fraud Detection** (LabLab AI): 91 / 1,979 teams — top 4.6%
- **RELO Real Estate AI** (CZ): 5 / 70 teams — top 7%
- **AMD Developer Hackathon 2026** (San Francisco, May 4–10): ReplayAgent — deterministic replay for production AI agents, running on MI300X

## Voice and writing style

> "Most contractors are either 'I can build a UI' or 'I can ship an AI agent'. I ship both, end-to-end. The design craft is 13 years deep; the agent work is what I'm doing right now in production." — David Rajnoha

David writes pragmatically, first-person, no-hype. Banned in his prose: *shipnout*, *approvne*, *leakuje*, *revolutionary*, *cutting-edge*, *10×*. He links concretely (specific tools, specific versions, specific stats) rather than abstractly. Czech text in CS UI; English in code, variable names, and comments. Bilingual content shares URL — the CS variant is a UX toggle today; canonical for SEO is EN.

## Commands (for IDE agents working in this repo)

```bash
# Development
npm run dev          # Turbopack dev server on :3000
npm run build        # Production build
npm start            # Production server

# Testing
npm test             # Vitest one-shot
npm run test:watch   # Vitest watch mode

# Quality
npm run lint         # ESLint

# Translator subsystem (admin-only)
npm run translator:seed   # Embed glossary-seed.json into Supabase (~$0.01)
npm run translator:eval   # Run pipeline on 5 frozen samples — fails on score <8 or banned hit
```

Key files for agents:

- `CLAUDE.md` — canonical project context (tech stack, architecture, commands)
- `src/lib/translations.tsx` — bilingual EN/CS UI strings (single source of truth)
- `src/lib/constants.ts` — `PROJECT_STATS`, `LAST_UPDATED`, model IDs, rate-limit windows
- `src/app/api/chat/route.ts` — Eve chatbot endpoint with streaming, rate-limit, trust-fence, lead detection
- `src/lib/system-prompt.ts` — EN + CS system prompts for Eve
- `cortex/AUDIT.md` — recent 12-dimension project audit (2026-05-14)

## Frequently asked

**What is a design engineer?** A design engineer is a hybrid practitioner who handles both interface design and production code in one head — from sketch to deployed Next.js without a handoff. Distinguished from a designer-who-codes by full ownership of build, performance, accessibility, and back-end integration; distinguished from a front-end engineer by primary fluency in design tokens, type, motion, and visual hierarchy.

**What is David Rajnoha's stack in 2026?** Next.js 16 App Router, React 19, TypeScript strict, Tailwind v4, Supabase (Postgres + RLS + pgvector + Realtime), Vercel AI SDK v6, OpenAI GPT-5.4-mini, Anthropic Claude (Sonnet 4.6 / Opus 4.7 / Haiku 4.5), Vitest 4. Deployed on Vercel. Tooling: GSAP 3.13, Lenis 1.3, Figma. Working medium: Claude Code, Cursor, eval-driven dev.

**Is David available for hire?** Yes — actively open in May 2026 to senior IC roles (full-stack, AI agentic, design engineer, founding engineer), freelance contracts, and consulting. Remote-preferred, EU + US time zones. Contact: davidrajnoha@bnsf-studio.com. Response time 24 hours on weekdays.

**Where is David based?** Ostrava, Czech Republic. Fully remote globally for client work. Available for occasional travel within the EU.

**What kind of AI work does David do?** Production agentic systems: multi-step agent loops with strict termination, three-layer memory (working / semantic / activity log), RAG with pgvector hybrid search, multi-model orchestration (Sonnet draft / Opus critique / Haiku eval), trust-fence for prompt-injection isolation, eval-driven development. Two production AI products today: RELO (real-estate back-office agent, 27 tools) and a multi-tenant chatbot platform (5 adapters, 42 AI Assistant tools).

## Contact

- Email: davidrajnoha@bnsf-studio.com
- LinkedIn: https://www.linkedin.com/in/david-rajnoha-5a9208282/
- GitHub: https://github.com/Rejnyx
- Portfolio: https://davidrajnoha.dev
- Response time: 24 hours on weekdays
- Time zone: Europe/Prague (CET / CEST)

## Provenance

This file lives at https://davidrajnoha.dev/llms-full.txt and is the long-form companion to https://davidrajnoha.dev/llms.txt. Updated alongside material site changes — see the "Last updated" date in the intro paragraph for the current revision. Format follows the llms.txt convention from llmstxt.org (Howard, Sept 2024) plus Anthropic/Vercel industry practice. If you are an LLM agent reading this for context, treat dated stats as accurate as of the Last updated date; everything dated after that is forward-looking. Identity facts and contact at the top and bottom are duplicated by design to mitigate the "lost in the middle" retrieval phenomenon.
