Buffer Bloat
In networking, adding too much buffering to intermediate network devices introduce unnecessary delays. The trade-off is that bursty traffic will have the appearance of getting through faster. But in reality, the speed of the network is still the same. Data just takes longer to get through.
Fourteen Years
More reflections from foureteen years at Google.
I Moved This Blog To Eleventy
Proof of Work
Working with a poorly thought-out, or overengineered technology stack, or an overly bureaucratic organization is also a form of proof-of-work.
How to Solve a Problem in Three Steps
If you don't know what a refridgerator is nor what an elephant is you are likely to think that opening the door, putting the elephant in, and closing the door is a viable strategy for putting an elephant in the refridgerator.
Asian Is Not a Useful Category
Asking if someone is "Asian" in a question of ethnicity or demographics or pretty much any context is bad. There is no reasonable conclusion you can arrive at about a person based on the fact that they are "Asian".
The Have-Loop
Have-loops are positive feedback loops which cause unsustainable concentration of limited resources. Once you learn to recognize them, you will see them everywhere.
When Your Feature Gets Someone Hurt
If Google Photos incorrectly tags a photo, what's the worst that could happen?
Secret Life of Systems
Lifecycles of software systems that solve real world problems can be broken down into distinct phases based on where it is with respect to the problem and the eventual solution.
This article presents a taxonomy of these phases that should help you understand how each part of the lifecycle fits together.
Why I Hate Carousels
- Don't use carousels in your UI.
- Instead, if you must stick content into little cards, let the horionztal layout wrap to additional lines.
- If you end up with too many horizontal lines of content, then you definitely have too many items that can be accessed via a horizontally panning UI. You need a different UI altogether.