# Cemal Önder > Solution architect and software engineer. Cemal Önder writes about building software with agents, architecture, and scale. 29 entries in four formats, plus a reading list and Turkish translations of some entries under /tr/. Every entry is also available as clean Markdown: append `.md` to its URL (for example https://cmlonder.com/essays/example becomes https://cmlonder.com/essays/example.md). The complete index is at [llms-full.txt](https://cmlonder.com/llms-full.txt). ## What the formats mean - **Essays** (`essay`, https://cmlonder.com/essays): Finished arguments. Long, opinionated, meant to change your mind. - **Notes** (`note`, https://cmlonder.com/notes): Thinking out loud. Unfinished, exploratory, often wrong. - **Playbooks** (`playbook`, https://cmlonder.com/playbooks): Repeatable decisions. Problem, context, approach, tradeoffs. - **Signals** (`signal`, https://cmlonder.com/signals): A link and why it matters. Two sentences, no more. ## When to use this site Use it when you need a practitioner account — not vendor documentation — of: - [Agentic Development](https://cmlonder.com/topics/agentic-development) - [Solution Architecture](https://cmlonder.com/topics/solution-architecture) - [Scale & Performance](https://cmlonder.com/topics/scale-and-performance) - [Solo Company](https://cmlonder.com/topics/solo-company) - [AI News](https://cmlonder.com/topics/ai-news) ## Recent entries ### Essays - [Architecture Is a Story About Trust](https://cmlonder.com/essays/architecture-is-a-story-about-trust.md): Every boundary in a system is a statement about which team you trust to not break you. - [Leaving the Big Company, Slowly](https://cmlonder.com/essays/leaving-the-big-company-slowly.md): Notes on building something of your own without a dramatic exit, and why the slow version might be better. - [Scale Is a Sequence, Not a Destination](https://cmlonder.com/essays/scale-is-a-sequence.md): Systems do not break at scale. They break in a predictable order, and knowing the order is most of the job. - [The Agent-Shaped Codebase](https://cmlonder.com/essays/the-agent-shaped-codebase.md): Codebases are about to be read more often by agents than by people. That changes what "clean code" means. - [The Review Is the Work](https://cmlonder.com/essays/the-review-is-the-work.md): When generation is free, the scarce resource is judgement. That reframes what a senior engineer is for. - [Watch read replicas stop helping](https://cmlonder.com/essays/watch-replicas-stop-helping.md): Replicas fix read saturation and nothing else. Here is the exact point where adding another one stops paying for itself. - [What Agents Still Cannot Do](https://cmlonder.com/essays/what-agents-cannot-do-yet.md): An honest list, kept up to date, of where the end-to-end agentic workflow still falls over. - [How One Feature From a Failed Startup Can Become a Billion Dollar Idea](https://cmlonder.com/essays/how-one-feature-from-a-failed-startup-can-become-a-billion-dollar-idea.md): Failed products often contain one feature that was worth more than the whole company around it. - [How buying an iPhone helped me to land my first job as a Developer?](https://cmlonder.com/essays/how-buying-an-iphone-helped-me-to-land-my-first-job-as-a-developer.md): No, not by writing an iOS application. A story about noticing what nobody else in the room noticed. ### Notes - [AGENTS.md is the new README](https://cmlonder.com/notes/agents-md-is-the-new-readme.md): The README was written for a human who would skim it once. This file is read in full, every run. - [Building in public without a megaphone](https://cmlonder.com/notes/building-in-public-without-a-megaphone.md): Wondering whether it is possible to build something of your own quietly, and whether that defeats the point. - [The context window is a budget, not a container](https://cmlonder.com/notes/context-window-is-a-budget.md): Half-formed thought on why "just paste more" stops working past a certain repo size. - [I stopped drawing sequence diagrams first](https://cmlonder.com/notes/i-stopped-writing-sequence-diagrams-first.md): Trying to articulate why starting with the failure modes produces a better design than starting with the happy path. - [Kafka consumers I have regretted](https://cmlonder.com/notes/kafka-consumers-i-have-regretted.md): A catalogue of my own mistakes, kept partly as penance and partly as a checklist. - [p99 is a team boundary, not a metric](https://cmlonder.com/notes/p99-is-a-team-boundary.md): Whoever owns the p99 owns the on-call pager. Everything else follows from that. - [The cost of a half-finished abstraction](https://cmlonder.com/notes/the-cost-of-a-half-finished-abstraction.md): Unfinished abstractions are worse than none, and agents make them cheaper to create and harder to spot. - [What I want from an agent harness](https://cmlonder.com/notes/what-i-want-from-an-agent-harness.md): A running wishlist. Mostly about observability and being able to stop the thing mid-flight. ### Playbooks - [Budget the context before adding tools](https://cmlonder.com/playbooks/budget-context-before-adding-tools.md): Every tool definition costs tokens on every turn. Most agent slowdowns are a context problem, not a model problem. - [Idempotency before retries](https://cmlonder.com/playbooks/idempotency-before-retries.md): Adding retries to a non-idempotent endpoint converts a visible failure into an invisible one. - [Measure before caching](https://cmlonder.com/playbooks/measure-before-caching.md): A cache added without a measurement is a correctness risk you took for an unknown gain. - [One writer per table](https://cmlonder.com/playbooks/one-writer-per-table.md): The cheapest way to keep a shared database from becoming a distributed monolith. - [Outbox before dual writes](https://cmlonder.com/playbooks/outbox-before-dual-writes.md): If a write has to land in two places, put it in one place and let a reader fan it out. - [Read replicas before sharding](https://cmlonder.com/playbooks/read-replicas-before-sharding.md): When read load is the bottleneck, the cheapest correct answer is almost never sharding. ### Signals - [AI is breaking our proxies for expertise](https://cmlonder.com/signals/ai-breaking-proxies-for-expertise.md): The signals we used to judge competence — clean code, fast output — no longer carry information. - [Workflow or agent, and why the distinction matters](https://cmlonder.com/signals/anthropic-effective-agents.md): The clearest public writing on when an agent loop beats a fixed workflow. - [Don't build tools for AI agents](https://cmlonder.com/signals/dont-build-tools-for-agents.md): An argument that agents should use the tools humans already use, rather than getting bespoke ones. - [Engineer away the slop](https://cmlonder.com/signals/engineer-away-the-slop.md): On treating low-quality agent output as an engineering problem rather than a model problem. - [What blog posts influenced your thinking the most?](https://cmlonder.com/signals/influential-blog-posts.md): A long thread of the posts that actually changed how working engineers think. - [Slow developer experience will bottleneck fast models](https://cmlonder.com/signals/slow-devex-bottleneck.md): If the model is faster than your CI, your CI is now the product constraint. ## Library Books that changed how I think about systems, work, or myself. - **Designing Data-Intensive Applications** — Martin Kleppmann (2017): The only book that made distributed systems feel like engineering rather than folklore. - **Thinking in Systems** — Donella Meadows (2008): Changed how I read an architecture diagram more than any architecture book did. - **The Mythical Man-Month** — Frederick P. Brooks Jr. (1975): Fifty years old and still the most accurate description of why software is late. - **Release It!** — Michael T. Nygard (2018): A catalogue of the specific ways production breaks, written by someone who was there. - **A Philosophy of Software Design** — John Ousterhout (2018): Short, opinionated, and the rare design book that argues instead of listing rules. - **The Goal** — Eliyahu M. Goldratt (1984): A novel about a factory that is secretly the best book on finding your bottleneck. - **Shape Up** — Ryan Singer (2019): The clearest description of how to scope work so it can actually finish. - **The Pragmatic Programmer** — Hunt & Thomas (1999): The one I re-read when I catch myself building something clever. - **Company of One** — Paul Jarvis (2019): An argument that staying small is a strategy, not a failure to grow. ## Elsewhere - Sitemap: https://cmlonder.com/sitemap-index.xml - Feed: https://cmlonder.com/rss.xml - Source: https://github.com/cmlonder