Latest writing
Measure first: making a TV app stop feeling slow
Building the instrument before touching the code — an 81% faster TV app, and the optimisation the measurements killed before it shipped.
PerformanceCounting users for an app that collects nothing
Measuring daily active devices, install base and market share for a TV app with no analytics — from two download counters, plus a detour through LG's Korean regulatory filings.
MeasurementCodex SSD log writes
A short note on the Codex SQLite logging report, SSD write pressure, and why the wording should stay precise.
AI toolingBuilding bili-webos for the living room
How an open-source Bilibili client for LG webOS TVs grew — by v1.5.1 — into TV search, threaded in-video comments, live streams with a chat rail, playback speed, and EN/ES subtitle translation, all remote-driven.
Smart TVA Claude Code skill for LG webOS app work
Why I packaged the repeatable parts of webOS development into a small skill: build loops, TV constraints, emulator checks, and handoff notes.
Developer toolswechat-cli: boring automation is the point
A single-file Python tool for sending WeChat messages through WebDriverAgent, designed to avoid a heavy service or LLM dependency.
Automationscenic-roads: finding better weekend drives
A Hangzhou-centered MVP that combines OSM roads, DEM elevation data, and scoring rules to surface twisty mountain routes within day-trip range.
Mapsclaude-code-review: a second reviewer inside Codex
A Codex plugin that asks the local Claude Code CLI for external review, adversarial critique, and delegated rescue work when a second model helps.
AI tooling