Learning needs to be effortful to be effective
Online content makes edutainment the norm among curious and intelligent people, who don't realize that they aren't actually learning what they think they are.
You don't need Scrum, you just need to do Kanban right (2022)
Hot takes and cold truths on software, startups, and the lies we tell ourselves.
Why do programmers need private offices with doors?
The case for giving programmers private offices with doors — why open offices destroy deep work, how interruptions cost far more than floor space, and what the research actually says.
How to hire engineering talent without the BS
Best practices for conducting effective interviews and actionable insights to build an inclusive hiring culture and hire top-tier engineering talent
What it feels like to work in AI right now
Fear, FOMO, and the scientific exodus driven by ChatGPT
Stopping at 90%
A common pattern is to stop short of the real finish line for your project. A little evangelism, documentation, and polish can go a long way.
How to be a consultant, a freelancer, or an independent contractor (2009)
This is a series of pages that guide you through the creation and operation of a successful consulting business. I’ve written this after running a fairly successful consultancy business in the mid-90’s and reviving this business in 2008. I’m primarily active in software, so some of the things in here will be skewed in…
On the slow productivity of John Wick
I found myself recently, as one does, watching the mini-documentary featurettes included on the DVD for the popular 2014 Keanu Reeves movie, John Wick — ... Read more
The “three things” exercise for getting things out of talks (2011)
(More general advice on going to talks is here . As with all my webpages, feedback is more than welcome!)
Remote work requires communicating more, but less frequently
Async communication is like gzip compression for humans: more processing up front, but greater throughput with fewer packets.
Engineers Need to Write
I hated writing in high school.
We invested 10% to pay back tech debt
Why and how we continuously invested the team bandwidth to pay back tech debt and what were the results?
Career Advice (2013)
To my great surprise, young people now somewhat frequently contact me in order to solicit career advice.They are usually in college or highschool, and want to know what the best next steps are for a career in security or software development.This is, honestly, a really complicated question, mostl...
The Failed Commodification of Technical Work
The most talented data engineer I know, and my first manager, is a man that loves cooking. I mean, you might think you love cooking, but this guy loves cooking. The most excited text message I received this year was from him, proudly sharing the goddamn analytics on the heat distribution of chicken in his oven with…
Leaving Haskell behind
For almost a complete decade—starting with discovering Haskell in about 2009 and right up until switching to a job where I used primarily...
Incompetent but Nice
A question I’ve never been able to answer to my satisfaction: how do you manage people who are nice but can’t do the work?
Good code is like a love letter to the next developer who will maintain it
We often romanticize the notion of programming, presenting it as an abstract form of art, a science, or even a form of magic. The truth, however, is much mor...
Important Coding Habits
The most important coding habits are those that enable us to enjoy this craft for years to come. Here are tips for programming without pain.
Own your work
One of the easiest ways to start sharing your work in the form of writing, designs, or photographs is by using the latest trendy platform in that space, especially when everyone else seems to be using it. How many Blogspot sites are you checking these days? They still work, but Google has killed one or two services…
Buying an iPad Pro for coding was a mistake
I bought the iPad Pro M1 chip in hopes of a lightweight, fast, multi-purpose device that I could also code on.
Surviving Burnout (2015)
The first thing I know about burnout is this: burnout happens when we become locked in a cycle of caring about the results of our actions but having no meaningful control over those outcomes. I first learned this while reading about social workers, but the problem is abdundant in tech. I’ve seen it play out in every…
Job Hunting in 2022
My experience hunting for a job in late 2022, and advice for other job seekers
Contracts you should never sign
There are types of contracts that you should be wary of signing, particularly in the software engineering and IT industry. There are potential pitfalls of non-compete clauses, confidentiality agreements, exclusive distribution agreements, and vague project-based agreements. It's important to understand the…
Being “rockstars”: when software was a talents/creatives industry
I offer a high-level model for why software work feels like it sucks now: we don't treat software like creative output.
Writing an engineering strategy
Once you become an engineering executive, an invisible timer starts ticking in the background. Tick tick tick. At some point that timer will go off, at which point someone will rush up to you demanding an engineering strategy. It won’t be clear what they mean, but they will want it, really, really badly. If we just…