I have a been making a very large mistake for the past few years.
Now normally some productivity guru will talk about, “I was working on the wrong things,” or “I was working to the wrong goal.” Those are definitely problems that you can and should fix if you become of aware of them.
But that’s not my mistake I’m talking about.
I’m only beginning to realize how large of a mistake I made. Specifically, I had forgotten one of the oldest admonishments that I ever learned about software engineering.
Rule of Economy: Programmer time is expensive; conserve it in preference to machine time. — Eric Steven Raymond, The Art of Unix Programming
This maxim is usually an argument for throwing more hardware at a problem rather than trying to increase performance.
I had fallen victim to the other lesser known variant: not upgrading my hardware often enough.
In my defense, my perception was the performance really wasn’t much worse. The battery life had slipped a little, but that was tolerable.
Turns out hardware has continued to improve over the past 8 years between my last upgrade and now.
I used to do personal projects on an old 2015 MacBook Pro, and last week I switched to a 2023 MacBook Pro.
Now I’m going to show you some specs, but just looking at specs tells you very little about what I’ve experienced.
Now I don’t really care if you’re a Windows user or a Linux user or some other flavor of machine, I’m not here to sell you on paying the Apple Tax.
For me, it’s worth it because I’m used to MacOS,1 I do enough MacOS specific stuff (iOS development), and I use enough MacOS specific2 apps.
My specific issue was waiting 8 years to upgrade to a new machine. Now I don’t quite know if 5 years would have been the right choice or not. It may not have been. But this hardware upgrade for me has been night and day.
I realized I had been paying costs before in three ways that affected my flow state:
Time to start
Context switching
Max time allowed
Let me also provide context for what I’m talking about:
What: side projects or hobby things or just writing this newsletter
How long: 1-2 hour blocks. Maybe a 4 hour block with family interruptions in the evening. Very rarely more than 4 hours on weekends.
With what tools: JetBrains IDEs, Docker Desktop, several Chromimum apps (like Horse), maybe Postgres
Time to Start
The amount of time from deciding to start a task to getting to that task matters a lot. Since I get relatively small snatches of time to do a thing, the amount of time for me to get into a thing matters even more.
If you’re like me, and you know it’s going to take a minute for your computer to start, you will start it and then go do another thing. For me, that would be getting some water or coffee to drink.
However, if you expect to be able to start immediately, you do your other side quests first (coffee/water). Thus freeing you to actually start.
My old Mac’s start up time or wake from sleep has never gotten slower to my perception. Additionally, starting up specific apps have never really gotten slower either. However, it was always enough time that if I had something else to do, my attention would slip to the other.
Additionally, the more things that I left up for my machine to wake from sleep, the longer it took. But leaving them to be woken from sleep is faster than restarting them all each time.
However, if I left too many things up, then it took too long to load them all up. In particular, I found myself regularly closing Docker when I didn’t need it, because it sucked down everything I threw at it.
To give you an actual number to hone in on, I sit down at my machine and enter my password. From start up time from password entry to both Chrome window and a single IDE opened:
2015 MBP — ~20 seconds
2023 MBP — < 1 second
Context Switching
A related idea to time to starting costs is switching costs. So you got into a flow state and are working along when you need to switch contexts to do something related to your task, but it’s in a different app.
I found as I’ve been writing more that I wanted to read more stuff online. If I have Obsidian up to take notes in and write the first draft of articles, and then have lots of browser windows open, then I have to swap between them to find things.
Even though that switching happened relatively quickly, any amount of screen lag or other delay could potentially cause me to loose my train of thought.
This is a problem if you’re comparing three different documents and trying to find a common line of thought to build on.
Or if you’re looking at build logs and reading the errors in StackOverflow and asking your favorite LLM if it has any thoughts.
That switching needs to happen very fast for me. Otherwise I notice the switching and potentially lose focus. In the same way I can walk through an automatic sliding door, but come up short as my face almost hits the door when it suddenly opens. I probably should be able to resume walking at a steady gate, but it’s too late: my attention was jostled.
To quantify this for you, let’s say I was writing along in Obsidian and wanted to start up Chrome from a cold start:
2015 MBP — ~5 seconds
2023 MBP — < 1 second
Max Time Allowed
The previous two examples are 100% about getting into and staying in flow. This one is about something that most people don’t consider: how long you’re allowed to stay in flow.
I tend to move about for hobby projects because I will do other things while thinking about the thing I’m working on.
I tend to surf around a lot in my house. I may start at my desk in my office and then go to the kitchen table. Later I’m on a couch or a recliner. Later on I’m upstairs on a different couch or recliner.
What other things am I doing in between? Small clean up or dishes or cooking3.
Is it better to just sit down and do a task? Yes, absolutely, but that’s not always the kind of task I’m doing. I’m not always doing an execute mode task. I’m often thinking—solving the problem in my head. I have several white boards around the house now, and I have found I do exceptionally better at solving problems if I’m allowed to physically move about a space and write on things.
But for argument’s sake, let’s say that I’m not moving about. Let’s say I get comfortable in one chair, and I stay there for a long time.
In either of these cases, a limitation for working is the battery life of a machine. This is a thing highly dependent on workload that you’re running.
For me again some numbers, without Docker Desktop running but several Chromium apps and IDEs running:
2015 MBP — 1-2 hours
2023 MBP — 12+ hours
If I have Docker Desktop running:
2015 MBP — 30 - 45 min
2023 MBP — 12+ hours
Yes, that’s an order of magnitude more battery life.
Productivity Afterburners
The main thing that I have now specifically noticed is not that I’m so much more productive while I’m doing my tasks.
I am now doing more things and more kinds of things. I can start into flow faster, stay in flow more easily, and stay in flow longer.
Crucially for me, I take on tasks now I would have never done before, because I had taught myself that I wouldn’t get them done unless I was sitting down plugged in for long periods of time.
I feel like that bears repeating: I am doing tasks today that I would never have done before.
If you have the money and you can afford—companies in particular should pay attention to this—then hardware upgrades appear to be a way to literally buy back time in your life and get things done you didn’t think were possible.
Test Yourself
Now I invite your to test yourself and your setup, I mean this quite literally.
Sit down with a timer for a couple of these and actually run it. (The battery life on will be less scientific, but you can use the estimate from your system for time remaining on battery life after having run it for like 30 min to 1 hour.)
You don’t have to report them, of course, but it may be that others find it valuable to know.
To repeat my tests were:
How long does it take to go from entering your password to have your apps up and running on your laptop?
How long does your browser of choice take to load for you on your laptop?
How long does battery life last for your laptop under a normal load?
To be clear, I dabble in other machines. I was using ChromeOS over a vacation recently, and I was writing this very newsletter with Obsidian on that device. My gaming machine is Windows 10. I intentionally stay up with all three operating systems.
Or best experience is on a Mac.
I got a smoker last year. I love that thing. If you ever get a chance to try smoked foods, please do so. You’ll wonder what you’ve been missing all your life.