AI-driven development · Linux & Android internals · iOS tweaks · homelab · finance automation
I build tools for the phones, computers and systems I use every day, and most of my work sits close to the OS: jailbreak tweaks, Android system modules, custom ROMs, bootloaders and build pipelines. The part I enjoy most is working out why something that should work doesn't.
- TopRow: a number and symbol row for the stock iOS keyboard, with every key customisable and changes applied live. Rootless jailbreak tweak in Objective-C and Swift (Theos). ★5
- recents-clear-all: an LSPosed/Xposed module that adds an always-visible "Clear all" button to Pixel Launcher's Overview. Java, published on the LSPosed module repository.
- aay apt repo: a signed APT repository serving my iOS packages to Sileo, Zebra and Cydia. A build script generates the package index, native and HTML depictions, and the signed
InRelease. (source) - llama.cpp CI: a self-hosted GitHub Actions runner that tracks upstream llama.cpp and builds the CPU, CUDA 13 and Vulkan backends on Windows, while the fork's
masterstays a clean mirror that always syncs.
- RichardLuo0/global-icon-pack-android#165: fixed three Android 16 bugs (merged)
- BuSung-dev/Root-My-Galaxy-Payloads#290: Galaxy S25 FE device profile, tested on hardware (open)
Work that lives on my own machines rather than in public repos:
- Ubuntu Touch on a Pixel 3a: replaced the stock 3 GB read-only root filesystem with a ~30 GB writable one. The key finding was that the bootloader picks the root partition by name, not UUID, so the fix was to clone the rootfs onto a new partition and rename it. Scripted as a one-shot recovery job, with a write-up.
- Custom ROM bootloop forensics: traced repeated bootloops on a Galaxy S9 running a custom Android 15 ROM to Play system updates that assume a newer kernel (eBPF/BTF) and a changed library ABI. Recovered and hardened the device without reflashing.
- Hackintosh and multi-boot: OpenCore on a Ryzen 7 5700X3D with a Radeon RX 580, plus OCLP and macOS / Windows / Debian multi-boot on older Macs.
- Homelab and Linux: Debian servers, a Caddy reverse proxy, self-hosted remote desktop, and SSH-based automation.
- Finance automation (FP&A day job): VB.NET business rules in OneStream that replace a manual reporting workbook and are validated against it, plus Python pipelines that clean Excel exports for loading, with built-in total checks.
- Personal data pipelines: deduplicated a 90 GB, 14,000-file music library using SHA-256 hashes while keeping streaming-app playlists intact; built a provider-agnostic pipeline that normalises, scores and de-duplicates about 8,000 exported chat records into a searchable log.
Most of the work is debugging: reproducing the failure, reading logs, dmesg and boot traces, ruling causes out on real hardware, and pinning down what's actually wrong. Once I know the cause, I use AI coding agents (mainly Claude Code) to implement and iterate faster, and when a first fix doesn't hold, I go back to the evidence, narrow it down and steer the next attempt. I test every change on the device or system it's meant for before it ships.
I also build tooling so the repetitive parts stay repeatable, like a brand kit generated entirely from code (outlined type, optically centred marks, every PNG and favicon rendered from SVG masters) and an apt repo pipeline that repacks package metadata, regenerates the index and re-signs the release in one run.
Languages: Objective-C · Swift · Java · Kotlin · Python · VB.NET · SQL · Bash · PowerShell
Platforms and tools: Theos · Xposed/LSPosed · KernelSU · OpenCore · GitHub Actions · Linux · Power BI · Excel/VBA


