Principles
These are not universal answers. They are ideas I use to think more clearly before choosing a technology.
Design from purpose
A useful architecture begins by understanding whom it serves, what problem it changes, and which decision it must enable.
- Technology follows intent
- Trade-offs are made visible
- Clarity is part of the design
Evolve incrementally
Enduring systems are rarely born complete. They learn, adapt, and improve without turning every change into an all-or-nothing bet.
- Small changes with fast learning
- Reversible decisions where possible
- Progress before perfection
Operate responsibly
Building also means caring for what happens next: security, resilience, observability, and operations people can understand.
- Design for difficult days
- Make what matters observable
- Treat operations as part of the product
Efficiency as a creative constraint
Cost, complexity, and energy are not final details. They are boundaries that can lead to simpler and better solutions.
- Use only what creates value
- Remove accidental complexity
- Optimize without losing purpose
Building with AI
AI stopped being autocomplete and started doing the work. That does not remove judgement: it changes where judgement is needed. These are the three ideas I work with today.
AI-DLC: AI executes, people decide
AI-DLC (AI-Driven Development Life Cycle) organizes AI-assisted development into traceable phases—from intent through requirements, design, construction, and operation—with an approval gate before each step forward.
- An explicit work plan instead of scattered prompts
- A person approves at the end of every stage
- Every decision is recorded and can be audited
Kiro: the spec as the unit of work
With Kiro the starting point is not a chat, it is a specification: requirements, design, and tasks before any code is generated. Steering captures the repository conventions once, and hooks take care of the repetitive parts.
- Specify before generating
- The project's conventions, written down once
- Automations triggered by repository events
What AI does not decide
Agents write a lot of code very quickly, and that makes the decisions we cannot delegate more valuable, not less: the boundaries of the system, the trade-offs we accept, and what we are willing to maintain for years.
- Trade-offs are still human
- Reviewing is part of the work, not a formality
- Speed without direction only accumulates debt