Facebook software engineer interview: Het enige bericht dat je nodig hebt om

oefen 1-op-1 met ex-interviewers van Facebook. Meer informatie.

coderen interviews op Facebook zijn echt uitdagend. De vragen zijn moeilijk, specifiek voor Facebook, en bestrijken een breed scala van onderwerpen.

het goede nieuws is dat de juiste voorbereiding een groot verschil kan maken en u kan helpen een baan als Software Engineer bij Facebook te vinden. We hebben de ultieme gids samengesteld om u te helpen uw kansen op succes te maximaliseren.

hier is een overzicht van wat we zullen behandelen:

  • proces en tijdlijn
  • voorbeeldvragen
    • codering interview
    • systeemontwerp interview
    • gedragsinterview
  • Voorbereiding tips

1. Interview proces en tijdlijn

1.1 welke interviews te verwachten

Wat is de Facebook software engineering interview proces en tijdlijn? Het duurt gemiddeld vier tot acht weken en volgt deze stappen:

  1. CV, begeleidende brief en verwijzingen
  2. Recruiter telefoonscherm: één interview
  3. technisch telefoonscherm: één of twee interviews
  4. Onsite: vier tot zes interviews

laten we elk van deze stappen hieronder nader bekijken:

1.1.1 Recruiter telefoonscherm

interview proces met Facebook door te praten met een HR recruiter aan de telefoon. Ze zijn op zoek om te bevestigen dat je een kans op het krijgen van de baan op alle, dus wees bereid om uit te leggen uw achtergrond en waarom je een goede pasvorm op Facebook. Je moet typisch gedrag verwachten en vragen als, “Vertel me over jezelf”, “waarom Facebook?”, of ” vertel me over je huidige dag tot dag als ontwikkelaar.”

als je voorbij dit eerste HR-scherm komt, zal de recruiter je helpen bij het plannen van je eerste technische schermen met een Facebook-engineer. Een groot ding over Facebook is dat ze zijn zeer transparant over hun wervingsproces. Uw HR-contactpersoon zal u daarom door de resterende stappen in het aanwervingsproces begeleiden, en zal ook een handige e-mail met u delen met informatiebronnen die u kunt gebruiken om u voor te bereiden.

1.1.2 technisch telefoonscherm

u gaat door een of twee initiële 45 minuten technische schermen die meestal via de telefoon gebeuren. Uw interviewers zullen beginnen met een paar gedragsvragen, maar de meeste tijd zal worden besteed aan typische codering vragen (bijvoorbeeld data structuren, algoritmen, enz.)

u gebruikt een eenvoudige online code-editor zonder syntaxismarkering of automatische aanvulling voor deze telefoongesprekken (bijvoorbeeld CoderPad) en het is een goed idee om er vooraf aan te wennen.

ten slotte, als u dicht bij een Facebook-kantoor woont en echt gemotiveerd bent om bij het bedrijf te komen, kunt u vragen om ter plaatse te komen voor de eerste schermen. Uw recruiter zal dit meestal graag voor u organiseren omdat het een betere ervaring is, zowel voor u als uw interviewers.

1.1.3 interviews ter plaatse

Interviews ter plaatse zijn de echte test. Je zult meestal een volledige dag doorbrengen op een Facebook-kantoor en doe vier tot zes interviews in totaal. Elk interview duurt ongeveer 45 minuten en behandelt een van de volgende onderwerpen:

  1. codering interview, waar je algemene codering vragen die meestal moeilijker dan in het eerste technische scherm zal oplossen.
  2. Ontwerpinterview, waarin u een systeem-of productontwerp-vraag wordt gesteld, afhankelijk van uw achtergrond.
  3. gedragsinterview, waar u vragen kunt verwachten over uw achtergrond, prestaties en motivatie om bij Facebook te werken.

u krijgt meestal drie coderingsinterviews, een ontwerpinterview en een gedragsinterview. Maar zoals we zullen bespreken in de volgende sectie de exacte verdeling zal variëren, afhankelijk van de rol, team, en niveau u solliciteert voor.

naast deze interviews, zult u ook lunchen met een collega-ingenieur terwijl u ter plaatse bent. De lunch interview is bedoeld om uw tijd om vragen te stellen over hoe het is om te werken bij Facebook. Het bedrijf zal u niet evalueren gedurende deze tijd, maar we raden u aan zich te gedragen alsof ze waren.

1.2 verschillen tussen niveaus en rollen

het proces dat we hierboven hebben beschreven zal enigszins variëren afhankelijk van het niveau en de rol waarvoor u interviewt. Hier zijn enkele van de meest voorkomende verschillen die u mag verwachten.

1.2.1 Junior vs Senior software engineers

de verwachtingen voor junior en senior engineers zijn verschillend.

als je een instap-Level / junior engineer bent, wordt van je verwacht dat je het zeer goed doet in je coderingsinterviews. Maar je hebt meestal slechts een enkel systeemontwerp interview waar de prestatie bar lager zal zijn dan voor meer senior kandidaten.

als u een senior engineer bent, dan zult u beiden zeer goed moeten presteren in codering-en systeemontwerpinterviews. Je kunt ook twee systeemontwerpinterviews hebben in plaats van één in bepaalde situaties (bijvoorbeeld je solliciteert voor het infrastructuurteam).

1.2.2 individuele bijdragers vs managers

Facebook heeft twee carrièremogelijkheden. U kunt groeien tot een manager waar je uiteindelijk leiden teams van ingenieurs (management track). Of u kunt blijven zeer hands-on technisch en specialiseren als je meer senior (individuele bijdrager track).

als u als individuele bijdrager interviewt, moet u vooral technische interviews verwachten en zal u doorgaans slechts één gedragsinterview hebben.

als u interviewt als manager, directeur of hoger, dan moet u ten minste twee gedragsinterviews verwachten. Wees bereid om vragen te beantwoorden over hoe je mensen ontwikkelt, werkt met cross functionele teams, projecten uitvoert, een organisatie laat groeien, enz.

1.3 Wat gebeurt er achter de schermen

uw recruiter leidt het proces en neemt u mee van de ene fase naar de volgende. Hier is wat er gebeurt achter de schermen in elk van de hierboven beschreven stadia:

  • na de technische telefoon scherm, de interviewers je hebt gesproken met 24 uur om hun ratings en notities in te dienen aan het interne systeem. Uw recruiter bekijkt dan de feedback, en besluit om u te verplaatsen naar de Onsite interview of niet afhankelijk van hoe goed je hebt gedaan.
  • na de on-site, zullen de vier tot zes interviewers een aanbeveling doen over het al dan niet inhuren van u en de recruiter stelt uw “pakket” (interview feedback, CV, verwijzingen, enz.) Als ze denken dat je de baan kunt krijgen, zullen ze uw zaak presenteren op de volgende kandidaat review meeting.
  • kandidaat-toetsingsvergaderingen worden gebruikt om alle kandidaten te beoordelen die onlangs hun interviewprogramma hebben afgerond en bijna een bod hebben gekregen. Uw pakket zal worden geanalyseerd en mogelijke problemen zullen worden besproken. Uw interviewers worden uitgenodigd om deel te nemen aan uw kandidaat review vergadering, maar zal meestal alleen aanwezig zijn als er een sterke onenigheid in de cijfers die u hebt ontvangen (bijvoorbeeld 2 geen hires, 2 hires). Als het team het na discussies nog steeds niet eens kan worden of je een aanbod moet krijgen of niet, kan je gevraagd worden om een vervolggesprek te doen om het debat te regelen. Aan het einde van de kandidaat review vergadering, een huren / geen huren aanbeveling wordt gemaakt voor overweging door de wervingscommissie.
  • het aanwervingscomité bestaat uit senior leiders van heel Facebook. Deze stap is meestal een formaliteit en de Commissie volgt de aanbeveling van de kandidaat review vergadering. De belangrijkste focus ligt op het fine-tunen van het exacte niveau en daarom compensatie wordt u aangeboden.

het is ook belangrijk op te merken dat het inhuren van managers en mensen die u doorverwijzen weinig invloed hebben op het totale proces. Ze kunnen je helpen om een interview te krijgen aan het begin, maar dat is het zo ‘ n beetje.

2. Voorbeeld vragen

hier bij IGotAnOffer geloven we in datagedreven interviewvoorbereiding en hebben we Glassdoor-gegevens gebruikt om de soorten vragen te identificeren die het vaakst worden gesteld op Facebook.

voor coderingsinterviews hebben we de vragen opgesplitst in subcategorieën (bijvoorbeeld Arrays / Strings, grafieken / bomen, enz.), zodat u kunt prioriteren de meest voorkomende degenen in uw voorbereiding. Voor systeemontwerp en gedragsvragen hebben we 10 voorbeeldvragen vermeld die vaak werden gerapporteerd op Glassdoor.

2.1 interview met programmeurs

Facebook software engineer interview questions

Facebook software engineers lossen enkele van de moeilijkste problemen op waarmee het bedrijf te maken heeft met code. Het is daarom essentieel dat ze over sterke probleemoplossende vaardigheden beschikken. Dit is het deel van het interview waar je wilt laten zien dat je op een gestructureerde manier denkt en code schrijft die accuraat, bug-vrij en snel is.

hier zijn de meest voorkomende vraagtypen die worden gesteld in Facebook-coderingsinterviews en hun frequentie. Let op de onderstaande lijst sluit systeemontwerp en gedragsvragen uit die we in de volgende secties behandelen.

  1. Arrays / Strings (38% van de vragen, meest frequent)
  2. grafieken / bomen (29%)
  3. dynamische programmering (18%)
  4. zoeken / sorteren (9%)
  5. gekoppelde lijsten (4%)
  6. stapels / wachtrijen (2%, minst frequent)

we hebben ook veelvoorkomende voorbeelden die op Facebook worden gebruikt voor deze verschillende vraagtypen hieronder vermeld. Om deze vragen gemakkelijker te bestuderen, hebben we de frasering aangepast aan het dichtstbijzijnde probleem op Leetcode of een andere bron, en we hebben gekoppeld aan een gratis oplossing.

tot slot raden we aan het volgende artikel te lezen dat is geschreven door een ex-Facebook-interviewer om meer te begrijpen over de stapsgewijze aanpak die u moet gebruiken om coderingsvragen op te lossen.

voorbeeld vragen over codering gesteld door Facebook

1. Arrays / Strings (38% van de vragen, meest voorkomende)

  • “gegeven een array nums van n gehele getallen waarbij n > 1, geeft u een array output zodanig terug dat output gelijk is aan het product van alle elementen van nums behalve nums.”(Solution)
  • ” gegeven een niet-lege tekenreeks s, mag u maximaal één teken verwijderen. Beoordeel of je er een palindroom van kunt maken.”(Solution)
  • ” implementeer next permutation, die getallen herschikt in de lexicografisch volgende grotere permutatie van getallen.”(Solution)
  • ” gegeven een string S en een string T, zoek het minimale venster in S dat alle tekens in t in complexiteit O (n) zal bevatten.”(Solution)
  • ” gegeven een array van strings strs, groepeer de anagrammen samen.”(Solution)
  • ” gegeven een string s die alleen de tekens bevat ‘(‘, ‘)’, ‘{‘, ‘}’, “, bepaal of de invoerstring geldig is.”(Solution)
  • ” gegeven een array nums van n gehele getallen, zijn er elementen a, b, c in nums zodanig dat a + b + c = 0? Vind alle unieke drielingen in de array die de som van nul geeft.”(Oplossing)

2. Grafieken / bomen (29%)

  • “gegeven het root knooppunt van een binaire zoekboom, retourneert u de som van de waarden van alle knooppunten met een waarde tussen L en R (inclusief).”(Solution)
  • ” gegeven een binaire boom, converteer het naar een cirkelvormige dubbel gelinkte lijst (In-Place).”(Solution)
  • ” implementeer een iterator over een binary search tree (BST). Uw iterator zal worden geïnitialiseerd met de root node van een BST.”(Solution)
  • ” gegeven een binaire boom, moet u de lengte van de diameter van de boom berekenen.”(Solution)
  • ” Serialize and deserialize a binary tree”(Solution)
  • ” Geef een binary tree, zoek de maximale path sum.”(Solution)
  • ” gegeven een gesorteerd woordenboek (array van woorden) van een vreemde taal, zoek de volgorde van de tekens in de taal.”(Oplossing)
  • “Controleer of een gegeven grafiek Bipartiet is of niet” (Oplossing)

3. Dynamische programmering (18%)

  • “gegeven een lijst van niet-negatieve getallen en een target integer k, Schrijf een functie om te controleren of de array een continue subarray van grootte ten minste 2 heeft die somt tot het veelvoud van k, dat wil zeggen, somt tot n*k waar n ook een geheel getal is.”(Oplossing)
  • “stel dat je een array hebt waarvoor het IDE element de prijs is van een bepaald aandeel op dag i. als je slechts één transactie mocht voltooien (dat wil zeggen, er één kopen en één aandeel van het aandeel verkopen), ontwerp dan een algoritme om de maximale winst te vinden.”(Oplossing)

  • “geef een invoerstring (s) en een patroon (p), implementeer reguliere expressie matching met ondersteuning voor '.' en '*'.”(Solution)
  • ” u krijgt een lijst met niet-negatieve gehele getallen, a1, a2, …, een, en een doel, S. nu heb je 2 symbolen + en -. Voor elk geheel getal moet u er een kiezen uit + en - als het nieuwe symbool. Ontdek hoeveel manieren om symbolen toe te wijzen om de som van gehele getallen gelijk te maken aan doel S. ” (oplossing)

4. Zoeken / sorteren (9%)

  • “we hebben een lijst van points in het vliegtuig. Zoek de K punten die het dichtst bij de oorsprong liggen (0, 0).”(Solution)
  • ” gegeven twee arrays, Schrijf een functie om hun snijpunt te berekenen.”(Solution)
  • ” gegeven een array van tijdintervallen bestaande uit begin-en eindtijden ,,…] zoek het minimum aantal benodigde vergaderzalen.”(Oplossing)

5. Gekoppelde lijsten (4%)

  • “een gekoppelde lijst wordt zodanig gegeven dat elk knooppunt een extra willekeurige pointer bevat die naar een knooppunt in de lijst Of null kan wijzen. Retourneer een diepe kopie van de lijst.”(Solution)
  • ” gegeven een afzonderlijk gekoppelde lijst L: L0?L1?…?Ln-1?Ln, opnieuw ordenen naar: L0?Ln?L1?Ln-1?L2?Ln-2?… “(Oplossing)

6. Stapels / wachtrijen (2%)

  • “implementeer de volgende bewerkingen van een wachtrij met behulp van stacks.”Opmerking: Zie meer details op de volgende link. (Oplossing)

2.2 Facebook, Instagram en Whatsapp hebben allemaal meer dan 1 miljard actieve gebruikers per maand. Facebook engineers moeten daarom systemen kunnen ontwerpen die zeer schaalbaar zijn. De coderingsvragen die we hierboven hebben behandeld, hebben meestal één optimale oplossing. Maar de vragen over het systeemontwerp die u zult worden gesteld, zijn doorgaans meer open en voelen meer aan als een discussie.

Dit is het deel van het interview waarin u wilt laten zien dat u tegelijkertijd creatief en gestructureerd kunt zijn. In de meeste gevallen past uw interviewer de vraag aan uw achtergrond aan. Als je bijvoorbeeld aan een API-product hebt gewerkt, vragen ze je om een API te ontwerpen. Maar dat zal niet altijd het geval zijn, dus je moet klaar zijn om elk type product of systeem op een hoog niveau te ontwerpen.

zoals eerder vermeld, zullen de verwachtingen van een junior Ontwikkelaar lager zijn dan die van een mid-level of senior. Bovendien, voor bepaalde functies (bijvoorbeeld infrastructuur, veiligheid, enz.) u zult waarschijnlijk verschillende systeemontwerp interviews in plaats van slechts één.

hier zijn de meest voorkomende vragen over het ontwerp van het systeem die worden gesteld in de Facebook-interview rapporten die kunnen worden gevonden op Glassdoor. Voor meer informatie raden we aan om de volgende handleiding te lezen over het beantwoorden van vragen over systeemontwerp en het oefenen van vragen over systeemontwerp in deze cursus.

Top 10 ontwerp van het systeem vragen op Facebook

  • Hoe zou u het ontwerp van Instagram / Instagram Verhalen
  • Hoe zou u het ontwerp van Facebook
  • Hoe zou u het ontwerp van Facebook Messenger
  • Hoe zou u het ontwerp van Facebook ‘ s live update van reacties op berichten
  • Hoe zou u het ontwerp van een gezamenlijke online-editor (bijvoorbeeld Google Docs)
  • Hoe zou u het ontwerp van een typehead functie (bijv. Google search autocomplete)
  • hoe zou u de trending topics van Twitter ontwerpen
  • hoe zou u een gedistribueerd Botnet ontwerpen
  • hoe zou u een systeem ontwerpen dat miljoenen kaarttransacties per uur aankan
  • hoe zou u de beveiliging van het bedrijfsnetwerk van Facebook vanuit het niets ontwerpen (Security team interview)

2.3 Facebook engineers werken meestal in cross-functionele teams met andere engineers, productmanagers, ontwerpers, data-analisten, enz. Ze moeten in staat zijn om duidelijk te communiceren, efficiënt met anderen te werken, vertrouwen en relaties op te bouwen, enz.

Dit is het deel van het interview waar je echt wilt laten zien dat je goed bent in het werken met anderen. Zoals we al eerder vermeld, als je solliciteert voor een manager positie of hoger, dan heb je meerdere gedragsinterviews en ook onderwerpen zoals het leiden van teams, het ontwikkelen van talent, het beheren van de dag-tot-dag, enz.

hieronder hebben we tien frequente gedragsvragen vermeld die Facebook doorgaans stelt, volgens gegevens van Glassdoor. Voor meer informatie, Bekijk onze artikelen over hoe te beantwoorden gedragsmatige interview vragen en de ” waarom Facebook?” vraag.

top 10 gedragsvragen gesteld op Facebook

  • vertel me over uzelf
  • waarom Facebook?
  • mij Vertellen over een recente / favoriete project en een aantal van de moeilijkheden die je had
  • Vertel me eens over de grootste prestatie van uw carrière
  • Vertel me over een keer dat u moeite om te werken met een van uw collega ‘ s
  • Vertel me over een tijd dat je het moest oplossen van een conflict in een team
  • Vertel me over een keer dat je kregen feedback dat was constructieve
  • Vertel me over een tijd hadden om de stap te zetten en verantwoordelijkheid te nemen voor anderen
  • Vertel me over een keer dat je worstelde op een van uw software projecten
  • Vertel me over je ergste baas en waarom ze slecht waren

3. How to prepare

Nu u weet welke vragen U kunt verwachten, laten we ons concentreren op hoe u zich moet voorbereiden. Het is geen geheim dat de performance bar op Facebook is hoog. Sommige mensen gaan zelfs zo ver om hun baan op te geven om zich fulltime voor te bereiden op interviews.

dit is duidelijk extreem en niet wat wij aanbevelen te doen, maar het laat zien hoeveel moeite sommige kandidaten bereid zijn in te zetten. We hebben hieronder de vier stappen opgesomd die we aanbevelen om ons zo efficiënt mogelijk voor te bereiden.

3.1 Leer meer over de cultuur van Facebook

de meeste kandidaten doen dit niet. Maar voordat u tientallen uren voor een interview op Facebook investeert, moet u de tijd nemen om ervoor te zorgen dat het echt het juiste bedrijf voor u is.

Facebook is prestigieus en het is daarom verleidelijk om die stap volledig te negeren. Maar in onze ervaring, het prestige op zich zal je niet gelukkig maken van dag tot dag. Het is het soort werk en de mensen met wie je werkt.

als u ingenieurs kent die bij Facebook werken of daar gewerkt hebben, is het een goed idee om met hen te praten om te begrijpen hoe de cultuur is. Daarnaast raden we het lezen over Facebook ‘ s 5 kernwaarden en hacker cultuur.

3.2 oefen zelf

zoals hierboven vermeld, heb je drie soorten interviews op Facebook: coderen, systeemontwerp en gedrag. De eerste stap van je voorbereiding zou moeten zijn om deze verschillende soorten vragen op te frissen en te oefenen om ze zelf te beantwoorden.

voor coderingsinterviews raden we aan het volgende artikel te lezen dat is geschreven door een ex-Facebook-interviewer om meer te begrijpen over de stapsgewijze aanpak die u moet gebruiken om coderingsvragen in een interview op te lossen.

en om te oefenen, raden we aan om Leetcode te gebruiken waar je veel gedaan kunt krijgen met de gratis tier, en ook toegang te krijgen tot Facebook-specifieke vragen met behulp van de Premium tier.

voor interviews met systeemdesign raden wij aan onze gids voor interviews met systeemdesign te bestuderen. De gids behandelt een stap-voor-stap methode voor het beantwoorden van systeemontwerp vragen, en biedt een aantal voorbeeldvragen met oplossingen.

voor gedragsinterviews raden we aan om onze stap-voor-stap methode te leren om dit soort vragen te beantwoorden. Daarnaast wilt u uw antwoorden opschrijven op de Algemene gedragsvragen die we in de vorige sectie hebben vermeld.

tenslotte, een geweldige manier om te oefenen met coderen, systeemontwerp en gedragsvragen, is om jezelf hardop te interviewen.

dit klinkt misschien vreemd, maar het zal de manier waarop u uw antwoorden tijdens een interview communiceert aanzienlijk verbeteren en maakt echt een verschil in onze ervaring. Speel de rol van zowel de kandidaat als de interviewer, stel vragen en beantwoord ze, net als twee mensen zouden doen in een interview.

3.3 oefenen met peers

alleen oefenen zal je niet verder brengen. Een van de belangrijkste uitdagingen van codering interviews is om te communiceren wat je doet als je het doet. Als gevolg daarvan raden we het beoefenen van live codering interviews met een peer interviewen u.

een goede plek om te beginnen is om te oefenen met vrienden als je kunt. Als je niemand in je netwerk hebt die je kan interviewen, dan kun je ook collega ‘ s vinden om mee te oefenen op platforms zoals Pramp.

3.4 oefenen met ex-interviewers

het belangrijkste voordeel van oefenen met collega ‘ s is dat het gratis is. Maar op een gegeven moment zul je beginnen te merken dat de feedback die je krijgt van collega ‘ s helpt je niet zo veel meer. Zodra je dat stadium bereikt, raden we aan te oefenen met ex-interviewers van top tech bedrijven.

als u een Software Engineer kent die ervaring heeft met interviews op Facebook of een ander groot tech bedrijf, dan is dat fantastisch. Maar voor de meesten van ons is het moeilijk om de juiste connecties te vinden om dit te laten gebeuren. En het kan ook moeilijk zijn om meerdere uren te oefenen met die persoon, tenzij je ze echt goed kent.

hier is het goede nieuws. We hebben de verbanden al gelegd. We hebben een coachingservice gecreëerd waar je 1-op-1 kunt oefenen met ex-interviewers van toonaangevende technologiebedrijven zoals Facebook. Meer informatie en begin vandaag nog met het plannen van sessies.

SWE Interview Coaching

vragen over Facebook Software Engineer interviews?

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.