Setup
What I use.
Tools, hardware, and software I rely on daily as a solo Android developer and AI systems builder in Bangkok.
Hardware
MacBook Pro (M-series)
Build everything locally — Android Studio + Next.js + Workers all in one machine without thermal regret.
Android test fleet
Real devices across API 24-35 so Play Store rejections happen on my desk, not in review.
Editor & Terminal
Android Studio
Stays the IDE for Kotlin work — the Layout Inspector and Compose preview pipeline aren't matched elsewhere.
Claude Code
Primary coding assistant for this site, the plugins, and the apps catalog. Treats my repos as multi-file context, not single-file completions.
VS Code
TypeScript + scripting + markdown. Nothing exotic — chosen for fast file-open and the same extension ecosystem as everyone else.
zsh + ~/.claude hooks
Custom PreToolUse hooks block destructive git and identity drift across 200+ repos. Saves a category of mistakes before they happen.
Dev Stack
Kotlin + Jetpack Compose
MVVM + Clean Architecture, Hilt, StateFlow, Room. Identical across 22+ apps so debugging any one app needs zero context reload.
TypeScript + Next.js (App Router)
This site. output: 'export' so Cloudflare Pages serves pure static. RSC where state isn't needed.
Cloudflare Workers
Newsletter, contact form, GitHub stats proxy. Pay-per-request and 15ms cold starts — cheaper than keeping a server warm.
GitHub Actions
Blog generation, topic dedup, PR auto-merge. Budgeted carefully — solo dev runs out of free minutes faster than companies do.
Services
GitHub
Source of truth for 200+ repos. Every change is a PR even solo — produces a real history for future-me.
Cloudflare Pages
Static hosting for this site. Auto-deploys per PR. Free tier covers the traffic, zero egress cost.
Firebase Realtime DB
Backend for MyFamilyTracker. Chose RT over Firestore for stream semantics at sub-second propagation — Firestore would have over-billed reads.
Google Play Console
Staged rollouts, crash reporting, Data Safety. 1 app live, 21 in development — each release a separate signing key.
AI & Automation
Claude Code (in the CLI)
Multi-file refactors, plan-then-execute workflows, custom plugins. Replaces the 'write code in chat then paste' loop.
Claude.ai (in the browser)
Long-form decisions, architecture conversations, content drafting. Different shape of problem than coding.
Telegram bots
CI/blog/queue events. Inbox-shaped so notifications surface async — no Slack tab to keep open.
n8n
Cross-system orchestration when the shape doesn't fit Workers or Actions. Self-hosted.
Utilities
pnpm
Strict node_modules and content-addressed store — installs stay fast across 80+ JS repos sharing dependencies.
Obsidian
Knowledge base synced from Claude Code sessions via obsidian-sync.py. Decisions get captured automatically.
Figma
Lightweight — used for visual diff before UI work, not as a source of truth. Code is the source of truth.
graphify
Builds a knowledge graph of any codebase. Used to answer 'what breaks if I change X' faster than reading files.
