Est. 2023 · Denver, CO ktb/os · live
Interview · 22 min / interview · 22 min

"The best software feels like a tool, not an app": a conversation

We sat down with a software engineer who's shipped at Apple, Adobe, and three startups you haven't heard of.

Editor’s note: We spoke with Linnea Park over two evenings at a bar in Longmont. She asked us to use her first name only; she’s mid-job-search and would rather this not be the top Google result for her. She agreed to let us quote her at length. The conversation has been condensed, with her sign-off, for readability.


Michael: When did you first know you wanted to write software?

Linnea: I don’t remember wanting to write software, specifically. I remember wanting to make things. I was a kid on a Mac in the nineties, and I remember figuring out that if I opened ResEdit on my mom’s iMac I could change the words in the menu bar. The menu bar! Nothing in the physical world worked like that. Every real thing was the way it was because someone decided, far away, that it should be that way, and you couldn’t change it. The computer was the only object I had ever held that you could argue with.

That’s the feeling. Everything else was downstream of that feeling.

Michael: You worked at Apple for six years. You’ve said elsewhere that you left for reasons you don’t want to get into. I’ll respect that. What I do want to ask: what did six years at Apple teach you about what makes software good?

Linnea: The one thing Apple is genuinely the best in the world at — and this is going to sound weird — is deciding what not to ship.

I’ve worked with world-class engineers at three other places. I’ve worked with people who can do things with compilers I cannot explain to you in English. Apple’s engineers are in that bucket. They are not better than the engineers at Adobe or at Google, at the talent level.

But Apple has a much deeper institutional knowledge of subtraction. The number of things cut from a shipping product, at Apple, is probably ten times what’s cut at your average startup. And the cuts are made earlier, and the cuts are made for better reasons, and when something makes it into a product it’s been looked at by more senior people than anywhere else I’ve worked.

The reason Apple software feels the way it feels — whatever your opinion of it — is that it has been subtracted to a shape. Everyone else’s software is piled to a shape.

Michael: That sounds easier to say than to do.

Linnea: It is brutally hard to do. People at Apple have cried at their desks over it. I’ve cried at my desk over it. Your feature is great and it’s still getting cut. Your feature is the one you interviewed for, and it’s getting cut. I’ve watched senior engineers lose it because a thing they worked on for two years didn’t ship in the version it was promised in.

What Apple does right is that the cut, when it happens, is not a punishment. It’s a design move. It’s not “this isn’t good enough.” It’s “this doesn’t fit.” And the people deciding that the thing doesn’t fit are better at deciding what fits than anyone else I’ve seen. That’s the institutional knowledge. That’s the part other companies can’t copy by hiring one executive.

Michael: A lot of my friends who are engineers have started using phrases like “the tool, not the app.” When I hear it, I nod along, but I’m not sure I know what the distinction is, exactly. You’ve used that phrase. What does it mean?

Linnea: The difference for me is whether the software is trying to help you get something done, or trying to have a relationship with you.

A tool is a thing you pick up, do the job with, and put down. A hammer doesn’t want to get to know you. It doesn’t send you a push notification on Saturday morning reminding you that you haven’t hammered anything this week. It doesn’t try to recommend new things to hammer. It doesn’t greet you by name.

An app is the opposite. An app is software that is trying to form a parasocial bond with you. Every app, every one of them, is built on the assumption that if you use it more, that’s a good thing. More screens. More screens per day. More time per screen. That’s the business. That’s the funding. That’s the KPI.

A tool’s KPI is: the user did the thing and put it down. Which is the worst possible KPI from a product-growth perspective, and it’s the best possible KPI from a “is this software actually good for people” perspective.

Michael: Is that a false dichotomy? Can’t software be both?

Linnea: It can be. But the forces are not symmetric. Nobody’s boss is ever telling them “we need to get fewer engagements this quarter.” Nobody ever got promoted at an app company for designing a feature that shortened user sessions. Meanwhile, the toolmaker’s boss says “how long did it take them to do the thing,” and “how often did they get frustrated,” and the tool gets better.

Software turns into an app by default. You have to actively keep it a tool.

Michael: You’ve worked at three startups. What’s the most common thing you’ve seen kill good software at that scale?

Linnea: Founders who believe their own story. The startup is always pitched internally as something noble. We’re giving writers their voice back. We’re democratizing whatever. We’re fixing something nobody else has the guts to fix. And every single founder I’ve worked for believed it. To a point. And then at some point the funding round happened, or the big hire happened, or the exit talk happened, and the product pivoted, and the pivot was always, always, always, in the direction of engagement.

They all believe they’re making tools when they start, and they all make apps by the end. It’s not because any of them are liars. It’s because the ecosystem rewards one shape and punishes the other.

I’ve stopped holding it against them, honestly. I just look for the places where the founders have structurally immunized themselves — bootstrapped, or indie, or a nonprofit, or enterprise-paid, or weird. The places where, if they make a tool, they don’t get punished for it.

Michael: What’s a piece of software you use every day that you think is a genuine tool?

Linnea: BBEdit. Obsidian. Ableton Live. The Terminal. Git, kind of. My password manager. iA Writer. Photoshop 7.0, god help me, which I keep on an old laptop.

All of those things have this in common: they don’t want to be my friend. They want to do a specific job when I tell them to. They don’t buzz at me. They don’t improve without my permission. They don’t go through reorgs.

Michael: What about ChatGPT? Is that an app or a tool?

Linnea: (laughs) It wants to be a tool so badly. It’s working very hard. And the people building it genuinely want it to be a tool, a lot of them. I’ve met some of them, they’re lovely. But the business model is entirely oriented around the thing being an app. Session length. Retention. The whole system is designed to form a bond with you, and the founders’ public writing even celebrates that bond as a feature.

That’s a company trying to make a tool while structurally configured as an app company. It’s going to be really hard for them. I’d bet against.

Michael: Last question. If you were starting fresh today, writing software for something you cared about — what would you do differently from the last time?

Linnea: I’d ship smaller. I’d ship with one user in mind and I would literally know their name. I would not raise money. I would charge on day one. I would write down, in a document, what the software would never do. And I would keep that document on a wall.

Michael: Thank you.

Linnea: Thank you. Buy your brother a drink for me.


You can find more of our long conversations on the podcast. If you’re a software engineer, designer, or researcher with a story like Linnea’s, we’d love to talk.

WRITTEN BY
Michael Kelso

The older one. Writes essays about the shape of software and runs the Linux rig nobody asked him to build.