TASARIM ÖNİZLEMESİ · Hikâyeler, cihazlar, kariyer örnekleri ve metrikler örnek içeriktir.

Architecture work, written up the way I actually did it.

Most of what I build has no screen to screenshot. These notes focus on the business context, the constraints that mattered, the decisions and what they cost, and how the systems behaved once real traffic arrived.

Years
Backend engineering & technical architecture
Focus
Event-driven backends, service boundaries, data ownership, platform operations
Typical stack
.NET, Kafka, PostgreSQL, Kubernetes, Redis

How I draw a system

Four layers, two kinds of lines, and a legend that fits on one line. Solid lines are requests, dashed lines are events. If I cannot say which one a line is, the diagram is not finished.

See it applied in the case studies
ClientsEdgeServicesEventsWebMobilePartnerAPI gatewayOrdersDBStockDBBillingDBEvent logrequestevent
System map template. Four layers, two kinds of lines.

What a case study here covers

Business context. Who needed what, and why now.

The architectural problem. The thing the current system could not do.

Constraints. Teams, budget, legacy, regulation, release cadence.

Decisions and trade-offs. What was chosen, what was rejected, and what it cost.

System boundaries. Who owns which data and which events.

Operations and outcomes. How it ran, what broke, what I would change.

Case studies

Names and figures are anonymised. mock content

Retail and e-commerce, 2024 to 2025

Rebuilding order orchestration for a multi-brand retailer

Four storefront brands shared one order service that had grown for nine years.

.NET 8KafkaPostgreSQLRedisKubernetes on a private cloud
OrdersStockPricingEvent logBillingShippingSearch
Orders, stock and pricing publish to one event log; billing, shipping and search read from it.

Decision

An event log as the only integration contract

Trade-off

Stock is eventually consistent.

Outcome

4 → 1 deploy approvals needed for a brand-level change

PostingsReplayReports
Postings are only ever appended. Reports are rebuilt by replaying them.

Fintech, 2023

A ledger service that regulators could audit without asking us

Append-only postings, deterministic replay, and a reporting read model rebuilt nightly. The hard part was convincing teams to stop updating balances in place.

Event sourcingCQRSPostgreSQL
LegacyCDCStreamTrackingBillingno writes
Change data capture feeds a stream. Nothing writes back to the old schema.

Logistics, 2022

Moving a courier platform off nightly batch into near real time

Change data capture from the legacy database, a thin streaming layer, and a strict rule: nobody writes to the old schema from the new side.

CDCKafka ConnectStrangler fig
RepoBuildGitOpsClusterLogs · Metrics · Traces
One golden path from repo to cluster, with logs, metrics and traces on by default.

Platform, 2021

An internal platform so teams could stop writing their own deployment scripts

Golden paths on Kubernetes, paved roads for observability, and a deliberate choice to make the easy path the compliant one.

KubernetesGitOpsOpenTelemetry
UserEdge cachehitmissFeaturesRecs
Most requests end at the edge cache; a miss reads from the feature store.

Media, 2020

Personalisation at the edge without a data lake rewrite

A small feature store, cache-first delivery, and a boundary that kept the recommendation team from blocking the content team.

RedisgRPCFeature flags

Architecture notes

Shorter pieces on decisions that recur across projects. Each is a position I hold now, with the reasoning, so future me can argue with it.

More in the blog, under Software architecture
  • ADROutbox before you need itWhy I add the outbox table on day one of any service that publishes events.Decision record
  • ADROne database per service, enforced by credentialsBoundaries that live in a diagram erode; boundaries that live in IAM do not.Decision record
  • MapA system map template I keep reusingFour layers, two kinds of arrows, and a legend that fits on one line.Template
  • NoteWhat “operational concerns” actually means in a design reviewA checklist of the questions that only get asked after the first incident.Checklist