Even Google Makes Mistakes

Google is, I believe, one of the finest software engineering organizations on the planet. They invest heavily in code review and automated testing. Their infrastructure is top-notch, allowing developers to trivially build, refactor, and test code across their entire monorepo. They regularly release new tooling, libraries, and languages that to advance the state of software development inside and outside of Google. They have a massive internal library of easily searchable code. They’ve pioneered the SRE approach to DevOps. Their hiring practices (contentious though they may be) at least ensure that the bar for employment is kept high.

» Continue reading…

Google Test Pretty Printer

I have a new project up on GitHub: Google Test Pretty Printer.

» Continue reading…

How to Redesign a Blog

For several years, I ran (and, more often, neglected) a blog over on Google Blogger. I have no particular complaints about their service, but it simply wasn’t a great fit for me, so I switched over to a new setup. A couple of the software development blogs that I follow have gone into some detail on how they redesigned their own sites (examples are Troy Hunt and Dan Luu), and it’s made for some interesting reading, so here are my own notes on the process I used.

» Continue reading…

Regex Cheat Sheet

Regexes (regular expressions) are an extremely useful tool, but I find myself getting tripped up by differences in their APIs and capabilities in different languages. Here’s a regex Rosetta Stone, covering how to use regexes in various programming language.

» Continue reading…

Automated Image Editing for the Artistically Unskilled

GIMP is perhaps the poster child for bad open source usability. This may not be entirely fair; the UI is better than it used to be, and GIMP now has excellent docs, so a minute with Google will teach you how to do anything that the UI fails to make clear.

» Continue reading…