Consulting

The modeling behind these tools, applied to your systems

Every tool on this site is a working demo of an enterprise software pattern — and the same domain-driven modeling is what I bring to client work. No slideware: each offering below points at code you can read and a tool you can use right now.

  • Domain modeling & architecture review

    Find the model hiding in the mess: event-storm the domain, pick the right archetype, and draw module boundaries that a build can enforce.

    For teams that

    are adding features against a codebase that fights back, where every change ripples further than it should.

    What you get

    • Event-storming and a documented domain model in your own vocabulary
    • An archetype and bounded-context map, reusing patterns instead of inventing them
    • A one-way layered dependency rule enforced by a fitness function that fails CI — not a wiki page

    See the patterns running live

  • Event-sourced & CQRS systems

    Append-only ledgers, aggregates rebuilt by replay, projections kept in the same transaction, and boundaries that stay correct when the network retries.

    For teams that

    need an audit trail, temporal queries, or a "how did we get to this number?" answer that a mutable row can never give.

    What you get

    • Aggregates modeled as event streams with commands validated against replayed state
    • Read models / projections maintained transactionally alongside the write side
    • Idempotent write boundaries that dedupe on external event ids

    How the GTD tool does it

  • Secure SaaS platform build

    A production SaaS from account to invoice: JWT auth, entitlement-gated features, billing modeled as an accounting ledger, and a green push-to-deploy pipeline.

    For teams that

    have a prototype that works on one laptop and need the account, billing, and delivery layers that make it a business.

    What you get

    • Party-archetype accounts with role and entitlement gating at a single service boundary
    • Subscription billing modeled as an idempotent, append-only ledger with verified webhook signatures
    • CI/CD with typecheck, tests, production build, and a post-deploy parity gate on every push

    The ledger pattern in the open

  • Legacy state untangling

    Turn a tangle of boolean flags into explicit states with named transitions, illegal moves refused at the domain layer, and invariants the database itself upholds.

    For teams that

    have a lifecycle — orders, approvals, subscriptions — smeared across flags nobody trusts to be consistent.

    What you get

    • The implicit state machine made explicit, with a unit test around every transition
    • Invalid transitions rejected in the domain before they reach storage
    • Key invariants backed by database constraints, not just application code

    The Pomodoro state machine

How engagements work

Most start with a short, fixed-scope review — a few days to model the domain and map the real problem — before any longer build. Scope and pricing are set per engagement once the shape of the work is clear, so you are never buying a black box. The portfolio shows the kind of systems this produces.

Have a domain that deserves a real model?

Tell me what your system is fighting — the tangled lifecycle, the balance that drifts, the prototype that needs to become a product — and we’ll scope the smallest first step.

vteh.extratechsolutions.com

Services — Consulting — stop.procrastin.ar