Est. MMXXIVIssue №134Vol. II
London - LisbonWed 21 Oct 2026

Read Before Monday

A weekly dispatch by Vitor Domingos · With links, on Sunday, nothing urgent
№ 134 / Weekly
Issue 129
Sun 13 Sep
Sunday Dispatch · № 129 · 13 Sep 2026 · 10 min

This week’s reading is mostly about what happens when reality discovers the assumptions hidden inside technology. Eileen Yoon reverse-engineers Apple’s M1 Neural Engine and finds an accelerator exquisitely designed for the CNN world that existed when its silicon was conceived, only for transformers to arrive and make some of those clever memory decisions rather less clever. Virginia Postrel goes back much further, to Lucasfilm’s Habitat, where developers squeezed a virtual society through Commodore 64s and 300-baud modems, then watched the inhabitants exhaust their content, accidentally inflate the economy and generally demonstrate that users are the most inventive failure mode in any distributed system. Harness engineering tackles the modern version of the problem: AI can produce code quickly, so the surrounding engineering increasingly becomes about context, constraints, verification and knowing when a judgement made by an agent should graduate into a boring, dependable test. Bill Gates zooms out to the considerably messier production environment called society, asking what happens if AI makes chunks of human labour economically unnecessary and whether some work should be deliberately kept “Human Reserved”. Finally, Andrew Arrow’s Cubacadabra offers a smaller but rather elegant answer to the whole problem: put shared product decisions in Rust, leave genuinely native machinery to the platforms, and judge the architecture by whether adding the second hat requires changing the engine.

In this issue
5 pieces

Reverse engineering Apple’s M1 Neural Engine

Reverse engineering Apple’s M1 Neural Engine

Eileen Yoon retrospectively argues that its defining characteristic is its CNN-era dataflow rather than its multiply-accumulate units. Through register inspection, CoreML experiments, firmware analysis and performance measurements, Yoon reconstructs its compute, scheduling and memory architecture. The ANE uses fixed-function task descriptors, dedicated kernel memory and explicit DMA paths designed around predictable tensor reuse rather than arbitrary instruction execution. She argues that this architecture becomes poorly matched to transformer inference, particularly single-token decoding where weights must be streamed repeatedly. The M1 ANE requires roughly 162 operations per DRAM byte to escape bandwidth limitation, while measured KernelDMA reaches 37.99 GB/s and TileDMA 59.08 GB/s versus 77.70 GB/s for the GPU. More significantly, kernel and tile transfers appear serial rather than overlapping, making memory movement the limiting architectural legacy.

My take

So, the most revealing detail here is the missing L2-to-KMem path, as it sounds almost absurdly specific until you realise that a wire which isn’t there can tell you more about a processor than another thousand MAC units. Sure, Apple built an accelerator where weights had a special status, they arrived from DRAM, entered private kernel memory and were expected to hang around while activations flowed past them. That is a perfectly sensible physical embodiment of the CNN workloads dominating mobile ML when the ANE appeared. Then transformers changed the useful lifetime and movement of those operands. Suddenly yesterday’s sensible optimisation becomes today’s awkward detour back through DRAM. That makes this a lovely example of technical debt occurring below software, where there’s no refactoring sprint coming to rescue you. Silicon necessarily contains predictions about future workloads. Cache sizes, interconnects and DMA paths are forecasts wearing electrical-engineering clothes.

Virginia Postrel traces the origins of massively multiplayer virtual worlds to Lucasfilm’s Habitat

Virginia Postrel traces the origins of massively multiplayer virtual worlds to Lucasfilm’s Habitat

Habitat was developed for Commodore 64 users on the QuantumLink network and d2espite hardware limited to 64 kilobytes of memory and 300-baud modems, Habitat created an open-ended graphical society using a client-server architecture. Players could socialise, customise avatars, own homes, trade using an in-game currency and collectively produce activities the designers had never anticipated. Postrel argues that this extended beyond its technical achievements because its players exposed problems later familiar across online communities. They rapidly exhausted designed content, exploited economic mistakes, created organisations and devised collaborative performances despite severe network latency. Developers Chip Morningstar and F Randall Farmer consequently shifted from designing experiences towards making rules for unpredictable populations. Habitat eventually became Club Caribe, but its experiments anticipated virtual economies, digital cosmetics, emergent communities and the social complications of subsequent online worlds.

My take

The crystal balls here are the whole story; Habitat sold them for 18,000 tokens in one place and bought them for 30,000 somewhere else. Players noticed, did the obvious thing and quintupled the money supply overnight. The programmers had created a virtual world, then discovered that virtual worlds come with economists. That distinction between designing a game and governing a population feels more consequential than Habitat’s claim to being the first MMO. A conventional game designer can anticipate how a player encounters a puzzle. Habitat’s developers had to contend with people encountering each other, coordinating, specialising and finding opportunities nobody deliberately put there. A treasure hunt taking weeks to construct disappeared in eight hours. Latency that should have prevented coordinated performance instead produced people rehearsing with telephones and stopwatches. But there’s a useful design lesson buried in that 64-kilobyte machine; give people sufficiently expressive tools and the complexity of the system stops being proportional to the complexity of its software. It starts coming from the participants.

Harness engineering is the surrounding AI-assisted code generation with context, verification and periodic maintenance so generated code remains coherent

Harness engineering is the surrounding AI-assisted code generation with context, verification and periodic maintenance so generated code remains coherent

Drawing on Birgitta Boeckeler’s framework, it separates the harness into context engineering, architectural constraints and garbage collection. Context records project conventions, while deterministic tools or agent reviews verify them. Scheduled checks identify slower codebase entropy such as dead code, stale dependencies and abandoned conventions. Its distinctive extension is progressive hardening, where constraints move from unverified declarations through agent-based checking towards deterministic enforcement. Repeated agent detection of the same violation indicates that the rule may now be understood precisely enough for automation. The plugin implements enforcement across advisory edit-time, blocking pull-request and investigative scheduled loops. It also records violations and reflections so agents can propose stronger constraints, while humans retain authority over production changes and proposed harness improvements.

My take

Right, the useful idea here is the promotion ladder: unverified, agent, deterministic. It gives teams somewhere sensible to put rules they understand well enough to care about but poorly enough that they can’t yet encode them. That intermediate state matters as LLM review is often discussed as though probabilistic judgement were the destination. Here it becomes scaffolding; let the model spot violations while the team is still learning what the violation actually looks like. Once the same pattern keeps appearing, turn the accumulated judgement into a boring script and remove an LLM from the loop. Boring is excellent when you’re deciding whether a pull request may merge. I’d be slightly more cautious about the claim that repetition means a constraint is ready for automation. Some architectural rules remain contextual however many examples you collect. A dependency boundary might be mechanically detectable; whether an abstraction has become conceptually dishonest probably isn’t. Premature hardening could fossilise yesterday’s judgement into tomorrow’s CI failure. Still, progressive hardening suggests a useful way to think about AI coding tools. Their highest-value output may sometimes be the specification for their own eventual redundancy. If an agent repeatedly performs the same judgement, ask whether you’ve learnt enough to replace that judgement with code.

AI could either reduce global inequality or intensify it, and governments are inadequately prepared for an unusually rapid transition

AI could either reduce global inequality or intensify it, and governments are inadequately prepared for an unusually rapid transition

Bill Gates predicts substantial permanent job losses as AI approaches reliable autonomous work, alongside greater cybercrime, biological threats and risks to children’s development. Gates also expects major benefits across healthcare, agriculture, education, government services and scientific research, particularly where expertise is currently scarce or expensive. Gates proposes deliberate political intervention rather than relying on AI companies or market forces. He calls for new national and international institutions coordinating AI policy, a “Human Reserved” domain protecting selected work from automation, and taxes on AI tokens and robots to fund retraining and social support while slowing labour substitution. He acknowledges unresolved questions around enforcement, international competition and which jobs deserve protection, while arguing that planning must begin before widespread displacement forces governments into crisis responses.

My take

“Human Reserved” is the idea I keep coming back to after reading this... Gates is proposing that some economically automatable work should remain deliberately human because efficiency isn’t the only thing employment produces. His nature-reserve analogy makes the trade-off unusually explicit: society sometimes chooses preservation even when development would produce measurable economic value. That’s a much stranger proposition than another retraining programme. Once machines can perform a job more cheaply and reliably, keeping humans involved becomes an affirmative social choice. We already make versions of that choice. Sport would be considerably more efficient if motorcycles were allowed in the Tour de France. Nobody wants that because efficiency isn’t the objective. Yet, the difficult part is deciding where that logic belongs in ordinary economic life. Gates reaches for caregiving and delivering terrible medical news, where the case feels intuitive. Move towards accounting, programming or driving and the boundary becomes politically explosive. Protection could preserve dignity and communities, or become occupational nostalgia paid for by everyone else. So, I suspect “Human Reserved” is useful even if it never becomes a formal policy category. It forces a question that discussions of automation routinely skip: once human labour stops being technically necessary, where do we still want it? That decision can’t be delegated to a benchmark, because the benchmark is precisely what has made the decision necessary.

Cubacadabra’s architecture is around a shared Rust core spanning iOS, Android, web, macOS, Windows and Linux

Cubacadabra’s architecture is around a shared Rust core spanning iOS, Android, web, macOS, Windows and Linux

Rather than independently implementing product behaviour in Swift, Kotlin and JavaScript, Andrew Arrow wants native clients to become thin platform-specific shells while Rust owns validation, state transitions, multiplayer sessions and rendering. He argues this reduces behavioural divergence, citing an iOS integration that added 106 lines while removing 269 and a browser session extraction removing 244 lines while adding 74. Arrow also details where portability deliberately ends. Hosts retain authentication, HTTP execution, device integration and platform lifecycle handling, while Rust defines what requests and responses mean. Multiplayer state uses compare-and-set operations and rebasing, although competitive games still require server-side validation. The same philosophy extends to character assets: deterministic tooling validates morph metadata so adding compatible clothing can eventually become a content change rather than an engine modification. Several parts of this asset pipeline remain unfinished.

My take

Andrew celebrates that it rejected the asset because the required LOD structure was missing and that distinction runs through the whole project, as the objective isn’t merely sharing Rust across six platforms, it’s moving product assumptions into places where they can be stated, tested and rejected consistently. This is where cross-platform architecture often goes sideways. Teams optimise for maximum shared code and eventually build their own slightly miserable operating system. cubacadabra has a more useful boundary: share decisions, leave genuinely platform-specific execution with the host. Rust decides whether a username response is still valid; Swift or Kotlin performs the HTTP request. Rust owns rendering; Android still gets to ruin your afternoon by removing the surface. The unfinished morph pipeline makes the same principle visible from another direction. Arrow’s desired milestone is wonderfully concrete: the second hat should require a file, not a Rust change. That’s really a test of whether the architecture has discovered the correct boundary between mechanism and content.

The Premise
What you need to read before your busy Monday, published every Sunday

Read Before Monday is a weekly newsletter from Vitor Domingos - with a handful of articles, essays and oddities collected over the week, annotated with a short opinion, and sent before Monday morning.

No breaking news. No ten-thousand-word think pieces. No affiliate links. Just a small, curated and considered list of things worth sitting with.

VD
Vitor Domingos
Writing from London
Colophon
Type Archivo · Space Mono
Cadence Sun · 19:00 WET
Archive 133 issues
RSS /feed.xml
Distributed Substack, LinkedIn