How I work

Strong fundamentals.
Amplified by AI.

15+ years of engineering fundamentals are what make AI output production-ready. I use AI agents to move faster, and I set up the codebase so they stay reliable. A person still reviews every change.

The foundation

15+ years of engineering fundamentals

I know what good looks like, so I can guide agents and catch what they get wrong.

Architecture and design

Clean architecture, design patterns, and SOLID. I've moved a monolith to microservices and designed serverless services on AWS.

Security by default

Least-privilege access, OAuth 2.1, JWT, and audit trails. I've brought a Secure Development Lifecycle into a team and fixed access-control flaws in a shipped product.

Quality across the lifecycle

Unit and integration testing, feature flags, testing with real users, analytics, and audit trails. Shipping is the middle, not the end.

CS fundamentals

Data structures, algorithms, and debugging down to the right layer, from C/C++ on retail hardware to APIs and the browser.

Amplified by AI

How I make AI reliable

I set up the codebase so agents get it right more often, plus one rule that never changes.

  1. 01

    Context agents can read

    Conventions, architecture notes, and project instructions written down where agents look for them. Agents stop guessing how things are done here, and their code fits the codebase.

  2. 02

    Skills for repeat work

    Claude Code skills that capture how the team does recurring tasks, step by step. Every agent run follows the same proven path instead of improvising.

  3. 03

    Agent-ready work

    Tickets with clear scope, affected files, and acceptance criteria. When the task is well defined, the first draft is far closer to done.

  4. 04

    Tools and guardrails

    MCP servers that give agents safe access to real tools and data, read-only by default. Checks agents can run on their own work before a person ever looks at it.

  5. 05

    A person owns the result

    Agents draft, I review and test, and I decide what ships. A good setup means fewer corrections, not fewer reviews.

A real example

Linear Issue Enricher

Agent-ready work in practice. A Claude Code plugin I built and open-sourced. It scores a Linear ticket for agent-readiness, fills the gaps from the codebase, and writes a spec. A person checks it before anything goes back to Linear.

See the code on GitHub→
Principles

What I hold to

Ship the smallest safe version first

Read-only before write access. Feature flags and real-user testing before launch. Then expand.

Reuse before building

Build on the auth, tools, and components that already exist. Less new code, less risk.

Fix it at the right layer

I fix bugs where they start. I once proposed a new API field instead of having the frontend guess.

People stay in charge of AI

AI drafts and suggests. A person reviews, tests, and approves. AI-written code gets the same bar as mine.

Start from data

Team feedback, analytics, and funnel tracking show what to build first and whether it worked.

Lift the team

Fully remote and async, so I write things down, and I turn workflows that work into tools the whole team can use.

Daily tools
Keep reading

Want more detail?

Career story Six companies over 15+ years, one line each. Work My work at six companies, plus open source and side projects.
Get in touch

Say hi

Questions about my work or building with AI? Happy to chat.