257 karma · joined March 1, 2018
https://twitter.com/danluu/status/1117859464793583616
Do you have any insight into why that happened?
Here's one I ran into recently: if a range has only 1 of 3 replicas online then it will stop accepting traffic for that range until it has 3 replicas again.
(for the folks at home, "range" is a technical term for 512 bit slice of the data - CRDB replicates at the range level)
So, in some code I wrote, I had account for not only 1) the whole DB being unavailable but also 2) just one replica being unavailable (they're different failure modes that say different things about the health of the system).
It's a good behavior! Good for durability. But I had to do some work to deal with it, spend an hour coming up with a solution, etc. There are databases that work at Twitter scale but no there are no silver bullets among those that do. You need full time engineers to manage the complexity and keep it online, or else it could cost the company shitloads of money - I've seen websites of similar scale where a two-hour outage cost them $20 million.
And there's no possible way not to have some leaky abstractions with this in front of us.
https://www.forbes.com/sites/stevenehrlich/2022/12/13/exclus...
This is just neurotic. On what margin is throwing away a microwave destroying the planet? It's not going into the ocean. We're not running out of steel. You have to prioritize things that matter here.
Recycling options for appliances are pretty poor everywhere you go. I live in a major city, and there's exactly 1 store for recycling electronics. It's 25-minute drive. I don't know why we don't have the infrastructure, but we don't, and that's what you'll have to solve.
Most 20-somethings these days would gladly recycle things if there was an easy way. Telling people to use their annoying/cheap/half-broken appliances forever for vague environmental guilt reasons is just not going to work, I'm sorry.
I can definitely see wanting someone gone. Been there. But everyone probably hopes they get a soft landing and find a job that suits them better (unless the person's a huge asshole, then maybe not)
You're not appealing to some objective rule here. You're thinking about what would look like shitty behavior to the rest of your employees.
Firing people gracefully is a really, really important part your relationship to your employees. It's about whether people feel like they're being respected as professionals or abused like they work in a sweatshop.
Ever thought "wow this book really should have just been a blog post"? Well, there is no such thing as a blog post tour.
Developers are on the hook for bad code and complexity. Rushed code makes feature work take longer, it makes working more irritating, and creates operational work. Everyone is burned by a team that does these things poorly at some point in their career and it drains the life out of you.
They need to trust that you'll schedule time to go back and do things correctly. Clean up technical debt, nail down all the requirements, etc.; you don't want to be jumping from MVP to MVP. Maybe you do this well, I don't know. But you need to understand the motivations and incentives of the devs you work with better or you're going to be fighting them constantly.
- Have enough financial security to know that you can weather most emergencies, medical bills, etc.
- Tip well and support your friends' businesses
- Retire before you're too old to enjoy it. Or take a sabbatical.
- Do good. Let's say you want to give $10k to charity. Very doable on $250k, but asking a lot on $50k.
- Buy more ethical products (whatever this means to you)
- Avoid a lot of the soul-crushing bullshit of everyday life. Car doesn't run? Landlord is trying to screw you? You can solve those problems with money.
There are a lot of rich assholes out there, but they would have been assholes even if they were poor. You won't turn into one if you have a different outlook.
I bet most engineers at these companies did not get an offer on their first 3 tries. This is not a big deal at all because they'll let you interview over and over after cool-off periods.
No, what probably happened is that the job opening was for a particular team, but the team got re-orged and some exec took the headcount away from them.
But at the end of the section, the book says:
I do not usually run to pooling as a default solution. As a general-purpose mechanism, it is clunky and error-prone. However, you may find that your application will benefit from pooling of just a few types.
What kind of things do you pool in Unity?We eventually found the team responsible for this (the org structure is hard to penetrate because no one answers emails). They said they had no idea anyone was dissatisfied. Then they said that it was a low priority so they didn't care and nothing would be done.
In my experience, you can usually convince an engineer that their stuff has a problem and they need to fix it. But it's often impossible to convince management if they aren't on the hook for user satisfaction.