Erfahrung mit Google AE-Interviews
Google LLC ist ein amerikanisches multinationales Technologieunternehmen, das sich auf künstliche Intelligenz, Suchmaschinentechnologie, Online-Werbung, Cloud-Computing, Computersoftware, Quantencomputer, E-Commerce und Unterhaltungselektronik konzentriert. Es wurde aufgrund seiner Marktbeherrschung, Datenerfassung und technologischen Vorteile im Bereich der künstlichen Intelligenz als das „mächtigste Unternehmen der Welt“ und eine der wertvollsten Marken der Welt bezeichnet. Es gilt neben Amazon, Apple, Meta und Microsoft als eines der Big Five der amerikanischen Informationstechnologieunternehmen.
- Stufe: Mittel bis Schwer
- Vorstellungsgespräch und Rekrutierungsprozess: Durchschnitt
Google Recruiter hat mich auf linkedIn wegen des Vorstellungsgesprächs für die Position des Anwendungsingenieurs kontaktiert.
Über die Rolle : Diese Rolle konzentriert sich im Allgemeinen auf die Entwicklung von Anwendungen, die von den internen Kunden (Mitarbeitern von Google) verwendet werden. Für diese Rolle liegt der Fokus mehr auf dem Systemdesign und etwas weniger auf Datenstrukturen und Algorithmen. Der abgefragte DSA liegt also im Allgemeinen auf mittlerem Niveau.
Aufbau des Interviews/Runden
1. Kontaktaufnahme
2. Codierungsrunde 1
3. Codierungsrunde 2
4. Systemdesign-Runde (abhängig vom Ergebnis der Codierungsrunde 1+2)
Erreichen
Google-Recruiter haben mich über linkedIn kontaktiert. Daher ist es sehr wichtig, Ihr linkedIn-Profil mit Ihren Projekten, Fähigkeiten, Erfahrungen und Erfolgen auf dem Laufenden zu halten.
Codierrunde 1
Zeit -: 45 min
Plattform -: Google Doc
Diese Runde basierte vollständig auf Datenstrukturen und Algorithmen . Mir wurde 1 mittleres Problem gestellt.
Problem:
Dieses Problem basierte auf Circular Dynamic Programming
Zuerst habe ich mit ihnen verschiedene Testfälle besprochen und ihnen dann den Brute-Force-Ansatz erklärt, sie haben nach der zeitlichen und räumlichen Komplexität des Problems gefragt und mir dann gesagt, ich solle es optimieren. Dann habe ich mit ihnen den optimierten Ansatz besprochen und umgesetzt.
Codierrunde 2
Zeit -: 45 min
Plattform -: Google Doc
Diese Runde wurde am selben Tag wie die Codierungsrunde 1 durchgeführt. Auch diese Runde basierte auf Datenstrukturen und Algorithmen. 1 Problem auf mittlerer Ebene wurde mit ihren optimierten Ansätzen und zeitlichen und räumlichen Komplexitäten diskutiert.
Problem:
1) Es war ein Leetcode-Problem auf mittlerer Ebene, das auf einer Zeichenfolge + Hash-Karte basiert.
sol – Das Problem wurde in verschiedenen Phasen modifiziert, indem weitere Testfälle hinzugefügt wurden. Und bei jedem Ansatz, den ich ihnen erzählte, wurde ich gebeten, ihn umzusetzen, und die zeitliche und räumliche Komplexität wurden jedes Mal besprochen, wenn ich meinen Ansatz änderte.
HINWEIS : Die technischen Runden können leicht verbessert werden, indem man DSA-Probleme auf Leetcode übt und regelmäßig Wettbewerbe veranstaltet. Die Themen, aus denen Fragen kommen können, sind: Dynamische Programmierung, Bäume, Rekursion, Verkettete Liste, String, Arrays usw. Das Niveau der Fragen ist im Allgemeinen für die Position des Anwendungsingenieurs mittel.
Die Bestimmung der Zeit- und Raumkomplexität ist sehr wichtig, ebenso wie das Identifizieren von Grenzfällen, das Anpassen der richtigen Datenstruktur, das Anwenden des richtigen Algorithmus, lautes Denken und gutes Erklären.
Systemdesign-Runde
Zeit -: 45 min + 15 min (Googlyness)
Plattform -: Google Doc
Diese Runde wird nur durchgeführt, wenn das Ergebnis von Kodierrunde 1 + Kodierrunde 2 vielversprechend ist. Meine Systemdesignrunde war 2 Tage nach meinen Programmierrunden angesetzt.
Diese Runde basierte auf einem High-Level-Systemdesign. Das Hauptaugenmerk dieser Runde lag darauf, den Ansatz zum Entwerfen eines guten skalierbaren Systems, der Entwurfs-API und der Datenbank zu testen.
Mir wurde ein System zum Entwerfen gegeben, in dem ich eine Online-Einkaufsseite für Leckereien für die Google-Mitarbeiter erstellen musste.
Ich habe die folgenden Dinge für das Anwendungsdesign besprochen.
1. Verschiedene Server für verschiedene Regionen.
2. Load-Balancing für Server.
3. Horizontale Skalierung der gesamten Anwendung.
4. Art der Datenbank (sql vs. NoSql), die verwendet werden kann, und dann schnelles Abfragen durch Indexierung.
5. Zwischenspeichern der Daten für bereits angemeldete Benutzer.
6. Mögliche Microservices, die in der Anwendung verwendet werden können.
7. Drittanbieter für die Verwaltung des Zahlungsgateways (einer der möglichen Mikrodienste).
Währenddessen diskutierte ich weiter,
a) Die Gestaltung der Datenbank. Die Anzahl der erforderlichen Tabellen, die Arten von Zeilen und Spalten, die verwendet werden können, um die Daten effizient abzufragen.
b) Das Entwerfen der Api . Das heißt, wie die Api-Endpunkte mit der Art der darauf befindlichen Anfrage aussehen werden.
Ich habe die Architektur erklärt, indem ich sie grob auf Google Doc gezeichnet habe. Was mir das Erklären erleichterte.
Diese Runde basierte hauptsächlich auf der Richtung, in die Sie sie nehmen. Die Frage wird Ihnen anhand Ihrer Ansätze und Ideen gestellt.
Die Interviewer geben auch notwendige Hinweise und sagen die negativen und positiven Aspekte eines bestimmten Ansatzes.
Quelle zum Studium:https://youtube.com/playlist?list=PLMCXHnjXnTnvo6alSjVkgxV-VH6EPyvoX|| Educative.io || GFG
Googlyness: In diesem Teil werden Fragen zu Teamprojekten, Teamarbeit und Zeitmanagement diskutiert. Die Diskussion zu diesen Themen dauert etwa 15 Minuten .
Schlussfolgern
Ich habe eine positive Antwort vom Interviewer und auch vom Feedback-Formular erhalten. Aber die Einstellung wurde aus internen Gründen zwischenzeitlich gestoppt.
Bei Fragen können Sie mich gerne auf LinkedIn kontaktieren: https://www.linkedin.com/in/riti-nema-707b1719b/
Alles Gute. Viel Spaß beim Codieren!!