Skip to content

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