Best Of: A Series
Some of my favourite articles from over the years.
January 31, 2026
Or, getting a 100x speedup with one dumb line of code.
You always know it’s a good bug when your first reaction is, “How could this even happen?” The other day, I was refining the dashboard of a web app we’re working on – as you do – and I noticed it was taking forever to load. Like, it had been...
7 min read →
May 31, 2025
Some highlights and lowlights.
I think of presentation slides as having 3 main jobs: Emphasize key points, so people remember Break up complex concepts, so people learn Entertain, so people pay attention This calls for slides that are mostly images or very short phrases. A minority of slides justify designing something to match the...
5 min read →
April 30, 2025
How LLMs are making traditional apps feel broken.
First, there was the terminal. You typed text. Scrolling text came back. It was: Powerful Flexible for power users Easy to program But also, since it was centered around a blank input field, it was: Daunting Unintuitive Bad for selecting and manipulating stuff Fortunately, in the intervening decades our user...
8 min read →
December 31, 2024
A method for magic.
Years ago, Teller performed a magic trick.1 First, he’d have you pick a card. He would attempt to produce the card, but fail, indicating the card may have travelled elsewhere. He’d then lead you on a short walk to a nearby park, and then be inspired to dig a hole....
2 min read →
June 29, 2024
On accidentally becoming a CEO.
A lot of startups with first-time founders have unclear roles. When I started my first business, Steamclock’s co-founder Nigel was far more experienced, being ten years my senior. I’d assumed he would take a more CEO-like role, but other than that I’d put little thought into our positions. We were...
4 min read →
September 30, 2023
An acquisition gets weird.
A long time ago – at the turn of the century, as kids would call it now – my first job was at a dialup internet service provider. Officially, I was hired to be a sort of errand-boy. Instead, the role was more interesting: a front seat for one of...
7 min read →
July 31, 2023
A habit for addressing two-way decisions.
Sometimes teams get stuck on a decision. My favourite trick for getting unstuck comes via Pixar’s Michael B. Johnson. In 25 years there, he helped Pixar build the production workflows they use to make and iterate their stories, and was tasked with helping teams “fail as quickly as possible.” To...
3 min read →
July 1, 2022
A mental model for service businesses.
A few years back, my team decided to get a custom meeting room table. In our search for something great, we were referred to a small studio that does great work: East Vancouver’s Union Wood Co. The team there met with us, showed us various samples, and asked thoughtful questions...
2 min read →
February 1, 2022
Finishing things requires simplification.
Project management is, roughly, the art of ensuring a team gets what needs to be done, done. Given that, a lot of the focus ends up being on those needs. Checklists, breakdowns, schedules, updates – all focused on the things that need to be done. While that’s all very important,...
2 min read →
September 1, 2021
Coordinating a large product org is hard.
Agilebits recently caused a stir with their announcement that they’ve rewritten 1Password 8 as a cross-platform Electron app, replacing their well-loved native Mac app. The takes came hot and fast. Like many developers, I love and appreciate a well-crafted native UI, and I’ve been somewhat skeptical of the consistent trend...
7 min read →
April 30, 2021
Why every diet could use the occasional book.
For most of my life, I rarely read books. I’m a pretty high-energy person, but a rather slow reader. Ever since I grew into an Extremely Online teenager, books have felt a bit… sluggish. Less informative, per hour invested, than the alternatives. Low density. I’ve always loved the idea of...
4 min read →
December 31, 2020
On retiring words from our vocabulary.
Humans are wired for language. Soon after birth we start noticing phonemes, and within a year we’re recognizing words. Then we’re off to the races, absorbing vocabulary, trying out new words, and refining how we communicate. Despite having learned enough words to get by, as teenagers we continue to rapidly...
7 min read →
February 28, 2020
Social etiquette proves hard to navigate.
As I was told, some years ago a team of contractors were visiting the office of a big potential client. Hoping to impress, the sales lead on the deal brought a skilled product designer along to the meeting, as well as a software developer who was well versed in the...
3 min read →
November 29, 2019
How augmented reality is far more than a phone on your face.
An annoying thing about the future is that, at first, it sucks. The original iPhone was, to many people, obviously great. Although even the most optimistic iPhone users of 2008 mostly underestimated the impact smartphones would eventually have on work, play, and society, the iPhone was still clearly a product...
7 min read →
May 31, 2019
Like all good things, iTunes comes to an end.
Once upon a time, Apple debuted an application for playing music. Yes, an application. That’s what we called apps back when dinosaurs roamed the Mac. And one of the most-loved applications back in that ancient era was for playing your MP3s. It was called iTunes. iTunes brought together a...
5 min read →
January 31, 2019
Apps should be interesting, but not like that.
When launching a product, especially a consumer-oriented one, you want it to be interesting. A novel, bold, or distinctive UI can make an app stand out from the crowd, be memorable, and inspire curiosity. Plus, it’s cool. Luckily, there are a lot of ways you can make an interface interesting....
4 min read →
May 30, 2018
A crashing Xbox proves hard to debug.
A fun thing about programming is that most days, you make progress. Maybe you fix some issues, maybe you add a feature, maybe you build towards something bigger. Your code moves ever forward. Until it doesn’t. On occasion, you will hit a Bug. Not a mundane bug, some trifle you...
5 min read →
April 2, 2018
Cheese please.
Canada has a cheese problem. Back in 1970, dairy farmers convinced the Canadian government to enact something called the “National Milk Marketing Plan”. This regime greatly restricted the production and sale of dairy, creating a cartel. The goal was to increase dairy prices in Canada – because who doesn’t like...
5 min read →
August 31, 2017
We see an eclipse.
Most things in our world are continuums: you can have none, a little, a lot, or the whole thing. A few things are binary – it’s either there or it isn’t. A total solar eclipse is one of those binary things. Even when the the moon has covered 99% of...
5 min read →
March 31, 2017
An iceberg looms, and we take evasive action.
The status meeting is going well. Your demo was well received, the new feature is looking great, and you’ve been nailing your estimates. The product manager glances at her notes, and remembers one last thing. “Oh also, a lot of customers are asking for offline editing support on this screen.”...
5 min read →
October 31, 2016
Idea Guy wants an NDA signed.
Every week, I receive roughly a dozen new project inquiries. Since Steamclock works with perhaps a dozen clients in a year, I triage roughly 50 leads for every one that turns into a real project. The time I spend doing sales is neither fun nor directly producing revenue, so I’m...
5 min read →
January 31, 2016
Parse teaches us about shipping.
Some time ago, we had a client come to us with a problem. Their app was a mess. It consisted of roughly 400 kilograms of copy-pasted Objective-C, written by a departed team member in some kind of over-caffeinated fever dream. There was no server logic, or anything else that would...
5 min read →
November 24, 2015
Stephanie isn’t the only one upset about an app.
Update 2: This story now has an epilogue. One of the various things I do at Steamclock is provide support for our apps. Our music apps don’t require much support, and much of the email we get is positive, so tending to support is generally pleasant. Or at least it...
8 min read →
February 28, 2015
There are too many JavaScript frameworks.
Most programming languages support a small number of popular, stable application frameworks. Objective-C and Swift apps use Apple’s excellent Cocoa framework. Ruby apps more often than not use Rails. Java has a handful of established web app frameworks, and they come and go relatively slowly. In the meantime, the latest...
7 min read →
September 30, 2014
I get upset about a shift key.
In iOS 7.1, Apple changed the design of the shift key. This was the worst thing to happen in the history of software. When the shift key is on, it blends in with the letter keys. When it’s off, it blends in with the function keys. Neither state sticks out...
2 min read →
May 31, 2014
Running a startup turns out to be weird.
I published a more refined version of this story in 2024. Like all respectable businesses, Steamclock started in a basement. Four years ago, we outfitted Nigel’s basement with the old desks we’d imported from our corporate jobs, and some basic office chairs. Our presence was fascinating to Nigel’s kids, and...
3 min read →
December 24, 2013
Being real brings the haters.
Acting professionally and being a professional are different things. One year ago, we released Party Monster, our fun little DJ app for parties and road trips. We take our work seriously, but we included something a little unprofessional: by default, the app wouldn’t play Nickelback. Here’s what reviewers had...
5 min read →
July 9, 2013
We try to make the best products we can.
“Minimum Viable Product. It’s an interesting term, and I don’t… I’ve never… really thought about it before. We don’t really do Minimum Viable Products, I guess we do Maximum Viable Products.” – Cabel Sasser A Maximum Viable Product is a product that is as good as the market will...
4 min read →
July 15, 2011
We make an app feel fast.
At Steam Clock we go to a lot of effort to make sure we ship apps with a high level of polish. Making your app solve the user’s problems well is the first 90% of building a great app. Polishing the hell out of that experience so it’s a joy...
5 min read →
June 11, 2010
I leave my dream job.
Today was my last day at Apple. Working there has been the experience of a lifetime. The people, the products, and the coffee are all wonderful. I’m going to miss laughing at rumour sites, hiding prototypes, and not needing to explain where I work. At Steve Jobs’ commencent address at...
2 min read →
March 4, 2009
I run a project. Poorly.
Some lessons in contracting learned by being a slave programmer. When the tech bubble burst, I was young and inexperienced. The local ISP where I’d been learning PHP laid me off, so I struck out on my own doing freelance web development. They say you have to learn through mistakes...
5 min read →
April 24, 2008
We say no to bad modal dialogs.
Curtis inquired in a comment on my last post about “Yes” and “No” being poor menu options. There are many UI design sources that suggest this, but I go as far as to say dialogs should never use Yes and No as options. OK is almost as bad unless it’s...
2 min read →
November 22, 2006
A kid tries to make an RPG in BASIC.
Of all the things I’ve written in my ten years of programming, my first big project, FantasyTech 3, was one of the most provoking. I like the word provoking because it doesn’t say something is good, just that it provokes. FantasyTech was a huge, unmaintainable, frightening hack job that seemed...
3 min read →
You’ve read the best Allen Pike has to offer. If you’d like to read the other stuff, you can visit the archive.