Audelin: Them 1, Them 2
After every call, Audelin splits the far side of the transcript into separate remote speakers, numbers them Them 1, Them 2, and names each one only from their own introduction.
iOS tech lead · building with AI agents
I lead iOS development at a bank and build products with coding agents that work from specs and tests. This is where I write down what works, what didn't, and why.

A macOS call recorder with a live, local transcript.
Swift · Core Audio

A dinosaur learning game for children aged 4 to 7.
React · TypeScript

An offline iPhone app that reads your notes aloud.
SwiftUI · Swift Testing
$ agister run review
resolve ✓ 3 definitions
admit ✓ budget 1.20 USD
record runs/7f2c/
A runner for AI-agent work defined in settings files.
Go

Learning programs your own agent can work on.
Node.js · SQLite

An iPad and an iPhone agree a payment over Bluetooth.
SwiftUI · Core Bluetooth
After every call, Audelin splits the far side of the transcript into separate remote speakers, numbers them Them 1, Them 2, and names each one only from their own introduction.
A call-summary settings screen makes Audelin's next design question concrete: where the transcript goes, who pays, and what a fallback changes.
RexLab's games each had a look of their own. This week they became one world, a dig site from sky to bedrock, drawn first and approved by eye before any code merged.
Agonara Session lets a student read an Agonara course on a phone, first in a Telegram bot, then as a web page on the local network. Why a lecture is paged by screen rather than by section, what Telegram messages can and cannot do, and how a Go runner redeploys itself when trunk moves.
Speaker symbols, readable selections and a viewport that stays put make Audelin's live transcript easier to follow while the conversation continues.
Audelin's live transcript used to rebuild the whole call whenever a word changed. Making the work follow the live tail brought a late view update from hundreds of milliseconds to about one.
A phone that pays at a till must never pay the till next door. How Mizan BLE picks the nearest host by smoothed signal strength, what a real iPad and iPhone measured, why the first picker flickered at arm's length, and what iOS does not let a Bluetooth payment do.
A payment over Bluetooth has one way to succeed and many ways to stop. How Mizan BLE splits each side into a chain of state machines, why the countdown stops once the amount is sent, and how an iPad ends a link it is not allowed to close.