x86 is deprecated

ARM will be the dominant CPU architecture going forward. In a few years, x86 will be relegated to specialty use cases. All new consumer devices and most cloud services will be based on ARM. Old workloads will probably run on x86 for decades, because nobody will bother to port and upgrade, but a decent amount […]

“The codebase should look like it was written by one person” and other lies

I’ve mentioned that its unproductive to adopt cultural values that don’t actually take a stance on an issue (with more than one plausible answer). “Be nice to your coworkers” isn’t a cultural value, because it doesn’t tell us how to make decisions; there’s no trade-off there. Nobody would suggest “let’s be mean to our coworkers” […]

We’re fast paced

By custom, all software engineer job postings in the US are required to include the phrase “must thrive in a fast-paced work environment”. This is usually not a bona fide qualification, but rather an advertisement (“we’re fast paced, so we hope you like that?”). The reasoning is sound: Engineers generally aren’t drawn to listings with […]

Example engineering team values

It’s generally a mistake to adopt values like “respect your customers.” True values involve trade-offs. Here’s my humble attempt to list a few reasonable ones for a potential engineering team. We should… Hire and pay for world class peopleHire economically Be togetherWork anywhere Emphasize qualityEmphasize speed Emphasize market share growthEmphasize profitability Be highly leveragedBe highly […]

Necessary but not sufficient

Many years ago, I read an interesting tidbit somewhere about raising capital for startups. There was a checklist of qualities that correlate with fundraising success (and ultimately startup success). The list went something like this: good team good market opportunity good traction good timing …and other bullet points of that nature. But the key takeaway […]