Live data from Hacker News

Ask HN: Resources on how Google/Facebook etc. approach software design?

news.ycombinator.com

21–30 of 42 posts

Re: Ask HN: Resources on how Google/Facebook etc. approach software design?

#22
post #6

The design process at Facebook is, to put it charitably, a bit minimal. "Move fast" is taken to mean start writing code immediately, then iterate on that to approach the desired outcome. Developers are rewarded for landing code in production each review period, even if that code provides little benefit, will need to be rewritten, and might even be buggy. In the rush, careful design and testing (which might delay land…

In my experience working at Facebook, not a single thing you said was true. People plan and think before they code. People are rewarded for impact, not for landing useless code. Code is carefully designed and tested, or it doesn't land. Impact rules all, not velocity.

If these principles are followed throughout the engineering org, can you explain how the recent reports of password and other information being stored in plaintext happened? That is Security 101.

Genuinely curious.

Re: Ask HN: Resources on how Google/Facebook etc. approach software design?

#23
post #13

I was thinking about this the other day, because I'm kicking off a new project. How do big companies start their code base. Do they have 1 person write a platform and everyone builds on top..and then iterate. Or several people contribute to the platform. The example in java being, someone needs to layout some skeleton package structure (a hello world controller, DAO)...? My previous projects were me coming onto an ex…

All big companies start out as small companies, which means 1 or 2 or a few people writing code.

Re: Ask HN: Resources on how Google/Facebook etc. approach software design?

#24
post #11

My theory is that they have more people who understand and respect software design in higher management levels compared to other companies. So it’s easier to do good work without constant pressure from the “business” people to take shortcuts.

This is probably true for Google, but not Facebook, given how many times they have broken things, especially security related.

Re: Ask HN: Resources on how Google/Facebook etc. approach software design?

#25

A group of early ex-Facebook engineers/directors have recently collaborated with Software Engineering Daily to produce a podcast series about the engineering philosophy behind the core product. I think these talks are a little more raw and direct than you would find from official corporate talking points. https://softwareengineeringdaily.com/category/all-episodes/

yes, I definitely gained a lot of insights from these 5 podcasts into the whole development as well as management process inside facebook.

Re: Ask HN: Resources on how Google/Facebook etc. approach software design?

#26
post #5

Data structures are the basis of what you start off with for any program. The key is to understand the domain you want to model. It's hardly unique to FAANG.

Fred "Mythical Man-month" Brooks wrote:

"Show me your flowcharts and conceal your tables [i.e. data structures], and I shall continue to be mystified. Show me your tables, and I won’t usually need your flowcharts; they’ll be obvious."

Re: Ask HN: Resources on how Google/Facebook etc. approach software design?

#27
post #22
post #6

Earlier quoted context omitted.

In my experience working at Facebook, not a single thing you said was true. People plan and think before they code. People are rewarded for impact, not for landing useless code. Code is carefully designed and tested, or it doesn't land. Impact rules all, not velocity.

If these principles are followed throughout the engineering org, can you explain how the recent reports of password and other information being stored in plaintext happened? That is Security 101. Genuinely curious.

I don't work at Facebook but my understanding is passwords were not stored in a database in plaintext, but there was verbose logging of web requests that were not sanitized. Sanitizing logs is definitely common sense and a basic security practice, but it can be difficult to be sure you are doing it adequately without good tooling to monitor it.

Re: Ask HN: Resources on how Google/Facebook etc. approach software design?

#29
Take any information (blog posts, articles) that comes from the company itself with a grain of salt because it is essentially marketing and so will downplay the downsides of their approach and paint a rosier picture of the process than what really happens there.

Re: Ask HN: Resources on how Google/Facebook etc. approach software design?

#30
post #24
post #11

My theory is that they have more people who understand and respect software design in higher management levels compared to other companies. So it’s easier to do good work without constant pressure from the “business” people to take shortcuts.

This is probably true for Google, but not Facebook, given how many times they have broken things, especially security related.

Facebook's culture is basically a younger brother of Google's, or at least used to be. There's a reason their tech stacks are so similar - FB went through a phase where it poached a lot of Googlers.

A tech firm is most easily defined as a company founded and run by a software or hardware engineer. The only exception I can think of is Apple, but Jobs was immersed in engineering culture from the time he was a teenager - he was sort of a sphinx in that regard. Even so, it's fair to say Apple under Jobs is maybe more of a high-end design house than a traditional tech firm: their in-house talent struggled with online services and anything involving complex computer science R&D, e.g. their AI / mapping efforts were weak sauce compared to Google.

Post reply on HN