Android

The stack behind the apps on Google Play.

Language
Kotlin 2.0
UI
Jetpack Compose with Material 3
Architecture
MVVM + Repository, single activity, Navigation Compose
DI
Hilt
Networking
Retrofit + OkHttp, kotlinx.serialization for JSON
Local storage
DataStore Preferences
Payments
Google Play Billing 8 — one-off passes, verified server-side
Build
Gradle with version catalogs, AGP 8.9
IDE
Android Studio

Backend

Small, boring, and easy to reason about at 2am.

Runtime
Node.js with Express
Database
SQLite, accessed synchronously — no pool, no ORM
Process manager
PM2
Web server
Caddy, for certificates that renew themselves
Host
A single small Linux server

This site

Static, no client-side JavaScript, no third-party requests.

Framework
Astro 5, with MDX for posts
Hosting
Vercel
DNS & registrar
Cloudflare
Type
IBM Plex Sans and Mono, self-hosted

Day to day

Assistants
Claude Code for review and the parts I keep putting off, GitHub Copilot for inline completion
Local models
Ollama and llama.cpp
Terminal
Apple Terminal 2.15 on macOS Tahoe, with zsh
Version control
Git, with the work for a change kept on one branch