Mehdi Akiki

Writing archive

Everything published under Writing, newest first. Each entry is labelled as part of an investigation, an article or reference. Short engineering notes have their own archive.

  • Published on

    Investigation · Part 2 of 3 · Async Rust under the hood

    Async fn in a dyn Trait: What the Box Costs, Measured

    Calling an async method through dyn Trait needs a boxed future. I measured what that box costs per call, with an allocation counter and a million calls, and where it actually matters.
  • Published on

    Investigation · Part 1 of 3 · Rust build times

    Why Is My Rust Build Slow? A Diagnostic Tree

    A measured decision tree for slow Rust builds: use cargo --timings for the shape, the Cargo fingerprint log for unexpected rebuilds, and -Ztime-passes for the phase inside one crate.
  • Published on
    Ship readiness for an AI feature is one artifact per failure class, each with a stated minimum bar and a stated way it can be invalidated. Built here with a runnable 300 item fixture.
  • Published on

    Investigation · Part 1 of 10 · Types under the hood

    What Is a Type? A Set of Values, a Promise About Operations, or Both

    I took one small type, Human = man or woman, and compiled it in TypeScript, Rust, and C to see what stays of it. A type is a set of allowed values plus a set of allowed operations, both checked once, and neither reaches the processor.
  • Published on

    Investigation · Part 1 of 3 · Async Rust under the hood

    How Async Rust Works Under the Hood: Five Symptoms, One Model

    I started from a small tokio service and hit five classic async Rust problems: a huge future, a future that is not Send, one blocking call that stalls everything, a select! loop that loses data, and a shutdown that hangs. One small model of the compiler and the runtime explains all five.