The home of Fabian Meyer on the web: who I am, what I build, and where I speak about agentic engineering.
fmeyer.dev · Labs · Speaking · hello@fmeyer.dev
fmeyer.dev is my personal site and portfolio. I'm a Staff Agentic Engineer at Cordes & Graefe KG, and my work is about moving engineering organisations to agentic engineering: new ways of working, agent-ready tooling, spec-driven development, and the coaching that makes it stick.
The site answers three questions quickly:
- Who is this? What I focus on right now, and where I've worked.
- What have they built? Hands-on projects and experiments, each written up as a short case study.
- Where can I hear them? Talks, workshops, and courses, with slides and resources.
- Organisers and teams looking for a speaker or workshop on agentic engineering and spec-driven development.
- Engineering leaders who want to see how I approach moving a company to agentic engineering.
- Engineers curious about the tools and workflows I build and use every day.
- Recruiters and collaborators who want a clear, current picture of my work.
A hero with an animated "agent session" terminal that plays through the spec → code → verify loop I teach. Below it: current focus areas, experience, a featured lab, and recent talks.
Projects built outside day-to-day product delivery. Each lab is written as a small case study, challenge → approach → next steps, with status, tags, and links to the demo and source. Current labs include:
- Pladder: on-device push-to-talk dictation for macOS, built for prompting coding agents.
- Habit Tracker: a local-first habit app built end to end by a seven-stage agent software factory.
- Good Vibes Only: Claude Code plugins that take care of the annoying parts of long agent runs.
Talks, workshops, and courses on agentic engineering. Each talk has its own page with the abstract, a session spec sheet (event, date, room, format, level, language), and resources such as slides. Upcoming sessions are flagged automatically until their date passes.
The site is small, but held to a high bar. These are the non-negotiables:
- Fast. Statically generated, with no content hidden behind JavaScript. Above-the-fold animations are CSS- and transform-only so they never delay the largest paint.
- Accessible. Targets WCAG 2.1 AA: skip link, proper landmarks, semantic lists and navigation, meaningful screen-reader link text, contrast-checked badges, and full
prefers-reduced-motionsupport. - Findable. Per-page SEO metadata, canonical URLs, generated social preview images, sitemap, and schema.org structured data (Person, ProfilePage, WebSite) for rich results.
- Dark-first, light-ready. The design is built for dark mode and fully themed for light mode.
- Content over code. Adding a lab or a talk means adding one YAML file. No component changes needed.
All content lives in content/ as YAML and is validated against the schemas in content.config.ts.
| To change… | Edit… |
|---|---|
| Hero, focus areas, experience | content/index.yml |
| Labs page intro and links | content/labs.yml |
| A lab | add or edit a file in content/labs/ |
| Speaking page intro | content/speaking.yml |
| A talk | add or edit a file in content/speaking/ |
The filename becomes the URL: content/labs/pladder.yml → /labs/pladder. See CLAUDE.md for the full field reference for labs and talks, including how to bundle slide PDFs.
Requires Node.js 22 and pnpm 10.
pnpm install
pnpm dev # http://localhost:3000Other scripts:
| Command | What it does |
|---|---|
pnpm generate |
Build the static site (used for deployment) |
pnpm preview |
Serve the generated output locally |
pnpm lint / pnpm lint:fix |
Run ESLint / fix what it can |
pnpm typecheck |
Run Nuxt type checking |
Copy .env.example to .env if you need to override the public site URL or mark a build as noindex for previews.
Every push and pull request runs lint, typecheck, and a build in GitHub Actions. Pull requests get their own preview deployment, and merges to main go straight to production. Renovate keeps dependencies current.
Nuxt 4 · Nuxt UI · Nuxt Content · Nuxt Image · Nuxt SEO · motion-v · TypeScript · Tailwind CSS v4
MIT © Fabian Meyer