Vol. 01 · Issue 07 · Dispatched from the island

Field Notes.

Dispatches from the KetoyVM engine room. Compiler internals, bytecode spec, runtime benchmarks, Compose semantics, and the occasional postmortem, written by the people building the runtime.

The compiler is the hardest thing we will ever ship, and the least thing our users will ever see.
— Anya Voronova, Compiler lead · Field note #14

The archive

9 DISPATCHES · NEWEST FIRST
025

Android apps that can be rewritten anytime.

KetoyVM is a Kotlin runtime for Android. Write plain Compose, ViewModels, and Navigation. Hilt and Room stay in the host app; KetoyVM exposes their functions for new features because updating them requires a Play Store release. Ship it to a CDN. Every user has the new feature in 60 seconds.

IntroducingRuntimeKBCCompose
APR 23 · 2026
18 MIN
024

Lowering Compose to KBC: how composables survive the trip.

Preserving the Compose compiler's invariants, slot tables, group keys and remember semantics inside a portable bytecode is harder than it looks.

CompilerComposeKBC
APR 22 · 2026
14 MIN
023

Cold-start is a feature: 142 ms to first frame on a Pixel 6.

Every millisecond we spent parsing, verifying, linking and JIT-warming the bundle, and how we cut the path from 910 ms to 142.

RuntimePerformance
APR 18 · 2026
9 MIN
022

Structured concurrency across the bundle boundary.

A coroutine started inside a .ktx bundle has to honor the host's lifecycle. Getting cancellation right cost us a quarter.

CoroutinesRuntime
APR 11 · 2026
11 MIN
021

Three weeks with Monzo Labs on the alpha.

What shipping a live-updated checkout flow to 2% of production looks like from the other side of the table.

Field Report
APR 04 · 2026
7 MIN
020

A tour of the .ktx bundle: sections, manifests, signatures.

The file format your app will download at 3am. What's in it, why it's laid out the way it is, and what we'll promise is stable.

CompilerSpec
MAR 27 · 2026
12 MIN
019

Why we picked register-based bytecode over stack.

A shorter prologue, fewer memory roundtrips, and one very sad engineer who wanted to port Krakatau.

CompilerKBC
MAR 20 · 2026
15 MIN
018

Hilt graphs that cross the dynamic seam.

How we resolve an @Inject'ed repository when the repository lives in the host and the composable lives in the bundle.

RuntimeCompose
MAR 12 · 2026
10 MIN
017

Postmortem: the 3 AM bundle that wouldn't cancel.

An infinite LaunchedEffect, a staged rollout, and the two things we changed in the runtime that night.

Field ReportCoroutines
MAR 06 · 2026
8 MIN
SUBSCRIBE · WEEKLY · FROM THE ISLAND

One dispatch, every Thursday.

Deep technical writing on compilers, runtimes and Compose. Often a code walkthrough. Sometimes a postmortem. Never a product email.