Writing

Long-form essays on technology, business, design and human behaviour.
Shorter, rawer notes live on the Journal.

Latest writing

13 Aug 2026Writing Code Is No Longer the Hard PartAI can generate code quickly. The harder part of development is increasingly defining intent, providing context and knowing whether the result is good.Development
5 min
12 Nov 2011Mobile Apps vs. Mobile WebNative mobile apps and the mobile web solve different problems. The question is not which will win, but which experience makes the most sense for the task.Development
5 min
04 Jun 2011Teh Playground!Teh Playground was a lightweight PHP testbed for quickly trying snippets in the browser without setting up a local LAMP stack or creating temporary files.Development
1 min
16 Mar 20112 Obscure PHP FunctionsTwo obscure PHP features—including GOTO—show that even much-maligned and rarely discussed language features can occasionally have surprisingly practical uses.Development
1 min
15 Mar 2011Commenting Codes: Yes or No?Comments should explain decisions and intent, not compensate for confusing code. Clear naming and readable logic are often more valuable than walls of.Development
1 min
15 Mar 2011So, Is Flash Going Away?Flash was already on borrowed time as HTML5 and modern browsers absorbed more of its capabilities. The real question was how quickly the transition would.Development
1 min
05 Mar 2011Email Validations, the Right WayEmail validation is more complicated than it looks. Overly strict rules can reject perfectly valid addresses, including Gmail aliases that use the plus sign.Development
3 min
12 Feb 2011Simple PHP Mehod ChainingPHP method chaining makes object-oriented code more concise and expressive by allowing multiple methods to be called cleanly and naturally in a single.Development
3 min
01 Nov 2009PHP vs. RailsPHP itself is rarely the reason an application is slow. Performance depends far more on the developer, architecture, database and decisions behind the code.Development
1 min