Ask HN: Resources on how Google/Facebook etc. approach software design?
21–30 of 42 posts
Re: Ask HN: Resources on how Google/Facebook etc. approach software design?
#22The 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.
Genuinely curious.
Re: Ask HN: Resources on how Google/Facebook etc. approach software design?
#23I 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…
Re: Ask HN: Resources on how Google/Facebook etc. approach software design?
#24My 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.
Re: Ask HN: Resources on how Google/Facebook etc. approach software design?
#25A 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/
Re: Ask HN: Resources on how Google/Facebook etc. approach software design?
#26Data 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.
"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?
#27Earlier 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.
Re: Ask HN: Resources on how Google/Facebook etc. approach software design?
#28I didn't know that they spent much time on good design :/
Re: Ask HN: Resources on how Google/Facebook etc. approach software design?
#29Re: Ask HN: Resources on how Google/Facebook etc. approach software design?
#30My 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.
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.