From the Notebook

Notes on AI-augmented engineering, LLM infrastructure and shipping real software — drawn from things I actually built.

AI · Opinion6 min read

Will AI replace developers? What actually changes

The honest answer from someone who ships with AI every day — it replaces the typing, not the judgment. Here's who's actually at risk, and who gets more valuable.

Read
AI · Opinion6 min read

Is AI dangerous, or just misunderstood?

The scary robot on the news and the tool I use every day are not the same thing. A builder's honest, non-hype take on where AI actually helps, where it actually harms, and what to watch.

Read
AI · Opinion6 min read

Vibe coding is fun — until it hits production

Prompting until it works is a great way to learn and prototype, and a dangerous way to ship. Where "vibe coding" earns its place, where it quietly bites, and how to graduate a vibe-coded prototype into something real.

Read
AI · Workflow5 min read

How I audit AI-written code — and the bug that proved why

I ship as an AI-augmented solo builder, but I never trust what the model produces. Here's the review discipline that caught a missing Android permission in every earlier release build.

Read
Payments5 min read

Payment-native from day one — building with QRIS in Indonesia

Cards are the wrong default for the Indonesian market. Here's how I make apps take money natively with QRIS — and why verification has to happen on the server, never the client.

Read
AI5 min read

One key, five LLMs — building Vensix, an OpenAI-compatible gateway

Why I put a single billing-and-routing layer in front of Claude, GPT, Gemini, DeepSeek and Kimi — and what an OpenAI-compatible API buys you for the Indonesian market.

Read
Infrastructure5 min read

Shipping a whole business on Cloudflare Workers

No servers to patch, no region to pick, and a bill that rounds to zero at low traffic. How I run real products — a dealership CMS, a temp-mail service, this very site — on Cloudflare's edge.

Read
Engineering6 min read

I wrote Indonesian payroll twice on purpose

CoalTrack computes statutory payroll on the server in PHP and again on the handset in Dart. Duplicating the logic sounds wrong — here's why it's the safest thing I did.

Read
Security6 min read

Access control belongs in the database, not the UI

Hiding a button is not security. How I enforce who-can-see-what with Postgres row-level security — and back it with an audit trail the app is not allowed to rewrite.

Read
Android4 min read

Debloating Android without root — and proving it worked

A no-root, fully reversible debloat toolkit over wireless ADB, with real before/after numbers from a vivo V21. No placebo "boosters" — measured frames.

Read