Live data from Hacker News

Meta developer tools: Working at scale

engineering.fb.com

201–210 of 228 posts

Re: Meta developer tools: Working at scale

#201
post #19

I think Meta's tooling is inferior to industry standard. I actually took a survey while I was there, and that wasn't the majority opinion, but frankly I think most outsiders would absolutely agree. Things like Eden were a great idea, but tools had all sorts of issues they gloss over (a virtual file system can be really slow if you have a ton of small files), dev environments would randomly fail a lot, really the only…

As a Meta employee as well, and working in the data analytics / engineering space, I'm finding tooling to be pretty high standards actually. Though we arguably rely on a lot of Apache products, whatever we use that's internal only is great to work with. Daiq** recently started supporting notebooks, which has been a game changer for us as well as for the teams we work with. Phabricator is great as well, and makes ship…

Is there a reason you censored parts of tool names? Your link lists the uncensored version.

Re: Meta developer tools: Working at scale

#202
post #154
post #19

I think Meta's tooling is inferior to industry standard. I actually took a survey while I was there, and that wasn't the majority opinion, but frankly I think most outsiders would absolutely agree. Things like Eden were a great idea, but tools had all sorts of issues they gloss over (a virtual file system can be really slow if you have a ton of small files), dev environments would randomly fail a lot, really the only…

as a former employee who has worked both in many other companies over a decade + starting a few startups, Meta tooling is one of the best if not the best, it's so good to a point where Saas companies came out of facebook simply by replicating their internal tooling, like Asana, Scuba, etc

I thought Asana were Xooglers?

Re: Meta developer tools: Working at scale

#203

Earlier quoted context omitted.

GitHub's developer workflow is a joke compared with the ticketing, CI, and code review tooling at Meta. I found the tools at Meta made it a lot smoother and faster to write and review code. Also, their automated flaky test detection, suppression, & ticket issuance/resolution is no joke. One of my favorite features. Their feature flagging system was also on point. Also, Workplace is a fantastic replacement of Wiki tha…

>> GitHub's developer workflow is a joke compared with the ticketing, CI, and code review tooling at Meta. ??

Completely consistent and unified UX and text editing (GitHub has this, atlassian doesn't). All text editing is rich multi-modal that is basically what you see in Facebook posts (i.e. you can add a bunch of images easily, it all previews immediately) w/ programmer-friendly extensions (e.g. code formatting, markdown w/ live preview etc).

The ticketing system had a rich tagging system (which GitHub has). The notifications system was completely unified and extremely useful - Workplace activity, relevant ticket updates, PRs to review, reviews, etc - all relevant and timely. From what I've seen, GitHub tends towards just being a useless uncoordinated firehose.

Finally code reviews. Having a code review for every commit is a bit to get used to but their tooling makes it super easy to post a stack (i.e. PR). Each commit in the PR can be independently reviewed & merged. This means you can land improvements progressively as code reviews complete (i.e. short cleanup commits go in faster while larger commits are reviewed longer) This also encourages people to size the commits appropriately & to be standalone.

Re: Meta developer tools: Working at scale

#204
post #133

Earlier quoted context omitted.

A lot of this used to be true but is no longer so. Buck2 is much faster than Buck and pretty great for the set of problems it's trying to solve. (I'm skeptical that the corner that Meta has painted itself into is good , but assuming that that can't change, buck2 is great.) Remote builds are common now, from what I've heard. Sapling is the name for Meta's fork of Mercurial. Piper is not a reimplementation of Perforce,…

> Piper is not a reimplementation of Perforce, by the way. Yes, it is. You are probably confusing Piper, the internal name for the VCS, with Google Piper [1], which is a completely separate and unrelated project. That project seems a closer match to Monomake. This was a common problem with Google, actually. There would be an internal name but once released it would take on a different name. Sometimes that name would…

I'm not confusing anything. Saying that Piper is a reimplementation of Perforce is like saying that Git is a reimplementation of CVS.

Re: Meta developer tools: Working at scale

#205

Earlier quoted context omitted.

It determines flakiness in aggregate across all builds. It also does automatic retries but it does so for the purposes of marking a run as flaky which it then remembers. And it's your team's responsibility for making your tests stable. If they're not stable, they're not going to fail builds which is the correct response (a ticket is filed & it's your team's job to keep those tickets under control). The neat thing is…

If a test goes from “flaky” to “never succeeds,” I absolutely want to fail builds. To me it seems pretty common for large integration tests to be flaky, and I don’t know that it’s always feasible to avoid without mocking so much that the test becomes meaningless.

What makes you think that’s not the case?

Re: Meta developer tools: Working at scale

#206
post #19

I think Meta's tooling is inferior to industry standard. I actually took a survey while I was there, and that wasn't the majority opinion, but frankly I think most outsiders would absolutely agree. Things like Eden were a great idea, but tools had all sorts of issues they gloss over (a virtual file system can be really slow if you have a ton of small files), dev environments would randomly fail a lot, really the only…

As an ex-meta mobile engineer, I 100% agree that I found Eden to be impossible to use productively. I always had to pre-warm the cache, pretty much defeating its stated goals. Maybe it has gotten better since I left a year ago, but I had 2 TB of local storage, and mercurial's sparse checkouts were more than enough for me and far more reliable. However, all the other tooling around code were just superior in every way…

Eden definitely works better on a dev server and sucks on a laptop, especially arm based mac's (it's slowly getting better but still requires occasional reboots). +1 on the coding tools being great

Re: Meta developer tools: Working at scale

#207
post #154

Earlier quoted context omitted.

as a former employee who has worked both in many other companies over a decade + starting a few startups, Meta tooling is one of the best if not the best, it's so good to a point where Saas companies came out of facebook simply by replicating their internal tooling, like Asana, Scuba, etc

I thought Asana were Xooglers?

Nope started by Dustin Moskovitz who was even in the "social network" movie

Re: Meta developer tools: Working at scale

#209
post #160

Earlier quoted context omitted.

For what it's worth, as a Meta employee, I generally disagree with this comment. I mean, calling it 'inferior' is just laughable. It's way better than what open source projects have access to and it's way better than Amazon internal tooling (is that 'industry standard' enough?). The sapling workflow is better than git. I was skeptical when I joined, but between no branches and excellent stack and merge support, it's…

> Eden is fast. Crazy fast, in fact, if you look at the size of the monorepo. You’re measuring the wrong thing. The user actions are slow and take several seconds to complete usually. No one gives a shit how big the repo is. They care how long their operation takes.

Compared to what? Not having a monorepo? Sure, but you run into different issues with that approach. Eden is the best solution there is for a monorepo of this size.

Re: Meta developer tools: Working at scale

#210

Earlier quoted context omitted.

If a test goes from “flaky” to “never succeeds,” I absolutely want to fail builds. To me it seems pretty common for large integration tests to be flaky, and I don’t know that it’s always feasible to avoid without mocking so much that the test becomes meaningless.

What makes you think that’s not the case?

Maybe I misinterpreted “flaky test detection, suppression” and “not going to fail builds.” You retry until a confirmed success before merging?
Post reply on HN