# Răzvan Frandeș > Systems Architect. 12 years in web development. The stack changed, the thinking stayed. Lately I build with teams of AI agents, and the systems that keep them honest. - Based in: Cluj-Napoca, RO - Contact: razvan.frandes@gmail.com - Profiles: [LinkedIn](https://linkedin.com/in/razvan-frandes), [GitHub](https://github.com/razvanFrandes) ## Stack - Runtimes & Logic: TypeScript, Next.js, Node.js, Bun.js, Hono.js, Remix.js, TanStack, Rust, Python - State & Data: React Query, Zustand, SWR, GraphQL, REST API, WebSockets - AI & Agents: Claude Code (skills · subagents · workflows), MCP servers, Anthropic API (tool use · caching), OpenAI API, LLM-as-judge evals, Speech AI (Whisper · XTTS) - CMS: Strapi, WordPress Headless, WordPress (ACF, custom themes) - Database: PostgreSQL, Supabase, MySQL, Redis, SQLite - Infra & Delivery: Cloudflare Workers & Workflows, GitHub Actions, Docker, Playwright, Vitest - Styling & Animation: Tailwind CSS, GSAP, three.js, GLSL shaders - Design & Prototyping: Figma, Adobe Illustrator, Adobe Photoshop ## Agent systems - Multi-Agent Workflows: I run multi-agent workflows in Claude Code: parallel builders, judges, critics and adversarial verifiers. A claim survives only if independent agents can't break it. Builders take their own headless-Chrome screenshots, look at them and iterate. Output: 72 workflow scripts so far. A 109-agent line-by-line audit confirmed 51 bugs, all fixed test-first. A 76-agent audit checked a trading engine against the exchange docs, with 2 of 3 verifiers required to agree. - MT.Kit: A context warehouse for Claude Code: 56 skills that take a product from a raw signal to PRD, architecture, test-first implementation and review. Task state lives on a GitHub Projects board and changes only through mtk, a TypeScript CLI built for agents to call. Output: Tested end to end by agents against an emulated GitHub, two simulated users and a simulated human. Seven test phases, every finding fixed and confirmed. - Strudel Runner: Live-coded music where Claude Code is the composer. A custom MCP server with 13 tools plays, edits and exports Strudel patterns. Edits hot-reload into a browser engine with MIDI out to hardware and soft synths. Output: A council of five specialist agents argues the arrangement until every one of them signs off. - Compose: a score language for an AI composer: Four bars of MIDI as raw JSON is about 1,600 lines, too fragile for an agent. So I designed a compact .music score language, a compiler into the sequencer's format and a Claude Code skill. I talk, Claude writes the score, the sequencer plays it. Output: Round-trips through the app's own deserializer and MIDI export. - Agent Teams from Bash: Headless claude -p agents chained from bash, each given only the context it needs. Team Factory scouts SaaS ideas from a team's real skills and runs each through ten validator agents, built on Stafford Beer's Viable System Model. Roundtable puts 16 expert personas in one transcript to debate a topic, with me as moderator. Output: Structured JSON state per agent, every validation step committed to git. - Guardrails as Skills: Agents love a good backtest. I wrote a skill that won't let them report one until data validation, bias guards and multiple-testing corrections pass, each rule taken from a real failure. Plus a governed research workspace: hypotheses pre-registered, every trial counted. Output: 1,096 curated agent skills behind activation profiles and a static security scanner. 4 quarantined. ## Case files - [Neural Monitoring Ecosystem](https://razvanfrandes.com/work/neural-monitoring-ecosystem/): An EEG recording app for the Neurosity headset, built on WordPress and React. After a session, band statistics and key moments go to AI, not the raw EEG. - [Prediction-Market Trading Stack](https://razvanfrandes.com/work/prediction-market-trading-stack/): A Bun platform and a Rust hot path for Polymarket's 5-minute crypto markets, plus a research lab that found the market efficient after fees. - [AI Tutor](https://razvanfrandes.com/work/ai-tutor/): Built with a friend three years ago. - [Pimp My Sample](https://razvanfrandes.com/work/pimp-my-sample/): Chrome extension for music producers: record any browser tab into a real sample library on your disk. Trim, chop on onsets, export lossless WAV. - [Dubai Hospitality](https://razvanfrandes.com/work/dubai-hospitality/): Three new hotel websites built from scratch. - [Code of Maat](https://razvanfrandes.com/work/code-of-maat/): I built my agency's starter theme (ACF blocks, Tailwind v4, Vite) and the client-site deploy: PHP lint, CI build, atomic switch, route checks. - [B2B Commerce Engine](https://razvanfrandes.com/work/b2b-commerce-engine/): Large B2B platform. ## Field notes - [An atomic deploy pipeline for WordPress themes](https://razvanfrandes.com/blog/atomic-deploys-for-wordpress-themes/) (Web & Infra): Atomic deploys for WordPress themes: build in GitHub Actions, lint PHP, sync to a new directory, switch with two renames, then check the routes. - [Prompt caching cut a tool-use agent’s input cost by about 80%](https://razvanfrandes.com/blog/prompt-caching-tool-use-agent/) (AI Engineering): A tool-use agent resends its whole context on every turn. What prompt caching changes about that, and how I read a cut of about 80% in input cost. - [A score language for an AI composer](https://razvanfrandes.com/blog/a-score-language-for-an-ai-composer/) (AI Engineering): Four bars of MIDI as raw JSON is about 1,600 lines, too fragile for an agent. So I designed a compact score language, a compiler and a Claude Code skill. - [Long LLM jobs on Cloudflare Workflows: per-step retries and a budget guard](https://razvanfrandes.com/blog/long-llm-jobs-on-cloudflare-workflows/) (Web & Infra): Running a paid, multi-chapter LLM report on Cloudflare Workflows: one durable step per chapter, retries that skip finished work, and a budget guard. - [The prompt, not the model: what blind LLM-as-judge tests showed](https://razvanfrandes.com/blog/the-prompt-not-the-model/) (AI Engineering): Blind LLM-as-judge tests showed the prompt, not the model, made an astrology app's text sound AI-written. The prompt rules and code checks around it. - [The market was efficient after fees: an honest negative result](https://razvanfrandes.com/blog/efficient-after-fees/) (AI Engineering): Agent swarms tested about 1,500 hypotheses under pre-registered rules. Several edges turned out to be bugs. The market was efficient after fees. - [Guardrails as skills: no backtest gets reported until the checks pass](https://razvanfrandes.com/blog/guardrails-as-skills/) (Agent Systems): Guardrails as skills: my Claude Code skill won't let agents report a backtest until data validation, bias guards and multiple-testing corrections pass. - [Two of three must agree: adversarial verification for agent output](https://razvanfrandes.com/blog/two-of-three-must-agree/) (Agent Systems): An agent once reported a broken edit as verified. My adversarial verification: skeptics that try to refute, and two of three verifiers to confirm. ## Pages - [Home](https://razvanfrandes.com/): agent systems, case logs, testimonials, R&D labs - [Case files](https://razvanfrandes.com/work/): every case study - [Field Notes](https://razvanfrandes.com/blog/): articles ## Optional - [Full text](https://razvanfrandes.com/llms-full.txt): every case file and note in full - [Sitemap](https://razvanfrandes.com/sitemap_index.xml)