I wasn’t regularly blogging at the time (maybe a couple of posts a year). A colleague had recently asked me why all my projects ship on time, and in trying to figure out what I was doing right I realised it might be useful to write these ideas down. I think I gave my colleague an answer off the top of my head, then kept thinking about it and chatting with my partner. The first draft was just “shipping is hard” and “shipping requires one person to understand the project end-to-end”, and then I realized as I was writing that I needed to flesh out what shipping is. I didn’t think it was going to get that philosophical.
I’d say on the medium-to-hard end. It only took a couple of days from starting to write to publishing the post, so it can’t be that hard (some of my other posts have been in draft for months) but I did put a lot of effort into re-reading and editing. It took me a while to come up with “a project is shipped when the important people at your company believe it is shipped”: I knew there was some kind of surprising definition here but I didn’t know exactly what it was.
I agonized a bit about tone. Almost two years later, I’m much more relaxed - I just say what I think and I’m prepared to get negative feedback. But at the time I worried that I would come across as too arrogant. In particular, I was worried that the people I work with would read this and think “wow, who is this prick?” But in fact many of them gave me positive feedback, so I had nothing to worry about.
About a week from idea to final draft, if you count the three days I spent chatting about it with my partner. In terms of literal writing and editing time, probably about four hours of work.
Same way I write all my essays: sketch out some bullet points in a Markdown file, then begin drafting the article above those bullet points, then re-read the draft and line edit as I go. These days I copy my essay into Claude Fable/GPT-5.6-Sol as a final step for fact-checking. Back then the models weren’t really good enough to make that worthwhile.
I didn’t do any complete rewrites after the first draft. I think I added a section or two.
Sure! It’s all on GitHub, so you can see the first draft I submitted here. For instance:

I originally titled the post “How to ship projects at tech companies”, but figured “how I ship” was less arrogant. I also realized fairly late in the process that everything I was saying was tailored for big companies, so I added some edits to make that clear right at the end (including to the title).
Sorry, I genuinely don’t remember. It would have been at my kitchen table, probably, on my personal MacBook Air. I don’t ever write with music. Maybe a cup of tea?
If only there was a whole blog post you could read about actually shipping things into the world!
Jokes aside, my blog was very low-traffic at the time and I didn’t expect many people to read the post. I figured as long as it wasn’t totally embarrassing someone might find it useful, so I just posted it once I’d read through it a few times.
Four years earlier I’d had a post briefly crack the front page of Hacker News and get a hundred upvotes and thirty comments, which blew me away. This post hit number 1 on the front page, stayed there for I think two days, and got fifteen hundred upvotes and hundreds of comments. I was getting emails about it. People were messaging me at work to ask about it. I was completely unprepared.
Overall the reaction was surprisingly positive. I spent a long time reading through the comments (I think I read every one), though I made a hard rule for myself not to reply, so I wouldn’t get into any internet arguments. And it confirmed for me that people like reading my writing, which has motivated me to blog regularly ever since, which has changed a lot of things about my professional life. I’ve had much, much harsher reactions to my posts since then, so I’m glad the first one was relatively kind by Hacker News standards.
No, it’s pretty solid. I’d probably go into more detail about how to sequence project work so you can address blockers as early as possible.
I think you should only write things that might make people angry, and you should express the most extreme form of your opinion that you actually believe (don’t soften or hedge). If nobody could disagree or be upset about your post, it’s probably not interesting enough to be worth writing.
I don’t endorse all of Scott Alexander’s opinions, but it’s hard to say anything other than Meditations on Moloch.
Man, it’s hard to tell this from the outside. I also think teams are good at shipping, not companies: every company has teams that ship and teams that don’t, you know? If I have to give an example from my personal experience, GitHub Copilot.