RSSAmplifier

Blog

michaelheap.com

I write about systems, people, and what we learn when things go wrong.

michaelheap.comRSS feed ↗10 posts

Latest posts

Asking better questions

There's nothing more terrifying than getting a "Hey, quick question. Are we on track to launch by X?". It's not the question itself that's terrifying. It's everything you don't know when you hear it: What do they know that I don't? Why do they care right now? What happens if I give the wrong answer? That ambiguity is what drives anxiety. There are multiple ways to answer the question, each giving…

It just has to work

We've been trained all of our work life to "do things the right way". The right process. The right level of detail. The right amount of alignment. You know what happens next. Six months later, nothing has shipped. The Hidden Cost of "Doing It Right" When you're a scrappy startup, everything is allowed. Quick hacks, half-baked ideas, and sometimes editing things live in production. But as a company…

Disable VSCode embedded browser

VSCode recently started opening my blog previews as an editor tab rather than in my normal browser. It turns out that this is a new Integrated Browser feature inside VSCode Insiders. To disable it, add the following to settings.json : json "workbench.browser.openLocalhostLinks" : false Or you can search for workbench.browser.openLocalhostLinks in the settings panel and uncheck the box. Then…

When AI beats procrastination

I have a list. I’m sure you have a list too. A list of all the things that could be, if only you had more time. Time to explore the idea. Time to build a prototype. Time to invest in something new. And if you’re anything like me, time is an excuse. Once I get started on a project, it becomes all-consuming. I find the time - 10 minutes here, 10 minutes there. If I'm being honest, the list isn’t…

Prompt Engineering for Humans

A while back, I was working on trello-cli , a CLI tool I maintain. I've been slowly adding commands as time allows, but this time I wanted to try out this new-fangled "agentic development" thing that everyone is talking about. So I opened up my terminal, asked it to "Add support for showing card details" and let it churn away. Once it was done I reviewed the output and, honestly, I was…

In the spotlight

I've spent most of my career on the periphery. Building the tools, documentation and platforms that make it possible to build the product that customers pay for. I remember fighting tooth and nail for headcount. Lobbying to get some time on the company all-hands to make sure people know that we exist. Being worried that when cuts inevitably come, the teams I work with would be first on the…

Choose your losses

Strategy is choosing what you’ll be bad at. I’ve been revisiting Michael Porter’s work on strategy, and the point that's stuck with me is this: trying to be “the best” is usually a trap. “Best” often means you’re competing on the same dimensions as everyone else. The same benchmarks, same dashboards, same playbook. You can lead for a while, but the moment everyone copies what works, yesterday’s…

Never leave on a no

One of the biggest mistakes I see new managers make is how they manage disagreement with their boss. They do one of two things: They nod along, but disagree quietly and disengage They keep arguing until they run out of time and the meeting ends awkwardly, with no real decision Both options leave their boss frustrated. Something that's worked well for me is that I never leave a conversation on a no…

Update the AUR from GitHub Actions

I maintain trello-cli , which is also published to the Arch User Repository (AUR). Each time the package is published, I needed to update the PKGBUILD with a new version and sha512sum . I'm no longer an Arch user (I miss it, but MacOS works so much better for my current role) and so I don't have makepkg readily available. I had an idea that updating the PKGBUILD could be done with GitHub Actions:…

Yes, if…

People love hearing “yes.” In a meeting, it sounds like momentum. In Slack, it reads as alignment. On a roadmap, it feels like progress. It's also the first step towards disappointment. "Yes" is a contract - a commitment to deliver something. If you say "yes" to everything, you start paying for it with late nights, dropped balls and a creeping resentment that's hard to admit because you chose to…