# About · System Architect and Staff Engineer

> I have been building software since 2008 and work as a Staff Engineer today. Who I am, what I decide by, and what each section of this site is for.

- Role: System Architect
- Location: Istanbul, Türkiye
- Last updated: 2026-08-22
- Source: https://www.muhammetsafak.com.tr/en/about/
- Language: en-US
- Author: Muhammet Şafak

---
## I Build the System, and I Write Down Why

My name is Muhammet Şafak. I have been building software since 2008, and today I work as a Staff Engineer on the R&D team of a technology company. Thinking about and designing high-traffic architectures is the part I enjoy most. I am loyal to the problem, not to the language. What I know, what I learn and the real-world cases I run into, I share in several places — this site first of all.

This page tries to explain both who I am and why this site exists.

## What I decide by

I have been at this a long time and plenty has changed; the ones below have not. Each one has a cost, and I have written that down too.

- **I choose what can be changed tomorrow** — The thing that finishes fastest today is rarely the thing still standing a year later. When the two conflict I take the second one; the price is a slower first delivery.
- **I write down the reasoning** — Making the call is half the work; writing down why it was made is the other half. An unrecorded reason turns into code nobody can defend six months later.
- **I name the cost** — Every choice comes with a bill. A recommendation that hides its bill is not advice, it is sales copy. Nothing here is a cure-all.
- **I am loyal to the problem, not the language** — PHP, Go, Python and JavaScript all stay on the table; the problem decides which one opens, not my habit.
- **I say so when I do not know** — If I have a limit on a topic, I do not hide it. Seniority is not knowing every answer; it is drawing the line in the right place.

## Where I go deep

The subjects I have read into, measured, and shipped production work with. On anything outside this list, I will tell you I do not know.

- **Developer tooling and CI** — Tools that do one thing well, and the pipeline that runs them. A green CI is not enough; what it proves has to be written down too.
- **Event-driven and messaging** — The event itself carries the contract between services; queues, retries and idempotency are the bill that comes with it.
- **AI-assisted development** — I keep an LLM inside the development loop — at the point where I review the decision it produced, not the code. The real work is knowing what the model does not know.
- **Automation and data processing** — Every manual repetition is an error budget. Collection, transformation and scheduled jobs; what separates a small script from a durable pipeline is how it handles failure.

## How did I get here?

I started freelancing in 2008. For fourteen years I delivered corporate sites, e-commerce systems and integrations. That is where I learned the commercial side of the work, what a delivery date actually means, and that no system survives without an owner.

From 2012 I was also on the core team of a vertical search engine: an index of tens of millions of documents, a crawler measured in millions of URLs an hour, and query latency dragged from seconds down to milliseconds. That is where I first saw what “scale” means, bill included.

Since 2022 I have been full-time at a technology company — first as a Senior Software Developer, and since 2025 as a Staff Engineer. The job is no longer only writing code: designing the microservice and event-driven architecture of a high-traffic platform, acting as the technical compass on critical design calls, and putting product strategy and technology vision on the same table. Over the same period I mentored small teams on TDD and DDD.

I did not learn software at school — my degree is in history. That started as a gap and turned into a habit: read everything at its source, and note down what you read with the date on it. That habit explains a fair amount about what this site looks like.

Company names, dates and the skill list live on the résumé; this page is about the work itself.

[See the résumé](https://www.muhammetsafak.com.tr/en/resume/)

## What lives where

This site is not a showcase, it is a ledger. It is not one pile either: each section answers a different question and none of them does another’s job. Your question decides where you should go.

- **Blog** (https://www.muhammetsafak.com.tr/en/blog/) — How did I build this? A hands-on development journal, dated from 2014 to today. Every post stays inside the knowledge of the year it was written; I do not go back and correct the past with what I know now.
- **Labs** (https://www.muhammetsafak.com.tr/en/labs/) — What am I building, and what does it do today? The development centre. Everything listed works today and none of it is final; whatever reaches its final form moves to the portfolio and leaves its record behind.
- **Research** (https://www.muhammetsafak.com.tr/en/research/) — Which question did I chase, and what did I find? The research centre. Measurements, analyses, surveys and reviews — each record states its method, its sources, and how far I trust the result.
- **Portfolio** (https://www.muhammetsafak.com.tr/en/portfolio/) — What shipped? Work that actually went live: what it does, who it is for, and whether it is still alive. A record, not a pitch.

### The line is drawn by mode, not by person

Everything written here is dated and first-person — “I did this, on this date, this way.” sade.dev speaks without a date and without an author — “this is how it is done.” The same topic can live in both; one carries the finding, the other the principle. When something here touches system-level depth, I do not write that depth — I link to it.

- https://sade.dev

## About this site

Built with Astro, Tailwind CSS and MDX, published on Cloudflare. The content does not live in a database but inside the git repository, as markdown.

No accounts, no dashboard, no forms and no ads — none of them planned either.

If you have a question, an offer, or plain curiosity: no form, straight to email.

## What AI does to these posts

AI is not here to write the text; it is here to anonymise what I wrote and clean up the language. Every post I publish today goes through three steps.

- **Draft** — I pick the topic, and I write the text from cases I actually hit in production. The draft cannot be published as it stands: whatever makes the customer, the system or the data recognisable is still in it.
- **Scrubbing** — AI anonymises the text: it generalises anything recognisable without breaking the example. Typos and clumsy sentences are fixed in the same step.
- **Final review** — Before it goes live I read the text line by line, fix whatever needs fixing and give it its final shape.

This is where AI does not reach: the topic, the claim, the real examples and the measurements are mine. The machine works on the language layer, not the decision layer.
