Sertaç Yıldırım field notes

Writing about how the things that look good in the book actually work in the field.

Notes on Scrum ceremonies, team leadership and software engineering. Every post follows the same skeleton: what it is for → how it should work → how it breaks → checklist. Practice, not theory.

105 posts · 3 sections · available in Turkish and English

01 — 22 posts

Scrum and Process

The ceremonies are a chain: broken refinement makes planning drag, broken planning turns the daily into a status report. That is why these are written to be read in order.

See all →
SCRUM

Being Agile vs Doing Scrum

Agile does not end the chaos; it makes it visible. That is why teams can run every ceremony and still not be agile.

21 September 2025 · agile · manifesto · scrum
SCRUM

Scrum or Kanban: Not a Methodology, the Way Work Arrives

We took 9 items into the sprint and finished 4; 23 requests came from outside in the same two weeks. A decision table by how work arrives, and a rotating one-person Kanban lane.

28 September 2025 · kanban · hybrid model · unplanned work
SCRUM

Backlog Refinement: Kill Bad Ideas Early

Refinement is a funnel, not a meeting. Back-of-the-envelope filtering and ROI in one shared currency.

1 October 2025 · refinement · roi · prioritization
SCRUM

Grooming: Not a Ticket Reading Session

The PO's job is not to read out what will be built, but to explain why it matters.

12 October 2025 · grooming · product owner · context
SCRUM

Sprint Length: Not Two Weeks, the Speed of Feedback

Two days of work reached the user after more than nine weeks. We tried one-, two- and three-week sprints for eight sprints each: ceremony load, review attendance and feedback per month.

18 October 2025 · sprint · review · feedback
SCRUM

Sprint Planning: Commitment, Not Estimation

Good planning is boring. If surprises show up, the preparation failed. Capacity math and the pull system.

26 October 2025 · planning · capacity · pull system
SCRUM

Story Points: Not Time, Uncertainty

Asked “how many hours is one point?”, I said “five and a half”; an epic planned for 1.5 sprints took 5. Points turned into hours, inflated velocity and six sprints of #NoEstimates.

2 November 2025 · story points · velocity · NoEstimates
SCRUM

Daily Standup: Synchronization, Not a Status Report

If what you did yesterday does not affect today, it does not matter. Walking the board, and the async option.

8 November 2025 · daily · standup · async
SCRUM

Sprint Goal: One Sentence, Not a Ticket List

On day eight, four person-days of work did not fit. We argued for 40 minutes and dropped the item the campaign needed. A goal is the one sentence that tells you what to drop.

16 November 2025 · sprint goal · scope decision · planning
SCRUM

Sprint Review: A Feedback Loop, Not a Demo Show

If nobody objects, nobody is listening. Silence is the worst signal.

23 November 2025 · review · stakeholders · feedback
SCRUM

Definition of Ready: A Conversation Trigger, Not a Gate

A story that was not ready ate a third of the sprint. The 14-item gate I built in response blocked the work for three sprints. A checkbox asks for a yes; a question asks for a name.

29 November 2025 · definition of ready · planning · dependencies
SCRUM

Retrospective: Tracked Actions, Not Wishes

Definition, owner, deadline — without all three it is a wish, not an action.

6 December 2025 · retro · kaizen · psychological safety
SCRUM

Epic, Story, Task: How to Break Work Down and the 8-Hour Rule

Why should a task never exceed one day? Six ways to cut work, walked through a real e-commerce returns project.

20 December 2025 · user story · task breakdown · 8 hours
SCRUM

Definition of Done: A Quality Contract, Not a Checklist

A story we called done wrongly rejected 14.5% of withdrawal requests for 26 hours. The three layers of a DoD, who changes it, and keeping the work open when it breaks.

28 December 2025 · definition of done · quality · release
SCRUM

Does Scrum Make Customers Happy?

Bringing the customer inside: from 1 project to 9, from 1 person to a team of 14. A real story from the field.

4 January 2026 · customer · ownership · growth
SCRUM

WIP Limits: Flow Control, Not a Restriction

Six people, nine open items, and only 8 of 11 cards done at sprint end. Little’s Law in practice, a limit put on the wrong column, and a flow limit of 4 that cut cycle time from 11 days to 4.5.

11 January 2026 · WIP limit · Little’s Law · flow
SCRUM

Mid-Sprint Work: A Budget, Not a Ban

A “no new work” rule did not stop the work; it moved it to WhatsApp. The interruption card, a measured 15% share, swapping when the budget runs out, and the only valid reason to cancel a sprint.

8 February 2026 · unplanned work · capacity · sprint cancellation
SCRUM

Product Owner: The Person Who Says No, Not a Ticket Writer

Seven items, all P1; 67% of sprint work came from outside the PO’s order. Putting ordering authority in writing, the stand-in PO mistake, and the line with the tech lead.

8 March 2026 · product owner · prioritization · backlog
SCRUM

Do You Need a Scrum Master? A Function, Not a Role

When our Scrum Master left, the daily grew from 8 to 19 minutes and blockers waited six days. How we shared the work, three things that failed, and a decision by team size.

5 April 2026 · scrum master · facilitation · roles
SCRUM

Cycle Time: Not Velocity, the Time Your Customer Waits

Velocity rose from 34 to 52 while the customer waited 47 days for a fix. Cycle time vs lead time, p85 instead of the average, and flow efficiency.

3 May 2026 · cycle time · p85 · flow efficiency
SCRUM

“When Will It Be Done?”: Not One Date, a Range of Probabilities

I said “27 March” and we went live on 5 May. Past throughput, a 20-line Monte Carlo, and how to explain “85% likely by this date” to management.

31 May 2026 · forecasting · Monte Carlo · throughput
SCRUM

Roadmap: Ordered Bets, Not a List of Dates

Our dated Gantt chart fell apart in the first quarter, and the one item that finished on time did not help. Now / Next / Later, with every item written as a bet with a hypothesis, a measure and a stop condition.

26 July 2026 · roadmap · bets · sprint goal
02 — 35 posts

Team Leadership

The human side rather than the process: hard conversations, performance, what replaced authority, and what a manager is actually for in the age of AI.

See all →
LEADERSHIP

Technical Strategy: A No List, Not a Slide Deck

Five months after a 40-slide strategy, the answer was “Which strategy?”. One page: diagnosis, policy, steps and what we will not do this year.

19 October 2025 · strategy · no list · prioritisation
LEADERSHIP

The Calendar: Focus Blocks, Not a Full Schedule

I cut meeting hours and focus time did not come back: what matters is not a full calendar but two-hour uninterrupted blocks.

9 November 2025 · calendar · focus time · meeting budget
LEADERSHIP

Engineering Metrics: A Compass, Not a Report Card

A per-person PR dashboard got gamed in six weeks. The four DORA metrics at team level: speed and stability side by side, a direction rather than a grade.

30 November 2025 · dora · lead time · metrics
LEADERSHIP

Platform Team: An Internal Product, Not Infrastructure

We built a platform team to end the waiting; six months later it had 63 open tickets. Golden path, internal customers and adoption rate.

13 December 2025 · platform team · golden path · internal product
LEADERSHIP

Remote Teams: Written Culture, Not Cameras

The decision was made at the coffee machine; the remote engineer spent two days coding for behaviour that no longer existed.

27 December 2025 · remote work · written culture · async decisions
LEADERSHIP

Reorgs: Choosing Communication Paths, Not Drawing Boxes

Three weeks after the reorg, the monthly statement job failed and its alert went to a team that no longer existed. An ownership map, not an org chart.

10 January 2026 · reorg · conway’s law · ownership
LEADERSHIP

How to Give Negative Feedback

Why does the sandwich fail? The event → impact → expectation pattern, with real dialogue.

17 January 2026 · feedback · hard conversations
LEADERSHIP

Can You Measure Performance With OKRs?

Tie a bonus to a target and people shrink the target. Why story points inflate, and what to read instead.

1 February 2026 · okr · performance · kpi
LEADERSHIP

New-Generation Leadership: Authority Is Gone, Now What?

The information monopoly ended, dependence ended. What replaced them, and the power of "I do not know".

14 February 2026 · leadership · authority · context
LEADERSHIP

A New Engineer’s First 30 Days: The First Production Change, Not Orientation

I said “read the docs for two weeks first”; the first production change shipped on working day 23, and 14 of those days were waiting.

28 February 2026 · onboarding · buddy · first production change
LEADERSHIP

AI or Leadership?

Writing got cheap, verifying got expensive. The junior learning path and the leader's changed job.

1 March 2026 · ai · leadership · juniors
LEADERSHIP

Squad, Tribe, Chapter, Guild: Choosing an Org Model in One Week

The first target handed to me in a meeting with the CEO. 52 conversations, a one-sentence diagnosis, and what we left out of the Spotify model.

7 March 2026 · spotify model · squad · org design
LEADERSHIP

One-on-Ones: An Early Warning System, Not a Status Meeting

Thirty minutes a week, and the agenda is theirs. Why "how is it going?" always returns "fine", and what to ask instead.

15 March 2026 · 1:1 · management · listening
LEADERSHIP

Developer to Manager: A Career Change, Not a Promotion

Promoting your best engineer can lose you twice. The right measure for how much code to keep writing.

29 March 2026 · management · transition · technical leadership
LEADERSHIP

Product and Engineering: The Same Table, Not the Other Side

The product manager gave a date and I quietly cut the scope: the person who knows the value drops scope, and the date comes from the estimate.

4 April 2026 · product manager · scope · estimates
LEADERSHIP

Delegation: Letting Go of the Outcome, Not Handing Out Tasks

Hand work over and then hover, and you have not delegated. Authority with responsibility, and the ten-minute trap.

12 April 2026 · delegation · micromanagement · trust
LEADERSHIP

Psychological Safety: Measurable Behaviour, Not Good Intentions

Saying "speak freely" does not do it. Who speaks first, how late bad news arrives, and how incident reviews kill it.

26 April 2026 · psychological safety · blameless · culture
LEADERSHIP

Letting Someone Go: The Last Step, Not a Surprise

I told them the decision and they said “This is the first time I hear this”: written expectations, a six-week plan, a short final talk, the team and access.

2 May 2026 · low performance · letting go · written expectations
LEADERSHIP

Conflict: Surface It, Don't Suppress It

Two senior engineers disagree on architecture and the team picks sides. Naming the conflict, separating ideas from people, and naming the decision owner in advance.

10 May 2026 · conflict · decisions · architecture
LEADERSHIP

Burnout and Load: Sustainable Pace, Not Heroes

The person who saves every sprint is a single point of failure. On-call load and the signs of quiet overwork.

24 May 2026 · burnout · on-call · sustainability
LEADERSHIP

When You Depend on Another Team: A Contract, Not a Favour

“Sure, we can do that,” they said; five weeks later our work was number 23 in their backlog. Dependency maps, written commitments and joint escalation.

30 May 2026 · dependencies · escalation · cross-team
LEADERSHIP

Growing a Team: Five People and Fifteen Are Not the Same Job

Past seven, communication paths multiply. When to split, Conway's law, and what "two pizzas" really says.

7 June 2026 · scaling · conway · team topology
LEADERSHIP

Managing Up: Setting Expectations, Not Filing Reports

When do you say "the sprint will slip"? The arithmetic of early bad news, and shielding versus hiding.

21 June 2026 · stakeholders · expectations · transparency
LEADERSHIP

Cancelling a Project: A Decision, Not a Failure

I stopped a seven-month project three months too late: kill criteria, telling the team, and really deleting the code.

28 June 2026 · cancelling · sunk cost · kill criteria
LEADERSHIP

Tech Lead: Not the Best Developer, the Owner of the Decision

I made our best developer the tech lead; three months later, 11 of 14 PRs were waiting for their approval.

12 July 2026 · tech lead · decision rights · roles
LEADERSHIP

When a Key Person Leaves: A Handover Plan, Not a Farewell

The only person who knew our reconciliation job resigned; I spent the first four of 30 handover days on a counteroffer, and we found the one line we missed 19 days later.

25 July 2026 · bus factor · handover · resignation
LEADERSHIP

Managing Managers: A System, Not a Team

Running skip-levels without undermining the manager, filtered information, and two teams applying one rule differently.

9 August 2026 · skip-level · manager of managers · consistency
LEADERSHIP

The Raise Conversation: Evidence, Not Bargaining

Why a counteroffer usually only delays the exit, what to say with no budget, and pay gaps at the same level.

23 August 2026 · raise · counteroffer · pay bands
LEADERSHIP

Not a Mentor, a Sponsor

Advice is not enough: a sponsor says your name in the room you are not in, gives you visible work and takes the risk.

6 September 2026 · sponsorship · visibility · career
LEADERSHIP

Staff Engineer: Scope of Impact, Not Seniority

The title changed, the calendar did not: a staff engineer’s job is to own the gap between teams.

13 September 2026 · staff engineer · impact · glue work
LEADERSHIP

The Bottleneck Is Review, Not Writing: Team Speed After AI

PRs per week went from 19 to 34 and delivered work stayed flat. The bottleneck moved to review: WIP limits, the 400-line rule, the “why” section and lead time.

22 September 2026 · team · code review · ai
LEADERSHIP

Postmortem: Change the System, Don’t Find the Culprit

A perfect six-page postmortem, and the same failure four months later. Where Five Whys breaks and why actions never close.

22 September 2026 · postmortem · root cause · incidents
LEADERSHIP

Technical Interviews: A Rehearsal, Not a Quiz

I asked a whiteboard tree question, the candidate got stuck, we rejected them; six months later they were writing the service we integrated with. A 90-minute real task from your own codebase, a fixed question set, notes written before the meeting, and the question AI changed.

23 September 2026 · interviewing · hiring · teams · assessment
LEADERSHIP

The Career Ladder: An Expectations Table, Not a Promotion

“When do I become senior?” I said “we’ll see, you’re doing well”; four months later that sentence came back in a resignation conversation. Three axes (scope, autonomy, impact), two tracks at the same height, and why a promotion is a recognition.

23 September 2026 · career · levels · promotion · expectations
LEADERSHIP

Technical Debt: The Same Queue, Not a Separate Backlog

We said “20% of every sprint goes to technical debt”; by sprint four it was zero and nobody cancelled the rule. Measuring debt by its interest instead of a percentage, three types of debt, and why not paying is a valid decision.

24 September 2026 · technical debt · prioritisation · backlog · refactoring
03 — 48 posts

Engineering

Concurrency, distributed systems, messaging, scaling and coding with AI — all with real incidents and code examples.

See all →
ENGINEERING

Build or Buy: Ownership, Not Cost

We said two sprints; it took seven weeks. The money ends in a draw. The decision comes from core work, the owner’s name and the exit cost.

4 October 2025 · build or buy · TCO · vendor
ENGINEERING

Rewriting: A Migration Plan, Not a Clean Slate

A five-month rewrite lasted four hours in production. Shadow runs, sorting differences, moving segment by segment, and when to switch the old system off.

1 November 2025 · rewrite · shadow traffic · legacy
ENGINEERING

SLOs and Error Budgets: A Negotiation Tool, Not a Target

Features or reliability? One number ended a 50-minute argument: 99.9% is 43 minutes a month, and when the budget runs out, feature releases stop for that service.

15 November 2025 · SLO · error budget · burn rate
ENGINEERING

Security Audits: Collecting Evidence, Not Paperwork

At 23:40 the night before the audit, four engineers were still taking screenshots. Once evidence became a side effect of daily work, most answers turned into a folder path.

25 January 2026 · audit · evidence · access management
ENGINEERING

LLM Latency: The First Token, Not the Average

3.4 seconds on the dashboard, an 11-second empty bubble on the customer’s screen. TTFT, tokens per second, streaming and a latency budget for the first word.

7 February 2026 · llm · latency · streaming
ENGINEERING

Logging Prompts: Safely, Not Everything

We logged every prompt for debugging and found 2,310 national ID numbers inside. We had put 91% of the IBANs there ourselves. Reduce at the source, mask before logging, 30 days, 6 people.

22 February 2026 · llm · personal data · masking
ENGINEERING

Race Conditions: Why Does Stock Go Negative?

Invisible in staging, catastrophic on sale day. Six fixes, with SQL examples.

14 March 2026 · concurrency · database · sql
ENGINEERING

Rate Limits and Fallback: A Plan, Not an Error

On an IPO morning our support assistant told one customer in three “I can’t help” for 38 minutes. RPM/TPM quotas, retries with jitter, the quality gap of a fallback, and four levels of graceful degradation.

21 March 2026 · rate limit · fallback · quota
ENGINEERING

Distributed Locks: Getting It Right

Six traps in a Redis lock, fencing tokens, and the fact that most cases need no lock at all.

25 March 2026 · redis · distributed · fencing
ENGINEERING

Leader Election: Who Does This Job?

Four copies, all running the health check. Leases, split-brain and fencing tokens.

11 April 2026 · leader election · lease · fencing
ENGINEERING

Prompt Cache: A Design Decision, Not a Discount

Same traffic, 2.5 times the LLM cost: the customer name had moved to the first line of the system prompt. The fixed prefix, hidden variables, hit rate and time to first token.

18 April 2026 · prompt cache · cost · latency
ENGINEERING

Worker Sharding: The Right Way to Split Work

Four workers, one at 100% CPU and three idle. Hot keys, rebalancing and ordering guarantees.

26 April 2026 · sharding · queues · partitions
ENGINEERING

How Pod Scaling Actually Works

Pods went from 4 to 24 and the system got slower. Why is CPU the wrong metric?

9 May 2026 · kubernetes · hpa · scaling
ENGINEERING

Token Dashboard: An Early Warning, Not an Invoice

The March invoice was $11,400 against a $4,000 budget, and the increase had started 25 days earlier. Four tags on every request, a daily budget and spike alert, the input/output ratio and the most expensive 1%.

16 May 2026 · token cost · cardinality · spike alerts
ENGINEERING

How Many Times Does a Message Arrive?

At-least-once, at-most-once and the exactly-once myth. Idempotency keys and dedup, with code.

24 May 2026 · idempotency · kafka · dedup
ENGINEERING

Queue Pathologies

Poison messages, DLQs, jitter, head-of-line blocking, reordering and backpressure — all five.

6 June 2026 · dlq · backoff · backpressure
ENGINEERING

Hallucination in Production: Field Signals, Not Evals

The eval set passed 48 of 50 questions, and the assistant told a customer the wrong commission. Five field signals and their precision, a number check, a weekly review and feeding errors back into the eval set.

13 June 2026 · hallucination · sampling · human review
ENGINEERING

Failure Modes

Thundering herds, cache stampedes, cascades, circuit breakers, gray failure and failover loss.

18 June 2026 · circuit breaker · cascade · failover
ENGINEERING

Distributed Transactions: Why 2PC Blocks and Saga Saves You

One leg filled, the other rejected. Compensating transactions and the escrow pattern.

4 July 2026 · saga · 2pc · compensation
ENGINEERING

The Model Changed Quietly: Drift, Not a Version

No deploy for nine days, same prompt, and the refusal rate went from 1.4% to 7.9%. Pinned snapshots, watching the output distribution, and 40 canary questions every morning.

11 July 2026 · LLM · drift · monitoring
ENGINEERING

The Dual Write Problem: Outbox, Inbox and CDC

The order was written but the event never published. Why atomic dual writes are impossible.

19 July 2026 · outbox · cdc · debezium
ENGINEERING

CQRS and Materialized Views

The portfolio screen takes 8 seconds, the order path needs 3 ms. Separating reads from writes.

1 August 2026 · cqrs · read model · consistency
ENGINEERING

CrewAI: Borrowed Assumptions, Not a Ready-Made Team

A three-agent prototype worked in one day, then missed a complaint with regulatory risk: the compliance agent never saw that sentence. The same job in plain code: 71k tokens instead of 186k.

8 August 2026 · CrewAI · agents · monitoring
ENGINEERING

Where Did the 200 ms Go?

Four services add up to 40 ms while the customer waits 240 ms. Correlation IDs and traces.

16 August 2026 · tracing · correlation id · observability
ENGINEERING

Vibe Coding Rituals

Why does three hours of work turn into two days of debugging? Ten habits that work.

30 August 2026 · ai · code quality
ENGINEERING

Monolith to Microservices: What Five Months Taught Us

The distributed monolith, double shipments, a cancelled order at the door, and the two services we merged back — with numbers.

11 September 2026 · microservices · event driven · strangler
ENGINEERING

Logs and Metrics in Microservices: One Screen, Not Six Log Files

Prometheus, Loki and Grafana on one screen. The four golden signals, structured logs, a 2.4-million-series cardinality accident, and why the CPU alert was useless.

12 September 2026 · observability · prometheus · loki · grafana
ENGINEERING

Don’t Say “I Have an SMS Code, I’m Safe”: Step-Up Authentication with Passkeys for Withdrawals

The JWT was valid and $4,800 went to a new IBAN. A challenge bound to amount and IBAN, a free margin re-check, and the back door on the “add passkey” screen.

16 September 2026 · security · passkey · webauthn · jwt
ENGINEERING

SOLID: A Tool, Not a Goal — When to Use It, When to Skip It

Two interfaces, two classes and a factory for a one-line welcome message. The five principles with code; the signals where they help, the cases where they only add files; YAGNI and the rule of three.

16 September 2026 · solid · design · yagni · c#
ENGINEERING

Agent, Local LLM, MCP Server: Who Decides, Who Executes?

An agent on an internal server that answers “how many dollars were deposited today?” with no data leaving the company. Three parts, three responsibilities; how the docstring decides tool selection, a 20/20 benchmark and the two brakes of the agent loop.

17 September 2026 · agent · mcp · local llm · fintech
ENGINEERING

Monorepo: Team Structure, Not Code Structure

One line in the shared library, 7 bump PRs, 3 days, one service forgotten. Nine repos were right for 14 people; with 3 people they protect nobody. Why we moved from poly repo to monorepo, its five traps, the numbers 6 months later, and the real question: how many services for 3 people?

18 September 2026 · monorepo · microservices · ci · git
ENGINEERING

Agent Orchestrator: A Guided Flow, Not One Clever Agent

The nightly reconciliation job took 17 turns and 9 minutes in one agent, and the answer was wrong. In a 4-step flow: 2 turns, 38 seconds. Who decides, three patterns and four brakes.

19 September 2026 · agent · orchestrator · llm · architecture
ENGINEERING

Multi-Agent: Work You Can Split, Not Free Speed

We split 34 records across 4 agents: 11 minutes became 3, tokens went up 3.4 times, and two agents wrote to the same file. Split keys, the sub-agent contract and the merge step.

19 September 2026 · multi-agent · agent · parallelism
ENGINEERING

Context: The Right Summary, Not a Longer Window

The same question is wrong in a 118k-token window and right in a 9k one. A model does not remember, it re-reads: trim tool output, move run state to disk, and know what a summary costs.

19 September 2026 · context · tokens · llm · agent
ENGINEERING

Tool Design: A Decision Surface, Not an API Wrapper

We went from 11 tools to 23 and accuracy fell from 96% to 71%. The code was fine; the menu was not. Separate decision or parameter, the four-line description, and error messages that instruct.

20 September 2026 · tools · mcp · agent · llm
ENGINEERING

The Agent Called It Twice: Idempotency, Not Autonomy

The tool answered in 32 seconds and the timeout was 30: the same withdrawal was approved twice. Who generates the key, what the second call returns, and why irreversible work is two-stage.

20 September 2026 · idempotency · agent · retry
ENGINEERING

Prompt Injection: Input That Runs as Instruction

One sentence in a customer note reached the agent’s plan and put 3 withdrawals up for approval. Models do not separate data from instruction; the defence is in permissions, not the prompt.

20 September 2026 · security · prompt injection · agent
ENGINEERING

The Agent’s Trail: A Chain of Decisions, Not Logs

It took 40 minutes to find the drift in a 400-line log; now it takes 12 seconds. A run is a trace and a step is a span: what to record, how to mask customer data, how to replay a run.

21 September 2026 · observability · trace · agent
ENGINEERING

Eval: A Regression Test, Not a Demo

I changed one word in the prompt, the demo was perfect, and two days later 4 questions went to the wrong tool. Golden sets, exact checks, judge biases and “green but unhappy”.

21 September 2026 · eval · testing · llm
ENGINEERING

Prompt and Model Versions: Code, Not Text

A “small fix” from an admin screen was a deploy with no record. Repo or config, why the model version is pinned, shadow runs and rollback thresholds.

22 September 2026 · prompt · versioning · llm
ENGINEERING

RAG: Building Context, Not Searching

The agent stated the rule correctly; the rule had changed 14 days earlier. RAG or tool, who draws chunk boundaries, how to measure recall, and teaching a model to say “I do not know”.

22 September 2026 · rag · embeddings · llm
ENGINEERING

Agent Cost: Cost per Task, Not per Token

“It is our own server, tokens are free” — one report kept the GPU busy for 96 seconds. Re-sent context, retries, the fixed prefix and the arithmetic of a cheap model with 3 attempts.

22 September 2026 · cost · tokens · agent
ENGINEERING

On-Call: Handover, Not Heroics

03:12 at night, the alert fired and the runbook page was empty. The three questions on-call must answer, the rule that deleted 23 of 60 alerts, night authority, a 15-minute handover and the shadow week.

22 September 2026 · on-call · runbook · escalation · incidents
ENGINEERING

Shipping: Release Management, Not Deploys

The rollback took 9 minutes; with a flag it would have taken 4 seconds. Separating deploy from release, four flag types and their lifetimes, a 61-flag graveyard, and automatic rollback thresholds.

22 September 2026 · feature flags · canary · rollback · releases
ENGINEERING

Schema Changes: Two Stages, Not a Friday Night

80,000 rows in test, 47 million in production; a “five minute” migration locked the table for 40. The five steps of expand/contract, batched backfill, a table of unsafe operations and a drop-by date.

23 September 2026 · migrations · expand/contract · backfill · databases
ENGINEERING

Code Review: Spreading Knowledge, Not Guarding a Gate

The PR waited three days and got 41 comments: 38 about formatting, 0 about architecture. The inverse relationship between size and value (PRs over 800 lines get FEWER comments), comment labels, the 24-hour rule and where a second approval is really needed.

23 September 2026 · code review · pull requests · teams · knowledge sharing
ENGINEERING

Architecture Decision Records: One Page, Not a Meeting

“Why did we do it this way?” — three people, three answers; we made the same decision twice, for different reasons. A one-page template, the rejected-options section, which decisions to record and why records are never deleted.

23 September 2026 · ADR · architecture · decision records · team memory
ENGINEERING

Inheriting a System: The First 90 Days

The README was four lines and two were wrong; the answer to “how do we ship” was a name, and that person was leaving in three weeks. The single goal of week one, building the map from git, the 90-day rule and five questions for the person leaving.

24 September 2026 · handover · legacy · ownership · knowledge transfer

Who this is for

In short

If sprints keep spilling over and nobody looks at the retro actions; if you keep postponing the hard conversations in your team; or if your system runs perfectly in staging and falls over on the morning of a campaign — you are in the right place.

The three sections are really the same team’s three different problems: process, people and systems. And they are usually connected — the answer to why a sprint spilled over is sometimes in a queue design, and sometimes in a sentence nobody said out loud.

Every post ends with a checklist; if you are in a hurry, read only those and share them with your team.