Archive of articles
I write once a month about software and other tricky things.
Article Series
- Best Of – 22 articles.
- Large Language Models – 9 articles.
- Going Overboard – 7 articles.
- Moments in a Life – 10 articles.
- Podcasts – 7 articles.
- Making Great Products – 8 articles.
- Steamclock – 37 articles.
- Building Teams – 14 articles.
- Living Thoughtfully – 17 articles.
- Link: Final Fact
- Testing the Untestable – The four phases of automated evals for LLM-powered features.
- Link: BC Votes
- Link: Infer, an AI Eng Meetup in Vancouver
- Our Unevenly Distributed Future – How self-driving cars become mundane.
- Starting Forestwalk – A wild startup appears.
- Pushing the Frontier – If – and when – GPT-5 might eat your lunch
- Feeding the Baby – On accidentally becoming a CEO.
- LLMs Aren’t Just “Trained On the Internet” Anymore – A path to continued model improvement.
- Link: Building Slack
- Sell First, or Build First? – An age-old startup question.
- Link: Steamclock’s Next Chapter
- The Dangers of Curiosity – On the risk, and power, of wondering.
- Once a Month – An easy way to do more things you love.
- From Chatbot to Everything Engine – A curious design constraint signals an ambitious future.
- Splitting Services and Product – The story of a plan: take a break, and get focused.
- You Should Have a Research Question – How to turn curiosity into a superpower.
- Build a Deck of Heroes – A way to relate to inspiring people.
- The Curse of Dialup World – An acquisition gets weird.
- Make the Thing a Link – A quick way to level up prose.
- Link: The Feedback Wizard
- Do Something, So We Can Change It! – A habit for addressing two-way decisions.
- Going Way Beyond ChatGPT – Techniques for building products on LLMs today.
- How Leaders Manage Time & Attention – Some findings on productivity.
- Collect Stories, Not Generalizations – An approach for product interviewing.
- 32K of Context in Your Pocket – A wild large-context LLM appears.
- A 175-Billion-Parameter Goldfish – The problem and opportunity of language model context.
- Humans Need Play – On a vicious pattern that breeds burnout.
- The Care and Feeding of Feeds – Three new apps make for healthier scrolling.
- Dungeons & Developers – How to simulate tricky conversations.
- Link: It Shipped That Way
- You Should Propose More Things – A habit for getting decisions made.
- 2022 Vancouver Election Guide – 9 parties. 59 candidates. One ballot.
- A Password Autofill Surprise – On psychological safety.
- How to Go Over Budget – On working within an estimate.
- Link: Setting Two Spies Free
- Giving a Shit as a Service – A mental model for service businesses.
- Someone Wants to Learn From You – How writing habits pay odd dividends.
- How to Buy a Family EV – Doing battle with the global supply chain.
- Coda vs. Notion, and Emoji Pickers – On tools for building knowledge together.
- How Two Spies Closes Cities – A little story about iterative experimentation.
- What Doesn't Need to Be Done – Finishing things requires simplification.
- Beyond Optimism – On a mindset for doing hard things.
- The Burgeoning Need for Focus – How increasing resources can decrease effectiveness.
- Fresh Air Life – On getting out in the rain.
- Fight for Outside Perspective – The case of too many team meetings.
- The Persistent Gravity of Cross Platform – Coordinating a large product org is hard.
- How to Write Docs People Read – On the power of a guide.
- Amazing Atelic Activities – On doing things for the doing.
- The Teams You Worked on May Have Sucked – On who we compare ourselves to.
- Link: Should You Build a Mobile App?
- Books Are a Seed You Can Plant – Why every diet could use the occasional book.
- Link: Remote Hiring at Steamclock
- An Iterative Workflow for Attention – My current OmniFocus setup, and why it works.
- Do Great Work, Then Tell People About It – On marketing, and when it matters.
- Link: App Tracking and Analytics
- Streaming Stories and Troubling Tales – Apple Music proves an imperfect source of kids' stories.
- Two Birds, One Scone – On retiring words from our vocabulary.
- Living, Fast and Slow – On the importance of pacing.
- Link: On Refining Apps' Text
- How to Not Build a Social Network – I attempt stop you from making a mistake.
- 6 Months in the Closet – I make do with a rather small office.
- The Case of the Missing Tuna – DoorDash loses money on me for the last time.
- Being Good at Roulette – Luck causes problems.
- The Secret Rules of iOS Development – Undocumented rules make for unpleasant surprises.
- Half Here, Half There – A simple suggestion for putting money to work.
- The Unified Theory of Cereal – How to do better than Corn Flakes.
- Explain Like I'm 3 – A new germ turns things upside down.
- Don't Drink the Cream – Social etiquette proves hard to navigate.
- Ode to the Beginning – The tech industry threatens to grow up.
- Link: Two Spies
- Guide to the Cold-Industrial Complex – A primer on making sense of cold medicine.
- The Coming Supremacy of AR – How augmented reality is far more than a phone on your face.
- Link: Rate This App
- Canada Election Guide, 2019 – Your vote – it's in you to give.
- Kitten See, Kitten Do – A cat teaches me something about parenting.
- Multiply Your Time – Separating the garbage from the important tasks.
- Being More than Nice – Being nice proves insufficient.
- Control the Silence – The one weird trick to MCing an event.
- iTunes: An Error Occurred – Like all good things, iTunes comes to an end.
- Making a List, Bolding It Twice – One weird trick for writing readable lists.
- Information Needed – App Review just has a few questions for you.
- 325: Podcast Episode Numbers – Podcast episode numbers may not belong in titles.
- Navigation Should Be Boring – Apps should be interesting, but not like that.
- Link: Fun Fact
- No More Oppatoo – Kids grow up, one quirk at a time.
- Leadership Mode Activate – On taking the controls of a powerful team.
- Vancouver Election Guide, 2018 – A housing crisis and dueling viewpoints make for a fascinating election.
- Blowing Up Your OmniFocus – We break some eggs upgrading to OmniFocus 3.
- White Guys Are the Worst – An old tweet summons a troll brigade.
- The Big Deal – The danger of a client you can't afford to lose.
- 372 Easy Steps to Expanding Your Mind – A long Instapaper backlog meets its match.
- The Great Bug Hunt – A crashing Xbox proves hard to debug.
- Caravan to Xcoders – A Meetup competitor lives and dies.
- The Canadian Cheese Cartel – Cheese please.
- Human-Only Inboxes – Bringing humanity to email with filters.
- Try the Opposite – We avoid local maxima by branching out.
- Chain of Fools – We dive into smart contracts - and bananas.
- No Pain, No Gain – We get out of the comfort zone.
- Longphone – We consider a very tall phone.
- Top Banana – A general plan for generalists.
- Do Not Disturb While Living – We suffer the tyranny of notifications.
- Bright Side of the Moon – We see an eclipse.
- Developing for iPhone Pro – We reimagine navigation bars.
- What Your Career Wants to Be – We learn Bluetooth, and it works.
- People You Want to Work With – We assemble a team.
- Steve Stories – Some tales of a legend.
- The Principle of Least Surprise – An iceberg looms, and we take evasive action.
- Feedback Mountain – I get religion about 1:1s.
- Assassinating for Fun and Profit – A new game appears.
- Goals, Dreams, and Pea Mayo – Goals get made, things get done.
- Rules to Get Paid By – We get paid the nice way.
- The Disclosure Indicator – Idea Guy wants an NDA signed.
- Socking Simians – We buy some App Store Search Ads.
- Creative Destruction – Good apps die young.
- New Here – A wild baby appears.
- Organizational Size Classes – I come to terms with growth.
- Too Many Slacks – Slack can't handle my scale.
- Diagrammatically Correct – Prototypers hack, architects diagram.
- Cofounding Variables – Finding a co-founder gets weird.
- The Joy of Shortcuts – Parse teaches us about shipping.
- Some Things About OmniFocus – Things is out, OmniFocus is in.
- The Worst App – Stephanie isn't the only one upset about an app.
- Being Less Wrong – Estimation is hard.
- Working Title – A junior developer wants to rule the world.
- Moving Swiftly – Steamclock bets big on Swift.
- Can't Stop the Music – Apple Music throws a wrench in the gears.
- The Supply-side Blues – Building apps for love can be unprofitable.
- Fix Your Mac With One Weird Trick – My Mac is sad.
- User Agents of Change – The user-agent string just can't stop.
- Moving Mountains – We run to the press.
- A JS Framework on Every Table – There are too many JavaScript frameworks.
- When Used Properly – The Aeropress box causes me great pain.
- Maximal Products at Çingleton – I give a talk.
- Buying One of Everything – We buy some ETFs.
- A Great App for Recording Podcasts – I evaluate building an app.
- The iPad Zombie – The iPad 2 shambles along.
- Schrödinger's Shift Key – I get upset about a shift key.
- Being Bad at Things – I learn to be less bad at being bad.
- A Lot Can Change in 6 Years – The App Store matures.
- A Company Made of People – Apple proves it's human.
- Feeding the Baby – Running a startup turns out to be weird.
- Burying the URL – Chrome considers hiding the location field.
- Hashed Out – Hashtags get banned.
- Up Up Down Down – I start a podcast.
- Elizabeth and Samantha – AI companions warm my heart.
- Unprofessionalism – Being real brings the haters.
- The Fall and Rise of Podcasting – Podcasting just keeps getting better.
- Searching the Curatorium – We search Twitter on the App Store.
- Maximum Viable Products – We try to make the best products we can.
- iOS 7: Catch Me if You Can – iOS 7 throws CSS a curveball.
- Making a funky app video
- Shipping Party Monster
- The Retina 13": Awkward
- The end of Rich Corinthian Leather
- 50 shades of black
- iPhone product shots, 5 years on
- A Monster in the lab
- Speciation in computing
- iPhone apps on the iPad 3
- iTunes' ball and chain: Windows
- The tweet to nowhere: protected replies
- 3 megapixels in your lap
- Anchoring startups
- Homes for Vancouver startups
- The pain of text formatting on iOS
- Design your way out of that paper bag
- Prism, the image browser
- Web technology in native apps
- Video: Making a JS meetup blow minds
- Providing joy at 60 fps – We make an app feel fast.
- Micro-subscriptions are here
- The Chrome Web Store: get paid to make things
- HOWTO start a technical meetup
- Simple lessons about the App Store
- Announcing WeddingDJ
- A Tale of two Budgetable competitors
- SproutCore spreads its wings
- Leaving Apple – I leave my dream job.
- Twitter is fixing links
- Scrolling libraries for Mobile Safari
- Choosing a viewport for iPad sites
- Four-way racing coming to PS3
- Altering Time retired
- Cassandra: Too fast
- More JSLint, less JSWTF
- An ode to split screen
- Unladen Follow 2: How annoying would this user be?
- Crafting realistic interfaces
- Tab Modality: Chrome makes it happen
- Announcing Unladen Follow
- Chrome for Mac annoyances
- Accessing Twitter with the OAuth Gem and Rails
- IE9 will be faster and rounder
- Feeds worth reading
- Blogger impersonation rampant
- Friedisms
- Stop the fire hose: Primary sources
- Not everybody likes LinkedIn
- I am not a contact
- Vancouver Javascript Meetup
- iPhone coming to everyone else in Canada
- Sony is Going after the touch
- iWork.com updated
- Want to use Wave in Explorer? No problem!
- GMail for HTML5: Loading code via comments
- Forum upgraded!
- Web app theme showdown: Aristo and Ace
- Rainbow pies
- Shaw trying to drown Novus
- Niche blogs: Saving you from my tea rants
- Unlimited music downloads
- Array.sort browser differences
- 3D CSS Transforms hit WebKit trunk
- Wine, donuts, and sex
- Electrolysis: Separating Firefox
- Textmate 2 Still Coming™
- Chrome's Webkit fork ends
- Real function names come to WebKit debugger
- Google's 3D on the web vs. Mozilla's
- Pricing games by length
- Mobifying the world
- GMail adds Undo Send
- iTunes DJ
- What your time is worth
- The California Guys – I run a project. Poorly.
- Kindle for iPhone
- Safari 4: Webkit gets dressed up
- Taking advantage of IE
- Dropping IE6 Roundup
- Twitter and URL mangling
- Antipode realigned
- All content needs dates
- Vancouver now in 3D
- Wesabe spices up your budgets
- Just let me play, would you kindly?
- iWork.com launches
- I'm not dead yet!
- Chromey Goodness
- Designing a dune buggy genetically
- Feature shotguns vs. feature lasers
- Textmate 2: "I'm not dead yet!"
- WordPress admin usability study
- SurfaceWare video
- Ten Tidbits from IE8
- JQuery kicking Prototype's ass
- Translink iPhone site launches
- CSS3 Borders still mired
- Seeing red: CSS sprite borders
- IE8 takes on Firebug
- Javascript engine showdown
- A better object.toString() in Javascript
- Firefox 3.1 adds border-image
- The horror of sneaker design
- Free Ideas
- XBox 360 drops to 5th place
- Two down, n to go
- Not another photoshop montage
- Google Lively
- No unlimited plan, thank you
- IE wants to know your background
- Canadian iPhone plans released
- Shipley on being oneself
- Appled
- Bad UI followup
- Cancelling "Yes or No" – We say no to bad modal dialogs.
- You will lose all unsaved progress!
- Twitter and dogs' butts
- Mac addicts and Firefox
- Elegant authentication in CodeIgniter?
- C++ getting lambdas and closures
- Farewell floating footer
- Japan shuns URLs
- Your browser's command line
- iPhone developer program stalled
- OLPC dream dies
- Indentation voodoo in Python
- Facebook attacks application spam
- Highlights from Web Directions North '08
- Firefox's new Mac theme
- The MacBook Cube
- One week of Safari
- Thinking about Amazon's SimpleDB
- The framework shouldn't wag the app
- phpBB 3 Released
- Antipode tweaked
- Programming as checklists
- Flickr integrates Picnik
- Hosting software rocks
- Web designers converging on Vancouver
- Competition in wireless coming to Canada
- Should eBook readers display double-up?
- Games, cores, and functional languages
- Why scale teams?
- OmniFocus gets 2500 preorders in 5 days
- Firefox 3 hits beta
- Death to minimization
- Altering Time news moved
- Alterations delivered to your doorstep
- The Long Tail of your Tunes
- Worst web design known to man
- Goodbye Boing Boing
- Eee: Linux notebook for $200
- Walking on the nightly side
- Fake unlimited gets the smackdown
- Really hard things
- Apple Store coming to Vancouver... in 2009
- 10 Days until Mac OS X 10.5
- Reddit killing Silicon Valley?
- Welcome to Antipode
- Palm responds to stimulus
- PHP tip: Path-independent sites
- Showdown: iPod touch vs. iPhone
- Fat nano will fit in change pockets
- The dialog is dead, long live the bar
- Worst ISP acquisition ever – The death of dialup turns weird.
- BuyMeNowNowNowNow!
- One Year of Altering Log
- Death to 'unlimited'
- EA's UI design sucks: won't let you play hockey
- Facebook commits seppuku
- The average marriage
- A message from the heavens Mountain View
- Workspacing
- Virtuosity: More Faith, fewer numbers
- Google Analyzes Altering Time
- Apache can do your speling for you
- Programming in a towel
- The iPhone: Awesome! Wait...
- The horror of ring tunes
- Q: Why was Google Answers axed?
- FantasyTech 3: GOTO FUN – A kid tries to make an RPG in BASIC.
- The Zuney Bin
- What's a Budgetable?
- Please let me design a cell phone
- Bye Bye Internet Explorer 6
- iPod SDK, where art thou?
- Sony doesn't want you to buy a PlayStation 3
- Getting people to do boring things for fun and profit
- Faith competing for Engineering
- Altering Time altered
- Review: Coke and coffee, sitting in a tree
- Report from WWDC 2006
- Comment away!
- What won't happen at WWDC 2006
- New Weblog Format
- Ass worked off; still faithful
- Vancouver Skytrain anagram map
- Places of Insanity
- Speaking of Faith
- Not discouraged by hurricanes
- Hurricane honours Faith
- It's Beta time!
- Beta: Baking for a couple weeks at 350
- Beta approaches
- What does loyalty look like?
- New insights
- Rocking in the free time
- Players want to interact
- First endgame nears
- health- burden+
- One thumb up
- It'll be a game Real Soon Now™
- Alpha Test: Round 3
- Apple goes Intel; Force disrupted
- Trying to keep faith
- Finding the gaps
- Fixing bugs you don't care about
- The blog post... of science!
- Quintillions of followers - a roundup
- Faith 3D and Internet Explorer 2 support
- New news article rumoured; experts baffled
- Eventful day of development
- Things to do, places to worship
- Graphs shown who's boss
- Beings of worship & psychotic episodes
- RSS newsreaders
- Back to engineering
- Work resumes
- Bit by bit
- Coding begins
- Logo chosen
- Engineering Faith announced!
- Google offers 1000MB of free email
- Next-gen barcodes track your every move
- "New cell phones suck" - youth
- US passes anti-spam bill; spammers rejoice
- Apple kicks ass, takes names
- The oddly placed wet floor sign
- Netscape Dies
- 200 million Hotmail accounts compromised
- Unquestionable evidence of evil: Powell
- "Asylum" development living up to namesake
- Youth sued for liking ninjas
- Get $10k for naming a baby
- Giga Hurts
- The Theatre Company Movie
- Why Ogg Vorbis?
- Website will suck less, experts expect
- Altering Time Newsroom uninspired
- Real's bloated mess seeps into naming
- Cell phone spam to be banned
- 5" by 7" PC to be released; Mavis Beacon sues
- The Sims more addictive than cocaine, experts suggest
- Napster to be purchased by Bertelsmann - both users interviewed
- Microsoft Xbox sells poorly in Japan
- Microsoft's anti-UNIX site hosted by UNIX
2024
2023
2022
2021
2020
2019
2018
2017
2016
2015
2014
2013
2012
2011
2010
2009
2008
2007
2006
2005
2004
2003
2002
So far I've written 407 posts, and these old ones are mighty stale. If you're looking to read some older articles, check out my Best Of series.