omeryanbas.com

Ömer Yanbaş

General Manager, Ticofab Yazılım

Practice posts

Everything in the journal filed under practice.

2026

  1. Making technical debt visible enough to pay

    Debt nobody can see never gets budget. Give each item a cost, an interest rate and a place on the same list as features, then pay it inside feature work.

    Practice6 min read

  2. Where your team writes down its decisions

    Decisions live in chat threads and in people's heads until they vanish. A one paragraph record next to the code keeps the reasons where the work is.

    PracticeOperations6 min read

  3. Five questions for the first meeting with a client

    Ask what success is in numbers, what must keep running, who owns the accounts, what was tried before, and who decides. Then write the answers down.

    Practice6 min read

  4. Debugging: measure first, guess later

    The order that finds bugs is reproduce, narrow, measure, then theorise. Here is how to bisect changes and inputs, and why the first theory costs the most.

    Practice6 min read

  5. Long jobs get finished in small reversible steps

    How to cut a large piece of work into steps that can each ship and each be undone, with feature flags, expand and contract migrations and a real rollback.

    Practice5 min read

  6. Lab numbers, field data and a real phone

    A synthetic audit, real user data and a phone in your hand answer three different questions. Here is when each one lies and how to measure a change.

    PerformancePractice6 min read

  7. Three fields that make logs worth reading

    Most logs cannot answer the one question an incident asks. A correlation id, the subject being worked on and an outcome with a reason fix that.

    OperationsPractice6 min read

  8. Two accessibility mistakes almost every site makes

    Heading levels chosen to match the layout, and an aria-label that hides the visible text. Both break keyboard and voice users, and both are cheap to fix.

    WebPractice5 min read

2025

  1. Invisible dot underscore files travelling from macOS to your server

    Extended attributes become AppleDouble files inside archives made on a Mac, land in your web root and get served. How to spot, stop and clean them up.

    OperationsPractice5 min read

  2. Blue green deploys: check the build exit code before you restart

    A deploy script that restarts after a failed build serves a half written directory. Exit codes, an atomic switch, a smoke test and a rollback that works.

    OperationsPractice5 min read

  3. Never write to /tmp with a generic name on a shared server

    On a shared machine a generic temp filename may already exist and belong to someone else. The write fails, the read succeeds, you ship the wrong file.

    OperationsPractice5 min read

  4. The invisible suffix that split every message in two

    Two features each appended five characters after the length check ran. Every message crossed a segment boundary and the cost doubled in silence.

    MessagingPractice6 min read

  5. The Turkish uppercase trap: i, I and the dotted İ in code

    In Turkish, i uppercases to İ and I lowercases to ı. Case folding, CSS text-transform and database collations all get this wrong by default.

    WebPractice5 min read

2024

  1. Justified Turkish text without a hyphenation dictionary

    Chrome ships no Turkish hyphenation dictionary, so justified Turkish opens rivers of white space. Insert soft hyphens at build time instead.

    WebPractice5 min read