4 ms·
I tend to be on your side of the fence but I have to nitpick your argument: At these companies, algorithms and the basics are fundamentally important. Because
by meesles 6y ago
I tend to be on your side of the fence but I have to nitpick your argument:
At these companies, algorithms and the basics are fundamentally important. Because you tend to work on tiny parts of a massive whole, there is no tolerance for cowboy-coding and not following best-practices. IMO the interviews test that you can fall in line and follow the patterns that have been in place for decades.
With regards to using API design as something that is not assessed: System design questions do test this. Also at a company like FB, there's a handful of people designing APIs that are at the top of the pyramid, and even then long-standing conventions around API design at those companies will short-circuit the need for most devs to think about how to organize and name their endpoints.
At my small startup where most of us write an API endpoint, it's important to know. For a UI dev or someone optimizing DB lookups at massive software companies, API design is not something that needs to be tested.
Personally I can admit to feeling frustrated that passing these types of interviews is not my forte. It sucks that I would have to study for weeks to not flop these interviews even though I consider myself a good software engineer. But that doesn't 100% invalidate their interview process.
- danenania 6y agoThat all makes sense for hiring people to work on big existing systems, but many of these large companies are also trying to innovate and build new products with smaller, more agile teams. Sure, you’ll still need to integrate with established APIs and focus more on scalability than you would at a startup, but the kind of people who excel in each type of role will have very different personalities and skillsets. Grading them on the same curve in interviews seems like a pretty bad idea.
- xiphias2 6y ago> That all makes sense for hiring people to work on big existing systems, but many of these large companies are also trying to innovate and build new products with smaller, more agile teams. Which innovation of Facebook are you describing? Instagram, WhatsApp, or the stories?
- cstrahan 6y agoNot products in the typical sense, but these are some interesting technologies coming out of Facebook that I can list off the top of my head (many of which I have used personally): * https://engineering.fb.com/2014/06/10/web/open-sourcing-haxl-a-library-for-haskell/ https://engineering.fb.com/2014/06/10/web/open-sourcing-haxl... * https://osquery.io/ https://osquery.io/ * https://rocksdb.org/ https://rocksdb.org/ * https://fbinfer.com/ https://fbinfer.com/ * https://flow.org/ https://flow.org/ * https://prepack.io/ https://prepack.io/
- Kranar 6y agoI mean you listed several database libraries, static analyzers, and a code optimizer. Is it your suggestion that those kinds of applications do not require solid knowledge of a variety of different data structures and algorithms?
- cstrahan 6y ago> I mean you listed several database libraries, static analyzers, and a code optimizer. Correct. > Is it your suggestion that those kinds of applications do not require solid knowledge of a variety of different data structures and algorithms? No -- precisely opposite. Your response confused me quite a lot, but after some thought, I think I've realized how things have become mixed up. I took this for sarcasm: > Which innovation of Facebook are you describing? Instagram, WhatsApp, or the stories? Why did I take that for sarcasm? Because it is apparent to me that Instagram, WhatsApp and stories are not innovative. So I thought the main point of the poster I was replying to was to take a dig at Facebook. I didn't realize that we were in agreement about the importance of data structures and algorithms, but then I also didn't realize that we were still on that topic: my intention was purely to refute the [what I believed to be the implied] notion that nothing innovative was happening at Facebook.
- Kranar 6y agoThanks for the clarification. We're in total agreement.
- chris11 6y ago> but the kind of people who excel in each type of role will have very different personalities and skillsets. Grading them on the same curve in interviews seems like a pretty bad idea. I haven't interviewed for senior level positions with FANG. But aren't interviews usually different based on the job? I assume that interviews for job families like front end/backend/sre should all test different skills. And if you are interviewing with a specific team the manager can judge your background and interviews for fit with their team. The interview bar for algorithms is probably too high at some places, but those skills are relevant for all engineers.
- fsociety 6y agoOverall I agree with your point, I just wanted to add that my experience with small startup vs FAANG is that it was the opposite experience for me. Small startup involved wearing many hats, but in general was a more specialized role than FAANG. FAANG was significantly more breadth than startup (and why I’d say it’s a great experience for beginners to gain a breadth of knowledge). I could see how some teams are very specialized in FAANG however.
- yjftsjthsd-h 6y ago> At these companies, algorithms and the basics are fundamentally important. Because you tend to work on tiny parts of a massive whole, there is no tolerance for cowboy-coding and not following best-practices. IMO the interviews test that you can fall in line and follow the patterns that have been in place for decades. ... have they gotten a lot better since 2015? https://www.darkcoding.net/software/facebooks-code-quality-problem/ https://www.darkcoding.net/software/facebooks-code-quality-p...