Hello again.
Links of the week
Why Smart People Have Bad Ideas
The hard part about figuring out what customers want is figuring out that you need to figure it out. But that's something you can learn quickly. It's like seeing the other interpretation of an ambiguous picture. As soon as someone tells you there's a rabbit as well as a duck, it's hard not to see it.
And compared to the sort of problems hackers are used to solving, giving customers what they want is easy. Anyone who can write an optimizing compiler can design a UI that doesn't confuse users, once they choose to focus on that problem. And once you apply that kind of brain power to petty but profitable questions, you can create wealth very rapidly.
⏯ THIS is how F1 Drivers are INSANE at Braking!
How are Formula 1 Drivers so insane at Braking?! The cars generate so much G force, but they have such huge braking potential in every corner - how is this possible? In this video, we're going to look at the Formula 1 Braking system, and explain the hows and whys of optimizing brake balance!
An incomplete list of skills senior engineers need, beyond coding
For varying levels of seniority, from senior, to staff, and beyond.
The growing pains of database architecture
After deciding against both paths forward for horizontally sharding, we had to pivot. Rather than horizontally shard, we decided to vertically partition the database by table(s). Instead of splitting each table across many databases, we would move groups of tables onto their own databases. This proved to have both short- and long-term benefits: Vertical partitioning relieves our original database now, while providing a path forward for horizontally sharding subsets of our tables in the future.
The Rust I Wanted Had No Future
A lot of people in the Rust community think "zero cost abstraction" is a core promise of the language. I would never have pitched this and still, personally, don't think it's good. It's a C++ idea and one that I think unnecessarily constrains the design space. I think most abstractions come with costs and tradeoffs, and I would have traded lots and lots of small constant performancee costs for simpler or more robust versions of many abstractions. The resulting language would have been slower. It would have stayed in the "compiled PLs with decent memory access patterns" niche of the PL shootout, but probably be at best somewhere in the band of the results holding Ada and Pascal.
There’s one more reason why the Long Tail has died in the digital world. Web platforms aren’t really focused on serving users—what they really want to do is control users. This almost always requires them to squeeze out niche and alternative views, and force as many customers as possible to follow the herd.
Book of the Week
Building Mobile Apps at Scale: 39 Engineering Challenges
Do you have any more links our community should read? Feel free to post them on the comments.
Have a nice week. 😉
Have you read last week's post? Check the archive.