Agency · Platform architecture
Karakorum Technologies
Architecting a modern engineering agency on enterprise-grade foundations — strictly typed, fully server-rendered, built to hold strict SLAs.
Role
Founder · Platform architect
Period
2024 — present
Source
Client-confidential
01 — Context
Enterprise clients arrive with the same shape of problem: a business process that has outgrown spreadsheets and a half-maintained legacy app, a hard deadline, and a compliance expectation nobody wants to put in writing. They need delivery that is technically rigorous and still fast.
The constraint that shaped everything: a small team cannot afford a different architecture per client. One foundation had to absorb wildly different domains without being rewritten each time.
02 — Architecture
A strictly layered ASP.NET Core core, with the domain isolated from every infrastructure concern. Clients are interchangeable; the contract between them and the API is the only thing that matters.
Clients
Angular SPA
internal tools, ERP
Next.js SSR
public, SEO-critical
ASP.NET Core API
API / Controllers
Application · CQRS
Domain
Infrastructure · EF Core
Data & platform
SQL Server
system of record
Redis
read cache
Azure Storage
blobs, exports
Request flow — every client talks to one versioned contract; the domain never imports infrastructure.
03 — Decisions & trade-offs
Modular monolith over microservices
Bounded contexts inside one deployable. Cost: no independent scaling per module. Benefit: a two-person team can still reason about a release, and there is no distributed-transaction tax on day one.
CQRS only where reads and writes diverged
Applied to reporting paths, not to CRUD. Cost: two shapes of code in one solution. Benefit: heavy report queries stopped competing with transactional writes.
Server-rendered public surface, SPA internals
Next.js where crawlers matter, Angular where they don’t. Cost: two front-end toolchains to maintain. Benefit: each surface is optimised for the thing it is actually judged on.
04 — Impact
99.9%
Availability held against contracted SLA
< 200ms
API response time at the 95th percentile
3
Platforms delivered on the shared foundation
- Maintained strict SLAs across concurrent client engagements.
- One foundation reused across domains without a rewrite per client.
- Built lasting enterprise partnerships on predictable delivery.
Want the deeper version?
Source and live demos are client-confidential, but I’m happy to walk through the architecture, the migrations and the decisions that didn’t work on a call.