Hacker News new | ask | show | jobs
by mabbo 1514 days ago
Good God yes.

Once my team owned a service that did X. Among it's functionality, it had an API that, as a side effect, stored some data that could be retrieved. Sadly, this service had no validation that the data being input made any sense in the context of what this service did.

A developer on a neighboring team had a big promo project on the go. As a simple hack, and as a way to save time, his project used our service as a basic key value store database. They already called this service for the correct functionality, so they had access keys. The stuff he was storing could be argued to kind of make sense, but as the owners of this service we said "no fucking way, we aren't your database". He escalated to management who knew he was going to quit if he didn't get his promo. They overruled and last I heard that service was still being used as that asshole's database. He did promise to fix it right after the project launched, but the second he had his promo he changed orgs.

For some reason, Amazon is full of this sort of terrible tech debt and they can't figure out why everyone has to be on terrible on call rotations.

2 comments

The fast-paced "fail upwards" where you get a new job at a new FAANG every few months while leaving a trail of destruction in your wake astounds me, and I don't understand how it works and how companies keep falling for it.

There are a lot of excellent ex-FAANG programmers I've worked with, and a lot of terrible ones, and my experience is that usually the ones with the most prestigious titles show up, do 3 months of junior level work which we end up having to rip out later, and then leave to their next high-paying gig.

This is entirely the fault of the FAANG hiring methods of which most managers at these companies are very proud because they provide such excellent “signal”.

But the upside is that it’s a competitive advantage for startups that intentionally build different hiring pipelines.

> This is entirely the fault of the FAANG hiring methods

I would say it is more of a fault of compensation structures.

Why would one stay for 3 years and get very meh comp increases every year, when they can switch to another company and instantly get a 30-40%+ increase (up to a point). It is also somewhat disheartening to see new hires get paid significantly more than you are for the same level.

Do people leave FAANG jobs every three months? I thought they stay there for three years to get promotions and then leave
They take three years to do the three months of junior-level work.
The ones who do 3 months of actual work get fired because their overperformance scares the boss. But less than 2 weeks of actual work and you're an underperformer. The sweet spot is probably the geometric mean of the two.
> their overperformance scares the boss

i just don't understand this at all - why would someone who is working for you be a threat? They cannot take your job - it's not like them being a good programmer would somehow make them a good dev manager or "boss".

It's common for high performers to get promoted as a "reward" regardless of management ability.
How is this his fault? Your service had poor validation or design and was used in ways it was intended to. You knew this but still didn't patch it?
Internal systems always have large gaping holes like that because if someone is misusing it, you can simply ask them to stop it. Most adults comply.
I won't downvote you.

When this terrible thing was done, we immediately realized we needed to add validation. We had thought that by limiting who could call through access controls, we'd never have a malicious user. So naive.

Sadly, at that point we couldn't add it because his awful project was running in production.

You can pretty trivially break into my house with some cheap tools off ebay and a YouTube video showing you how to pick the lock.

No one suggests I am at fault if you break into my house and steal my stuff.

It’s an internal service, you don’t treat your co-workers as hostile actors.
At a large enough company you kind of have to... as this situation shows.
Reminds me of what they say about Formula 1 racing: The most important thing for a driver is to beat the other driver on their own team (there are 2 drivers per team).

And arguably this principle holds for most team members in any organization - since it’s only very few at the very top that actually get held accountable for overall team success.

I read a tongue-in-cheek blog post, maybe ten years ago, about “blame-oriented software development”: how to deflect blame from your code. The framing was amusing but the advice was good: extensive validation of input parameters and data, lots out logging, etc. Unfortunately, the blog post seems to have disappeared.
No, this person was selfish and inconsiderate of their fellow employee. Employees are supposed to cooperate, not exploit one another for their own personal gain.

It's weird to have to say this, and some people probably think it's naive, but I stand by it.

If you have this attitude working at a fang, you'll eventually be the guy the other guy kneecaps and outruns when you're both running from a bear.
Good thing I'm not working at a fang then. Sounds awful.