Why I Use Fixed Pricing (and Why You Should Ask For It)
Mar 20, 2026Hourly billing incentivizes slow work. Here's why I charge per project and how it benefits both sides.
Hourly billing incentivizes slow work. Here's why I charge per project and how it benefits both sides.
Not every project is a good fit. Here's how I evaluate potential client work before saying yes.
A walkthrough of how I build a full-stack application — from architecture decisions to deployment, using TypeScript, PostgreSQL, and Docker.
A practical comparison of Nginx and Caddy for web developers — automatic HTTPS, configuration, performance, and when to pick which.
The tools I use daily for writing code — LazyVim, Ghostty, Claude Code, and everything in between.
Comparing just and make as task runners for modern development workflows — syntax, features, and when each makes sense.
A practical guide to handling taxes as a freelance developer in Indonesia — from NPWP to NPPN.
Indonesian specialty coffee beans I've been buying — ranked for V60 and espresso, with honest notes.
How I use just to run multiple projects with a single command.
Practical tips to speed up Docker builds for Node.js projects — layer caching, multi-stage builds, and keeping images small.
How I stream RTSP cameras to the browser using RTSPtoWeb and WebRTC — plus how DDNS makes it accessible from anywhere.
My process for taking a client project from first conversation to production — discovery, development, deployment, and handoff.
My first time at World of Coffee — what I saw, what I tried, and what I brought home.
How Caddy replaced Nginx as my reverse proxy — automatic HTTPS, wildcard domains, and a config file that actually makes sense.
How I moved from Jenkins to Drone CI with git tags and Watchtower for a lightweight, reliable deployment pipeline.
How word embeddings work, what cross-lingual alignment means, and why I built a tool to explore them with FAISS.