Accepting new engagements Prague · remote across Europe and the US Engineering since 1996

Production systems, and the machinery around language models.

Galvani is a small engineering studio in Prague with two halves that belong together. We design, refactor, and scale complex systems, and build the harnesses, gateways, and defenses that make language models safe to run in production.

What we work in
// 03 — architecture

Software architecture, PHP and TypeScript, DevOps, large-scale systems

Thirty years of services that carry real traffic: message-driven pipelines, APIs, Kubernetes, observability, and delivery from the domain model to the operations dashboard.

ARCH/01

High-load, scalable services

Message-driven and asynchronous pipelines on RabbitMQ and Symfony Messenger, semantic APIs with Hydra and JSON-LD, caching and search layers on Redis and Elasticsearch, horizontal scaling on Kubernetes. Proven on a high-traffic content-moderation and discussion platform and on marketing automation at scale.

ARCH/02

PHP and Symfony

Our deepest stack. Symfony and API Platform backends, Doctrine data models, and more than seven years inside the Mautic ecosystem as solution architect and plugin author. We know where these frameworks break under load because we have been the ones on call.

ARCH/03

TypeScript and JavaScript

Full-stack delivery in the TypeScript ecosystem: Nuxt and Vue, React, Svelte, Express, and monorepos. Server-rendered where it pays, and honest about hydration, caching and the edge cases that show up only in production.

ARCH/04

DevOps and operations

CI/CD pipelines with test suites and coverage gates, Kubernetes and plain systemd, reverse proxies and network isolation. Metrics and dashboards in Grafana, error tracking with Sentry, structured logging, retention policies and cost auditing. Built to be operated, not merely deployed.

ARCH/05

Data layers

PostgreSQL and MySQL as the system of record, Redis for caching and coordination, Elasticsearch for search, SQLite with vector extensions where a single node is the right answer. Schema design, migrations and the query plans behind the p95.

ARCH/06

Delivery end to end

Domain model, API, data layer, frontend, CI/CD and operations, as one piece of work. A decade in architect, solution-designer and CTO roles: technology selection, standards, hiring and mentoring, and the judgement to keep scope small and ship it whole.

Client engagements in this half include a high-traffic content-moderation and discussion platform, a social-feed aggregator, and marketing-automation integrations at scale. Names on request.

// 04 — ai & llm

AI and LLM engineering

What has to hold around a language model when it is wrong, slow, or asked to do something it should not: agent harnesses, inference gateways, loops and queues, retrieval, prompt-injection defense, evaluation.

AI/01

Agent harnesses

The board an agent works from is a state machine it cannot wander out of: legal transitions only, atomic claims under a lease, and a verification contract the gated party does not get to write. Roles are defined once and built for whichever runtime runs them.

AI/02

Loop and queue processing

Unattended runs that survive the night. Message-driven pipelines with retry caps, quota parking that reschedules instead of burning retries, crash-safe redelivery, and success inferred from state rather than parsed from output.

AI/03

Inference gateways

One OpenAI-compatible endpoint over self-hosted engines and cloud providers. It holds the credentials so no application does, loads and evicts models by memory pressure, and refuses loudly instead of silently substituting a different model.

AI/04

Retrieval and knowledge

Ingestion, chunking and embedding pipelines feeding hybrid search, lexical and vector with recency weighting, over real corpora. Knowledge bases that agents consult before they re-derive what a previous run already paid for.

AI/05

Prompt-injection defense

A proxy in front of the model and its tools. Every input is deobfuscated and scored deterministically; a model may raise suspicion but can never clear it. Output is watched for persona drift and disclosure, and tool calls are gated to what the role is allowed to do.

AI/06

Evaluation and operations

Candidate models scored by replaying your own sessions, not a public benchmark. Usage and cost audited per client and per run. Metrics, error tracking and structured logs from the first deployment, because a system is built to be operated, not merely shipped.

Production LLM features we have shipped for clients include a provider-agnostic model adapter, vision-based image moderation, localized prompt templates, per-tenant rate limiting and token-usage auditing, in a charitable fundraising product. Ask and we will talk about what can be shared.

// 05 — projects

Projects

Some are public, some are being prepared for release, and some stay internal. Every one of them runs.

// 06 — services

What we do

Hands-on engineering for every stage of your system's lifecycle — from initial architecture through long-term maintenance.

Featured · most-requested SVC/01

System Architecture

We design backend systems that scale with your business. Domain modeling, service boundaries, data flow, caching strategies, and infrastructure planning — all documented and ready for implementation. Whether you're starting from scratch or restructuring an existing monolith, we deliver architectures that your team can maintain for years.

Deliverables: ADRs · C4 diagrams · runbooks Typical scope: 2–6 weeks Output: implementation-ready
SVC/02

Modern Development

Clean, tested PHP code built on Symfony, Doctrine, and API Platform. We build internal tools, REST APIs, third-party integrations, background processing pipelines, and admin dashboards. Every feature ships with tests, documentation, and CI/CD integration. We also prepare codebases for AI-assisted development — structured project specs, coding rules, and agent configurations so your team can use tools like Claude Code, Codex and OpenCode effectively.

SVC/03

Refactoring & Migration

Legacy systems hold businesses back. We modernize codebases incrementally where that pays — upgrading PHP versions, migrating from legacy frameworks to Symfony, extracting services from monoliths, replacing outdated patterns with current practice — and we say so plainly when the old code is not worth keeping and a rewrite is the cheaper path. Either way, no downtime.

SVC/04

Technical Audit

A thorough review of your codebase, infrastructure, and development practices. We assess security vulnerabilities, performance bottlenecks, architectural debt, and operational risks. This includes API stress testing and load testing — we simulate real-world traffic patterns to find breaking points, slow endpoints, and concurrency issues before your users do. You receive a prioritized report with concrete recommendations and effort estimates — not vague suggestions.

SVC/05

Rapid Engineering Sprint

When time is critical. A focused 48-hour engagement for urgent technical problems: production incidents, critical bug fixes, blocked deployments, or time-sensitive features. We assess the situation, propose a plan, and execute — with direct communication throughout.

SVC/06

Monitoring & Observability

Production systems need visibility. We set up logging, metrics, alerting, and health checks using tools like Grafana and Sentry. Know when something breaks before your users do — and have the data to fix it fast.

SVC/07

AI-Augmented Engineering

We don't just talk about AI — we use it every day. Claude Code, Codex and OpenCode are part of our workflow for code generation, refactoring, and review. We also prepare your codebase so AI tools actually work well with it: project specifications, architectural decision records, coding standards, and agent rule files (CLAUDE.md, AGENTS.md) that give AI the context it needs.

// 07 — process

How we work

A transparent, structured process from first conversation to delivery.

01stage / discovery

Discovery

We start with a technical conversation to understand your system, constraints, and goals. No sales pitch — just an honest assessment of what's needed.

02stage / proposal

Proposal

You receive a clear scope, timeline, and fixed price. We define deliverables upfront so there are no surprises. If the project isn't a good fit, we'll tell you.

03stage / execution

Execution

We work in short iterations with regular check-ins, using AI-assisted development to move fast without cutting corners. You have full visibility into progress through shared repositories, CI pipelines, and direct communication.

04stage / handoff

Handoff

Every engagement ends with documented code, knowledge transfer, and a clear path forward. Your team can maintain and extend everything we build.

// 08 — about

Founder-led engineering studio

Galvani is a small engineering studio in Prague with two halves that belong together: production systems, and the machinery around language models. Thirty years of services that carry real traffic — message-driven pipelines, APIs, Kubernetes, observability — and more than seven years inside the Mautic ecosystem as solution architect and plugin author.

Every project is led directly by the founder. No account managers, no handoffs to junior developers. When you work with Galvani, you get senior-level engineering from the first call to the final commit. We've helped startups ship their first production systems and established companies untangle years of technical debt.

We're early adopters of AI-assisted engineering. We use tools like Claude Code, Codex and OpenCode daily in production work — not as a gimmick, but as a genuine force multiplier. We know how to set up codebases, write specifications, and configure agent rules so that AI tools produce code that's actually production-ready. If you're looking to integrate AI into your development workflow, we can show you how it's done right.

We believe in honest communication, clean code, and building systems that last. If a project doesn't need us, we'll say so.

// 09 — contact

Get in touch

Tell us about your project. We will follow up to discuss the best next steps.

Based
Czech Republic · CET / UTC+1
Typical reply
within 1 business day
Channel
via the form opposite

We respect your privacy. Your information will only be used to respond to your inquiry.