Why We Switched from REST to GraphQL (and When We Switched Back)
GraphQL promises flexible data fetching, but it comes with real costs in complexity and caching. This is the story of ou...
Read More →Designing for Low-Literacy Users: UX Lessons from Rural Cambodia
When building a government services app used by farmers in Kampong Chhnang, we discovered that standard UX patterns comp...
Read More →How We Reduced Cloud Costs by 43% Without Touching a Line of Code
Reserved Instances, Spot Fleet for batch jobs, S3 Intelligent-Tiering, and one surprisingly impactful change to our NAT ...
Read More →React Native vs Flutter in 2025: A Practitioner's Honest Comparison
We've shipped production apps with both. No theoretical comparisons — just real-world experience on performance, develop...
Read More →Penetration Testing a Cambodian Bank: What We Found
A (sanitised) account of the vulnerabilities we discovered during a recent pen test engagement. Key findings, root cause...
Read More →The True Cost of Technical Debt: A Framework for Business Leaders
Technical debt is often invisible to executives until it causes a crisis. Here's how we help business leaders quantify, ...
Read More →Khmer Language Support in Web Apps: A Complete Developer Guide
RTL isn't the issue — Khmer is complex in different ways. Font rendering, Unicode handling, input methods, and testing s...
Read More →DevOps Culture at 40 People: How We Scaled Our Engineering Practices
From two engineers sharing a single server to 40 people running 60+ client environments. The specific practices, tools, ...
Read More →