Knowledge
Current beliefs on software engineering topics. These evolve as I write and learn.
AI Coding Agents
Using AI agents to write code โ guardrails, trust, and when to let them run.
Code Review
Architecture over style, fail-first, and what earns an LGTM.
Fitness Functions
Automated tests for architecture โ the missing layer between linters and unit tests.
Harness Engineering
Agent = Model + Harness. The fix is not a better prompt โ it's a better environment.
SDD (Spec-Driven Development)
Specs align teams on what to build โ they do not prescribe how to build it.
Severity-Gated Review
Classify findings by severity, use severity to gate progress โ the methodology for judging AI agent output
AI-Driven Development
How AI reshapes engineering โ conventions, rules, and the new role of engineers.
Documentation
Multiple layers, each in the right place, alive in the code.
Software Architecture
Modular monoliths, vertical slices, and screaming code.
Testing
The test pyramid, integration-heavy backends, and e2e for what matters.
Engineering Teams
Conventions first, knowledge sharing, and shipping fast with quality.
Organization Structure
Three types of architects, one type of member โ how constraints flow from leadership to execution.
API Design
Schema-first, consumer-driven APIs. GraphQL, REST, tRPC.
Code Review Patterns
Repeating patterns โ what to catch, when to block, and how to decide.
Databases
Naming, typing, and when SQL still wins.
Frontend
React, Next.js, Tailwind, and staying close to the framework.
Infrastructure
Managed services first, engineers focus on the product.
Observability
Structured logs, managed services, and why visibility enables everything else.
Tech Debt
Fix now if quick, keep when intentional, and what changes in the AI era.
Thinking Style
How I make decisions, evaluate tradeoffs, and what triggers skepticism.