Case Studies

Governing AI adoption in engineering

Context
AI coding tools and MCP connectors were spreading team by team, with no shared standards or approval path in a regulated environment.
Constraint
Engineers could not be slowed down, and adoption could not be blocked.
Action
Set up a hub-and-spoke AI Guild with champions inside engineering teams and a shared skills library. Built a tool and connector registry with an approval process, run with Security. Introduced an AGENTS.md and CODEOWNERS standard across the codebase and a framework to measure adoption.
Outcome
AI adoption has an owner, an approval path and a metric. Repositories are readable by agents, and responsibility is explicit.

From release events to predictable delivery

Context
Gitflow with bi-weekly releases created manual coordination, release stress and scaling risk as the organization grew.
Constraint
Product velocity could not slow down.
Action
Moved to trunk-based development with feature flags, lightweight quality gates and shared ownership standards.
Outcome
Bi-weekly release trains gave way to routine shipping behind flags. Risk became measurable.

Incremental architecture without rewrites

Context
Structural limitations reduced iteration speed and increased coupling.
Constraint
A rewrite was not viable.
Action
Defined an incremental evolution path with explicit boundaries aligned to roadmap milestones.
Outcome
Architecture improved steadily while maintaining business continuity.

Performance as an organizational discipline

Context
Performance degradation accumulated as features expanded.
Constraint
Feature velocity had to remain high.
Action
Introduced performance budgets, profiling standards and monitoring integrated into delivery workflows.
Outcome
Performance discussions shifted from opinion to data. Widget LCP dropped from 8s to 4s in 6 months through async re-architecture and direct vendor collaboration. A production SSR memory leak in the Nitro runtime, found through observability, became the start of Node.js runtime-aware code review.

Secure embeddable flows in untrusted environments

Context
Widgets operated inside partner-controlled environments.
Constraint
Host environments could not be trusted.
Action
Implemented isolation boundaries, explicit messaging contracts and backend-aligned recovery mechanisms.
Outcome
Integration reliability improved, security posture strengthened, support load decreased. The widget grew into a core B2B product for hardware wallet and exchange partners, 19% of transaction volume.

Background

Web developer since 2019, then Team Lead, System Architect and Head of Frontend, where I scaled the team from 4 to 15 engineers with ~90% offer acceptance. Now Solution Architect, covering architecture consistency and AI adoption across product streams.

{ "My primary value lies in architecture, governance and leadership rather than specific frameworks": { " Stack": "Vue, Nuxt and TypeScript, with backend context in PHP and Symfony." }, "items": [ { "label": "AI-Augmented Engineering", "content": { "Claude Code": { " Skill design": { " Agentic workflows": { " Agent-ready repositories (AGENTS": { "md, CODEOWNERS)": { " Tool and connector governance": { " The thesis": "predictable AI output is an architecture problem, not a prompting trick - design responsibility boundaries, not rules." } } } } } } } }, { "label": "Architecture", "content": "C4 modelling. ADRs. Threat modelling. AWS. System design across frontend, backend and infrastructure." }, { "label": "Frontend", "content": "TypeScript. Vue. Nuxt. SPA, SSR and SSG architectures. Performance engineering." }, { "label": "Backend context", "content": "PHP. Symfony. API design. Security constraints. Integration patterns." }, { "label": "Engineering systems", "content": "CI/CD design. GitLab Pipelines. GitHub Actions. Trunk-based development. Quality gates. Monitoring." } ] }