Right, this post may encourage premature optimization. Cargo, Homebrew, et al chose an easy, good-enough solution which allowed them to grow until they hit scaling limits. This is a good problem to have.
I am sure there's value having a vision for what your scaling path might be in the future, so this discussion is a good one. But it doesn't automatically mean that git is a bad place to start.
I have been running the exact same pair programming interview for ~100 candidates so far. Make a little exercise that is representative of your work, run everyone through it. Whatever you test for, that's what you should expect to get.
He was down-leveled to a first level manager at the company you are at? He accepted this? Why? Do you think he / the new company chose wisely? What ended up happening?
I’m not sure why he accepted it, I never pried too much. It was his first big tech job. It’s very possible he still made more money as a first-level manager, so it might’ve still been a net win for him.
He was a great manager, he’s since moved up the ranks but he’s still at the same big tech co. So from both the company’s and his perspective, I suppose everyone’s happy.
Wouldn't be surprised if it was money. My family member runs a software company, salaries came up recently and found out I make as much as their director.
This lasts right up until an important customer can't access your services. Executives don't care about downtime until they have it, then they suddenly care a lot.
You can often have services available for VIPs, and be down for the public.
Unless there's a misconfiguration, usually apps are always visible internally to staff, so there's an existing methodology to follow to make them visible to VIPs.
But sometimes none of that is necessary. I've seen at a 1B market cap company, a failure case where the solution was manual execution by customer success reps while the computers were down. It was slower, but not many people complained that their reports took 10 minutes to arrive after being parsed by Eye Ball Mk 1s, instead of the 1 minute of wait time they were used to.
"Pick a random number between 1 and 10" is also a clear and consistent method, and also not particularly meaningful.
The point I took from the article is that we should stop paying attention to this meaningless metric. I didn't read it as a request to replace it with another metric.
It's not leaking that's the concern. It's that not having the names of objects be easily enumerable is a strongly security-enhancing feature of a system.
Yes of course everyone should check and unit test that every object is owned by the user or account loading it, but demanding more sophistication from an attacker than taking "/my_things/23" and loading "/my_things/24" is a big win.
With a single sequence and a busy system, the ids for most high-level tables/collection are extremely sparse. This doesn't mean they can't be enumerated, but you will probably notice if you suddenly start getting hammered with 404s or 410s or whatever your system generates on "not found".
Also, if most of your endpoints require auth, this is not typically a problem.
It really depends on your application. But yes, that's something to be aware of. If you need some ids to be unguessable, make sure they are not predictable :-)
If you have a busy system, a single sequence is going to be a pretty big performance bottleneck, since every resource creation will need to acquire a lock on that sequence.
> Also, if most of your endpoints require auth, this is not typically a problem.
Many systems are not sparse, and separately, that's simply wrong. Unguessable names is not a primary security measure, but a passive remediation for bugs or bad code. Broken access control remains an owasp top 10, and idor is a piece of that. Companies still get popped for this.
Well, the article is literally about what happens when you're a leader of such movement, not if you're a random person on the street talking with other random people.
People are generally not super closed nor open about it, although some individuals were more closed about it. Most seemed honest when asked about it, but again, YMMV.
I am sure there's value having a vision for what your scaling path might be in the future, so this discussion is a good one. But it doesn't automatically mean that git is a bad place to start.
reply