Live data from Hacker News

GitLab’s Secret to Managing Employees in 160 Locations: Write Everything Down

blog.ycombinator.com

41–50 of 320 posts

Re: GitLab’s Secret to Managing Employees in 160 Locations: Write Everything Down

#41
post #19
post #7

Earlier quoted context omitted.

Not really germane to the topic. This type of op fuck-up happens everywhere. It's hard to build solid process, particularly in growth phases. Unless there are 2x a year restore tests, I personally assume a 60% backup fail rate.

"It's hard to build solid process, particularly in growth phases." Hard is an understatement, it is insanely difficult. However, the interview seems to suggest that "write everything down" is the way to solve this problem and was what allowed for all their growth and success. So the solid process they have built is to write everything down, which they obviously didn't do or they wouldn't have had a 7 layer disaster r…

"Write everything down" is a terrible process, for two main reasons.

First, no one has the discipline to write much of anything down.

It's a very boring process and it's always going to be low-resolution. Your most meticulous documentation writers will get fired for failing to get their "real work" done. If you personally recognize the value of the documentation they furnish and thus refuse to fire them, all of their peers will feel that they are dead weight, which is still a ticket out of the company.

Second, after all that work, no has the discipline to read much of anything that you've written!

They skim. They glance. They Ctrl+F. They don't read. When you're in a pickle and you can pick out a life-saving bit of documentation, it's amazing, but that happens quite rarely and requires a lot of energy.

How many times have you pulled up docs, tried to follow them, gotten a really confusing error that you spent hours trying to troubleshoot only to find out that there's a one-sentence explanation tucked away in the third sentence of the fourth paragraph on the page you originally pulled up? This just happened to me _last week_, and frequently the most frustrating problems are small things like that.

People don't read. It's nothing personal, they just don't read. It takes a lot of cognitive energy. People are biologically programmed to conserve as much as energy as possible. Good programmers are both lazy and dumb!

If you want documentation that means something, it needs to be part of the process of actually working. I don't mean you need to add "write docs" to your checklist, I mean meeting the operational standards should be the only way things can get done in the first place.

The operating procedure needs to be married to the actual completion of the task, and that means setting good baseline project standards and setting reliable enforcement on those standards.

Code should be self-documenting to a reasonable extent. Tests should be mandatory. Peer reviews and signoffs should be mandatory. Internal company discussions should be recorded and referenceable. Documentation only works when it's self-generating.

In short, it should be run like a mature open-source project with an open IRC channel, mailing list, bug tracker, commit history, mandatory tests, maintainer signoffs, merge processes, code and style standards, docstrings and good automated documentation generators, and so on.

Re: GitLab’s Secret to Managing Employees in 160 Locations: Write Everything Down

#42
post #38
post #30

Earlier quoted context omitted.

The "trigger" of the failure (accidentally deleting the wrong database) is bad luck that happens, but the lack of preparedness for it isn't. If I understood the document right even if the regular backups would have worked, they only happened every 24 hours (same as the staging replicas they recovered from, except one was manually created out of schedule that day). Maybe being fully remote helps to let stuff like this…

What's the best-practice approach for taking backups that are significantly more frequent than every 24 hours, but also robust to things like an rm -rf or a DELETE FROM table;? Something like continuous data protection seems like it would be far too much data for an active database server, no? (Or are we just saying that they should have been taking backups every 15 minutes or hour or so?)

Hourly snapshots that you purge every 24 hours (after the nightly is successfully taken).

Re: GitLab’s Secret to Managing Employees in 160 Locations: Write Everything Down

#43
post #2

After the mess up, I don't really like seeing these posts about Gitlab. Maybe this is their problem after all.

I think the problem has more to do with their recruiting. To be a successful distributed company, you need a disciplined and highly experienced workforce (note that this does not mean a highly educated workforce, which may actually be a contraindication). GitLab offers a middling base salary for a role and applies modifiers for experience and city-based cost-of-living (both of which may modify the base downward; my C…

Those salary modifiers are atrocious. Their range in my city for a senior, very experienced engineer is comparable to what most entry level jobs actually offer around here.

I 100% think you are on the right track. The only people from my area that would take a GitLab salary just can't get a job elsewhere.

Re: GitLab’s Secret to Managing Employees in 160 Locations: Write Everything Down

#44
post #15
post #2

After the mess up, I don't really like seeing these posts about Gitlab. Maybe this is their problem after all.

"This" being remote work? Also, I'm a little surprised by the anti-GitLab sentiment on this thread. I thought the consensus was that they had bad luck but didn't do anything particularly more wrong than anyone else? (I may have missed some more analysis of the cause of the failure.)

This user account is not active or something and his tone is a little offensive but I think he makes a point. Writing everything down does nothing if no one reads it.

writing things down is not the problem... failing to read the things they write down is the problem. they probably don't have time to read, because they are too busy always writing. they can't find what they need to read in the sea of endless wasteful and pointless drivel that never should have been written down in the first place. you're all idiots.

Re: GitLab’s Secret to Managing Employees in 160 Locations: Write Everything Down

#45
Everybody is prone to making a mistake! As long as you learn something from it, so that it never happens again, it's ok. And I really don't get why people give them bad rep for this post. I mean it's obvious why it's posted and we all know what happened week ago, but consider their size and scale, it's not easy to manage so many people remotely.

Re: GitLab’s Secret to Managing Employees in 160 Locations: Write Everything Down

#46
post #38
post #30

Earlier quoted context omitted.

The "trigger" of the failure (accidentally deleting the wrong database) is bad luck that happens, but the lack of preparedness for it isn't. If I understood the document right even if the regular backups would have worked, they only happened every 24 hours (same as the staging replicas they recovered from, except one was manually created out of schedule that day). Maybe being fully remote helps to let stuff like this…

What's the best-practice approach for taking backups that are significantly more frequent than every 24 hours, but also robust to things like an rm -rf or a DELETE FROM table;? Something like continuous data protection seems like it would be far too much data for an active database server, no? (Or are we just saying that they should have been taking backups every 15 minutes or hour or so?)

Use that live database replication along with LVM, Btrfs or ZFS snapshotting every hour and purging the old one. Take a full, proper backup every hour if you can or every day if you can't. If you can afford to, do a SQL dump at reduced priority and compress it instead of a binary copy as it's easier to check a text dump.

Anyone with more experience with large databases have anything to add or any concerns with this sort of scheme?

Re: GitLab’s Secret to Managing Employees in 160 Locations: Write Everything Down

#47
post #2

After the mess up, I don't really like seeing these posts about Gitlab. Maybe this is their problem after all.

I think the problem has more to do with their recruiting. To be a successful distributed company, you need a disciplined and highly experienced workforce (note that this does not mean a highly educated workforce, which may actually be a contraindication). GitLab offers a middling base salary for a role and applies modifiers for experience and city-based cost-of-living (both of which may modify the base downward; my C…

Just ran my numbers and got about 55% of my current salary assuming a lead position (what I have now, which I would probably not get with them) and "a lot of experience" which I'm on the fence about and they would probably disagree with.

Getting rid of the COL deduction by selecting NYC as my location actually makes it reasonable so something tells me not pinning the US salary floor to 1.0 is saving them money and simultaneously getting them lower quality developers.

Re: GitLab’s Secret to Managing Employees in 160 Locations: Write Everything Down

#49
post #2

After the mess up, I don't really like seeing these posts about Gitlab. Maybe this is their problem after all.

I think the problem has more to do with their recruiting. To be a successful distributed company, you need a disciplined and highly experienced workforce (note that this does not mean a highly educated workforce, which may actually be a contraindication). GitLab offers a middling base salary for a role and applies modifiers for experience and city-based cost-of-living (both of which may modify the base downward; my C…

FWIW, I have seen one example of hiring a remote junior person and it worked really well, BUT there was a conscious effort to do mentoring properly, and the guy running it was a mentoring guru/nut.

Re: GitLab’s Secret to Managing Employees in 160 Locations: Write Everything Down

#50
post #43

Earlier quoted context omitted.

I think the problem has more to do with their recruiting. To be a successful distributed company, you need a disciplined and highly experienced workforce (note that this does not mean a highly educated workforce, which may actually be a contraindication). GitLab offers a middling base salary for a role and applies modifiers for experience and city-based cost-of-living (both of which may modify the base downward; my C…

Those salary modifiers are atrocious. Their range in my city for a senior, very experienced engineer is comparable to what most entry level jobs actually offer around here. I 100% think you are on the right track. The only people from my area that would take a GitLab salary just can't get a job elsewhere.

It makes more sense for me to get a PO box in Washington DC and drive there to get my paycheck. Hell, it's probably cheaper to "rent" a single room out of someone's house just to have them forward the mail.
Post reply on HN