Eine neue Stelle als Softwareentwickler finden
(henrikwarne.com)- Ein Softwareentwickler, der Ende 2023 von Entlassungen betroffen war, nahm bei der Suche nach einer neuen Stelle Kontakt zu 30 Unternehmen auf und stellte anhand von 8 Absagen, 6 ausbleibenden Antworten und 3 Angeboten fest, dass der Markt enger war als erwartet
- Die wichtigsten Kanäle für die Jobsuche waren Open to work auf LinkedIn, eine bestehende Liste interessanter Unternehmen und Entwickler-Matching-Seiten wie Demando; Suchen nach Remote-Stellen und alte Ausschreibungen erwiesen sich als wenig verlässlich
- Der übliche Einstellungsprozess war mit 4–5 Stufen lang — von Recruiter-, Manager- und Technikinterviews über Aufgaben bis hin zu Gesprächen mit CTO oder Gründern — und aufgabenbasierte Coding-Tests nahmen deutlich mehr Zeit in Anspruch als von den Unternehmen angegeben
- Zur Vorbereitung wurden STAR-Antworten auf Verhaltensfragen, Python- und Go-Code-Snippets, Leetcode, GoLand, ChatGPT und GitHub Copilot genutzt, doch bei Live Coding sank die Denkfähigkeit durch Nervosität unter das normale Niveau
- In einem schwierigeren Markt entschieden Anforderungen an sprachspezifische Erfahrung, langsame Rückmeldungen, die Klärung von Gehaltsspannen und die Terminabstimmung mehrerer Prozesse über Angebotsverhandlungen und die finale Wahl
Die Situation direkt nach der Entlassung und die Vorbereitungshaltung
- Ende Oktober letzten Jahres wurden im Unternehmen 17 Personen entlassen, darunter 8 Entwickler
- Wenige Minuten nach einem Zoom-Anruf mit dem CEO wurden sämtliche Zugänge zu Unternehmensressourcen gesperrt
- Mehrere laufende Änderungen konnten nicht mehr gepusht werden
- Es wurde schwierig, sich ordentlich von Kollegen zu verabschieden
- Mehrere Kollegen meldeten sich über LinkedIn, und einige organisierten Zoom-Gespräche, damit man über die Situation sprechen und sich verabschieden konnte
- Frühere Jobwechsel erfolgten meist aus eigenem Antrieb während eines bestehenden Arbeitsverhältnisses; nach Abschluss der in Schweden üblichen 3-monatigen Kündigungsfrist ging es dann zum neuen Unternehmen
- Durch die sofortige Sperrung der Zugänge konnte die gesamte Zeit während der weiterlaufenden Gehaltszahlung direkt in die Jobsuche investiert werden
- Mit dem Gedanken, jederzeit eine neue Stelle finden zu müssen, wurde eine Liste von Unternehmen gepflegt, bei denen man gern arbeiten würde, und zu früher kontaktierten Recruitern blieben gute Beziehungen bestehen
Kanäle für die Jobsuche
-
Nutzung von LinkedIn
- Der LinkedIn-Status Open to work wurde von „Flexible, I am casually looking“ auf „Immediately, I’m actively applying“ geändert
- Die Sichtbarkeit wurde auf Recruiter beschränkt statt auf alle LinkedIn-Mitglieder, und der grüne #OpenToWork-Bilderrahmen wurde nicht verwendet
- In etwa der ersten Woche nach der Änderung meldeten sich pro Tag rund 5 Recruiter
- Die Qualität der Rollen war ähnlich wie sonst, aber die Kontaktfrequenz deutlich höher
- Beim Prüfen der Liste interessanter Unternehmen wurden sowohl der Jobs-Tab der LinkedIn-Unternehmensseiten als auch die jeweiligen Karriereseiten angesehen
- LinkedIn war praktisch, weil sich Zahl der Bewerber, Veröffentlichungszeitpunkt, Kontakte im Unternehmen und der Ersteller der Ausschreibung sehen ließen
- Keyword-Suchen wie „Golang Stockholm“, „Recommended for you“ und bei Premium „Jobs where you’d be a top applicant“ zeigten ebenfalls einige gute Ausschreibungen
- Die Suche nach vollständig Remote-Stellen auf LinkedIn war wenig vertrauenswürdig
- Es tauchten etwa Rollen auf, die nur innerhalb des Vereinigten Königreichs remote möglich waren
- Sinnvoll wäre eine Unterteilung in vollständig remote innerhalb Schwedens, innerhalb der EU oder weltweit
- Es war schwierig, nur aktuelle Ausschreibungen zu sehen, sodass bereits betrachtete Anzeigen immer wieder überblättert werden mussten
- Später wurde eine Methode entdeckt, bei Google den Zeitraum auf die letzte Woche zu setzen und etwa mit
golang fully remote site:linkedin.com/jobszu suchen - Rund 15 Recruiter, die früher einmal über LinkedIn Kontakt aufgenommen hatten, wurden erneut angeschrieben, aber ohne Ergebnis
- Auch InMails an einstellende Manager blieben unbeantwortet
-
Andere Seiten und Suchmethoden
- Es wurde die schwedische Matching-Plattform für Entwickler und Arbeitgeber Demando genutzt
- Ein Profil mit Technologien und Mindestgehaltsvorstellung wurde aktiviert, und von einem dort kontaktierenden Unternehmen kam später ein Angebot
- Auch Ausschreibungen anderer Unternehmen, die auf LinkedIn nicht gesehen wurden, wurden über Demando gefunden und führten ebenfalls zu einem Angebot
- RemoteOK wurde kurz geprüft, bot aber keine passenden Stellen; insgesamt wurde die Qualität der Ausschreibungen als schwächer als bei LinkedIn empfunden
- Efinancialcareers bot kaum vollständig Remote-Rollen und war schwer zu durchsuchen
- Auch der monatliche Hacker-News-Thread Who’s hiring wurde angesehen, doch relevante Einträge waren schwer zu finden
- Um ähnliche Unternehmen zu finden, wurde außerdem bei Google mit Kombinationen aus „competitor to“ oder „alternative to“ und Unternehmensnamen gesucht
Verwaltung der Bewerbungen und Erfahrungen mit Rückmeldungen
- Obwohl alle Recruiter bereits ähnliche Informationen im LinkedIn-Profil sehen konnten, verlangten sie dennoch einen CV
- Auch bei Direktbewerbungen verlangten die meisten Unternehmen einen CV, viele zusätzlich ein Anschreiben
- Einmal geschriebene Anschreiben wurden gespeichert und für neue Bewerbungen jeweils aus dem ähnlichsten früheren Text kopiert und angepasst
- Zur Verwaltung der Bewerbungen wurde eine Excel-Tabelle mit Unternehmensname, Bewerbungsdatum, Recruiter oder Ansprechpartner und allgemeinen Notizen angelegt
- Insgesamt gab es 30 Einträge, aber nicht alle führten zu formellen Bewerbungen
- Von den beworbenen Unternehmen antworteten 6 überhaupt nicht
- Einige Ausschreibungen waren bereits über einen Monat alt
- Wenn eine Ausschreibung nicht mehr gültig sei, sollte sie nach dieser Einschätzung entfernt werden
- Wenn es keinen persönlichen Kontakt im Unternehmen gegeben hatte, war Funkstille noch verkraftbar; nach einem Interview wirkte sie sich jedoch negativ auf die Wahrnehmung des Unternehmens aus
- Ein Unternehmen wollte nach dem ersten Recruiter-Gespräch ein Manager-Interview vereinbaren, meldete sich dann aber nicht mehr
- Zwei Wochen später wurde per E-Mail nachgefragt, ohne Antwort; erst nachdem weitere zwei Wochen später das fehlende Interesse mitgeteilt wurde, kam eine halbherzige Entschuldigung
Bezahlte Tools und Vorbereitungsmaterialien
- LinkedIn Premium wurde für einen Monat bezahlt, war aber weniger nützlich als erwartet
- Ob sich dadurch wirklich mehr Profilbesucher sehen ließen, blieb unklar, und für die Jobsuche war der Nutzen begrenzt
- Auch einige versendete InMails brachten wenig
- „Jobs where you’d be a top applicant“ hatte ebenfalls keinen entscheidenden Wert
- Nach einem Monat wurde gekündigt, wobei vor der Kündigung ein Angebot für 2 Monate zum Preis von 1 Monat kam
- Da nach Go-Stellen gesucht wurde, wurde für zwei Monate eine GoLand-Lizenz bezahlt, um in einer vertrauten Umgebung zu üben
- GitHub Copilot wurde ebenfalls ausprobiert, aber in Interviews nur wenig genutzt, um klar belegen zu können, dass der Code selbst geschrieben wurde
- Das bestehende ChatGPT-Abo erwies sich bei mehreren aufgabenbasierten Tests als nützlich, um schnell ein Grundgerüst für die gewünschte Arbeit zu erzeugen
- Die kostenpflichtige Version von Leetcode war hilfreich zur Interviewvorbereitung, weil dort Erklärungen verfügbar waren
- Ein Unternehmen nutzte einen IQ-Test von Alva Labs, daher wurde der Alva Logic Cram Course von 12minprep bezahlt und zum Üben verwendet
- Durch das Training vorab wurde der Test gefühlt deutlich besser absolviert
Ein engerer Markt und Anforderungen an Sprach-Erfahrung
- Im Vergleich zu den letzten 10 Jahren wurde der Markt für die Einstellung von Entwicklern eindeutig als schwieriger empfunden
- Es gab weiterhin viele Stellen, auf die man sich bewerben konnte, aber die Zahl der Bewerber pro Rolle schien höher als früher
- Bei vielen LinkedIn-Ausschreibungen mit sichtbarer Bewerberzahl wurden mehr als 100 Bewerber angezeigt
- Dass selbst bei passend wirkenden Rollen viele Unternehmen nicht antworteten, galt ebenfalls als Hinweis auf einen schwierigeren Markt
- Die Anforderungen an Erfahrung in bestimmten Programmiersprachen haben zugenommen
- Früher wurden auch ohne Python- oder Golang-Erfahrung Stellen begonnen, in denen in dieser Sprache entwickelt wurde, und schnell produktive Arbeit geleistet
- Mehrere imperative Sprachen wurden als ähnlich genug angesehen, um sich sprachlich anpassen zu können
- Viele Recruiter vermittelten jedoch, dass das einstellende Unternehmen 2–3 Jahre Erfahrung in einer bestimmten Sprache als harte Anforderung sehe
Interviewprozess und Vorbereitung
-
Prozess und Terminbelastung
- Der übliche Einstellungsprozess bestand aus 4–5 Interviews
- Erstgespräch mit Recruiter
- Interview mit dem Hiring Manager
- 1–2 Technikinterviews
- Aufgabenbasierter Test oder Live Coding
- Je nach Fall Gespräche mit Produktmanager, CTO oder Gründern
- Remote-Rollen wurden über Zoom, Meet oder Teams abgewickelt
- Für lokale Stellen in Stockholm wurden meist persönliche Interviews gewünscht
- Wegen der Pendelzeit nahm ein persönliches Interview einen halben Tag in Anspruch
- Remote-Interviews ließen sich dagegen auch mehrfach an einem Tag führen
- Persönliche Interviews hatten den Vorteil, dass sich Gegenüber und Büroatmosphäre besser einschätzen ließen
- Der übliche Einstellungsprozess bestand aus 4–5 Interviews
-
Verhaltensfragen und technische Vorbereitung
- In dem bereits gepflegten Word-Dokument Interview Tips wurden Inhalte gesammelt, die vor Interviews noch einmal angesehen wurden
- Diesmal kam ein Abschnitt Behavioral Questions hinzu, um sich auf Fragen wie „Erzählen Sie von einer Situation, in der Sie mit einem Kollegen unterschiedlicher Meinung waren“ vorzubereiten
- Antworten wurden entlang des STAR-Frameworks vorbereitet: Situation, Task, Action, Result, Reflection
- Anhand der Fragenliste von Leetcode Rock the Behavioral Interview wurden passende Beispiele zusammengestellt
- Diesmal wurde kein Interview wegen Verhaltensfragen verloren
- Kurze Code-Snippets in Python und Go wurden ebenfalls im Dokument festgehalten
- Ziel war, gängige Muster und Idiome schnell abrufen zu können
- Alle Snippets wurden ausgeführt, auf Fehler geprüft und mit passender Ausgabe versehen
- Außerdem wurde das Video von Gergely Orosz Confessions from a Big Tech Hiring Manager: Tips for Software Engineering Interviews angesehen
- Für Technikinterviews wurde mitgenommen, dass neugieriges, kooperatives Verhalten und aktives Fragen wichtig sind
Erfahrungen mit Interviews und Coding-Tests
-
Allgemeine Interviews
- In Erstgesprächen wurde offen erwähnt, dass die Entlassung beim vorherigen Arbeitgeber aus Kostengründen erfolgt war
- Das schien sich nicht nachteilig auszuwirken
- In Gesprächen mit Recruitern oder Managern bestand keine Nervosität, weil die gewünschte Art von Arbeit und die eigenen Stärken klar waren
- Auch nicht-programmierlastige Technikinterviews zu vertrauten Technologien verliefen ohne Nervosität; nur eines wurde nicht bestanden
- Auf die Frage, wie hoch ein Timeout für Datenbankverbindungen gesetzt werden sollte, wurde eine zu große Zahl genannt, was zum Ausscheiden führte
-
Aufgabenbasierte Tests
- Im Vergleich zum letzten Interview vor einigen Jahren gab es deutlich mehr aufgabenbasierte Tests
- Sie waren weniger stressig als Live Coding, kosteten aber viel mehr Zeit
- Unabhängig von den Angaben der Unternehmen dauerte jede Aufgabe nach dieser Einschätzung mindestens 6 Stunden
- Für Unternehmen sind frühe Aufgaben zwar kostengünstig, für Jobsuchende bedeuten sie jedoch einen großen Zeiteinsatz bei unsicherem Ertrag
- Insgesamt wurden 5 aufgabenbasierte Tests erledigt
- 2 in Java
- 2 in Python
- 1 in Go
- Etwa 1,5 davon wurden als Misserfolg gewertet
- Bei der Go-Aufgabe wurde zwar eine funktionierende Lösung eingereicht, aber ohne Tests
- Auch wenn das nicht ausdrücklich gefordert war, hätten Tests nach eigener Einschätzung enthalten sein sollen
- Zudem war unklar, ob das Programm wiederholt ausgeführt werden würde, aber das Fehlen von Caching zur Geschwindigkeitsverbesserung war ebenfalls ein Ablehnungsgrund
- Bei einer anderen Aufgabe bestanden die vorhandenen Tests, aber in versteckten Tests traten zwei Fehler bei leerer Eingabe auf
- Im Arbeitsalltag wären dafür zusätzliche Tests selbst geschrieben worden
- Da es von diesem Unternehmen am Ende dennoch ein Angebot gab, wurde dies nur als halber Misserfolg gezählt
-
Live Coding
- Beim Live Coding fühlte es sich wegen der Nervosität so an, als arbeite der Kopf nur mit etwa 50 % der normalen Leistung
- Von den Live-Coding-Runden wurden diesmal 3 bestanden und 2 nicht
- Der erste Fehlschlag war eine Aufgabe zur Erstellung eines eingeschränkten Schachprogramms
- Es mussten nur zwei Figurentypen unterstützt werden, aber Projektstruktur, Datenmodell, gültige Züge und Tests waren erforderlich
- Die Abgabe musste innerhalb von 2 Stunden erfolgen, was sehr knapp war
- Das meiste funktionierte, aber nicht die gesamte Funktionalität wurde fertig, und im Bewegungs-Code gab es einen Bug
- In einem anderen Fehlschlag funktionierten die Tests im vorbereiteten Initial-Repository des Unternehmens nicht, und auch die Einrichtung der Umgebung kostete Zeit
- Es mussten mehrere Fragen dazu gestellt werden, wie die Logik funktionieren sollte, und am Ende dauerte alles zu lange
- Bei allen Live-Coding-Tests wurde die eigene IDE auf dem eigenen Computer genutzt und der Bildschirm über Zoom geteilt
Gehaltsverhandlung und Entscheidung
- Anfangs wurden einige Interviews abgesagt, weil eine zu hohe Gehaltszahl genannt wurde
- Später wurde auf eine indirektere Methode umgestellt, indem das Gehalt der letzten 4 Jahre genannt wurde, um das gewünschte Niveau zu signalisieren
- Wenn ein Unternehmen sagte, dass es das nicht zahlen könne, wurde geantwortet, dass es wegen der aktuellen Arbeitslosigkeit kein absolutes Mindestgehalt gebe und vieles vom Gesamtangebot abhänge
- So konnten Prozesse weiterlaufen und später womöglich zu besseren Angeboten führen
- Nach dem ersten Angebot wurde das Verhandeln leichter
- Auf die Frage nach der Gehaltsspanne einer Rolle kam überraschend oft eine Antwort
- Das war nützlich, um bei Unternehmen mit zu niedrigem Niveau frühzeitig abzusagen
- Bei einem Unternehmen wurde die Gehaltsspanne nicht vorab geklärt, weil die Rolle besonders interessant war; nach mehreren Interviews und einer Aufgabe kam dann ein sehr niedriges Angebot
- Nach dieser Einschätzung wurde dadurch Zeit verschwendet
- Auch das Gespür für Entwicklergehälter in Stockholm wurde besser
- In Schweden wird in Monatsgehältern gedacht
- Ob Rentenbeiträge enthalten sind, muss ebenfalls berücksichtigt werden; meist sind sie enthalten, und zusätzlich können implizit 10–15 % darin stecken
- Ein sehr durchschnittliches Entwicklergehalt liegt bei 55K–65K SEK pro Monat
- 80K SEK oder mehr pro Monat ist schwieriger, aber selbst in einem engen Markt nicht unmöglich
- Manche Unternehmen bieten zusätzlich zu Gehalt auch Optionen, Beteiligungen oder Boni
- Bei der endgültigen Wahl sollten neben dem Gehalt auch Produkt und Unternehmen, verwendete Sprache, Lernmöglichkeiten und Kollegen berücksichtigt werden
Endergebnis und Erkenntnisse
- Ein Unternehmen zeigte sich sehr positiv und bat um zwei Referenzen, entschied sich am nächsten Tag dann aber für einen anderen Kandidaten
- Enttäuschend war dabei vor allem, dass dafür die Zeit von zwei Referenzpersonen in Anspruch genommen wurde
- Jobsuche ist letztlich stark ein Zahlenspiel
- Auch wenn viele Interviews scheitern, reicht ein einziges erfolgreiches Unternehmen aus, um eine neue Stelle zu bekommen
- Am Ende standen 3,5 Angebote zur Auswahl
- Bei einem Unternehmen gab es kein offizielles Angebot, aber es schien bereits klar, dass es unter zwei bereits vorliegenden Angeboten liegen würde, daher wurde es als halbes Angebot gezählt
- Einige Prozesse wurden verlangsamt, andere beschleunigt, damit mehrere Unternehmen ungefähr zeitgleich zum Abschluss kamen
- Das wurde durch das Verschieben von Interviews oder möglichst frühes Ansetzen koordiniert
- Mit mehreren Angeboten war die Verhandlungsposition deutlich besser, und schließlich wurde eine Senior-Developer-Stelle bei Swissblock angenommen, die sowohl interessante Arbeit als auch ein gutes Gehalt bot
- Eine neue Stelle zu finden bedeutet sehr viel Arbeit, und selbst am Wochenende bleibt oft noch Vorbereitung, sodass echte Erholung schwerfällt
- Mit 4–5 Interviewstufen, Aufgaben, Unternehmensrecherche, Terminabstimmung und Absagen kann sich der Prozess über Monate ziehen
- Die Ergebnisse von Interviews lassen sich selbst nur schwer einschätzen, und Absagen kamen oft überraschend
- Sehr hilfreich waren frühere Kollegen, mit denen sich der Bewerbungsprozess besprechen ließ
- Schnell reagierende Recruiter sind wichtig, um Vertrauen in ein Unternehmen aufzubauen
- Wenn ein Kollege entlassen wird, bedeutet es der betroffenen Person viel, wenn man sich über LinkedIn oder ähnliche Kanäle meldet, um sich zu verabschieden
1 Kommentare
Hacker-News-Kommentare
Als ML Engineer bei FAANG habe ich mich im letzten halben Jahr passiv nach einem Jobwechsel umgesehen, aber es war ganz anders als die verbreitete Vorstellung, dass Firmen mit Geldbündeln ankommen würden.
Dank meines Profils bekomme ich viele Recruiter-Nachrichten, aber mehr als die Hälfte ist mitten im Prozess abgetaucht, und Interesse von Recruitern ist nur eine Vanity-Metrik fürs Selbstwertgefühl, wenn daraus kein Angebot wird.
Es gibt zwar viel Nachfrage, aber die Einstellungskriterien sind auch sehr hoch: Firmen verlangen Erfahrung mit genau dem Tech-Stack, den sie selbst nutzen. Es gibt ein paar große ML-Frameworks, und viele Positionen fielen weg, nur weil ich mit einem davon nicht vertraut war; eine Firma lehnte mich ab, weil ich sechs Jahre Erfahrung mit einer bestimmten Technologie hatte und damit die Mindestanforderung von acht Jahren nicht erfüllte.
Bisher gab es nur eine Absage und zwei Downlevel-Angebote auf Senior, obwohl mein Ziel Staff+ war. Auch bei der Vergütung lag die Obergrenze meist bei etwa der Hälfte meiner aktuellen Gesamtvergütung, und nur eine Handvoll Firmen konnte mehr zahlen.
Insgesamt ist der Markt für ML Engineers besser als der für Software Engineers, aber er ist überhaupt nicht mehr mit dem überhitzten Markt von 2020 bis 2022 vergleichbar.
Google-Engineers gelten weiterhin meist als hochwertig, und Apple-Engineers haben ebenfalls einen guten Ruf, kommen aber selten auf den Markt. Facebook-/Meta-Engineers sind oft überdurchschnittlich, haben aber das Image aggressiver interner Aufstiegskonkurrenten.
Wenn die Jobsuche schwierig ist, denkt man eher an Amazon. Amazons aggressive Einstellungspolitik mit anschließendem PIP-Funnel hat zumindest meiner Erfahrung nach den Ruf beschädigt, und ehemalige Amazon-Engineers, mit denen ich in den letzten Jahren gearbeitet habe, waren häufig unterdurchschnittlich.
Es ergibt heute wenig Sinn, alles unter „FAANG“ zusammenzufassen; die Erwartungen an Engineers aus den einzelnen Firmen unterscheiden sich ziemlich stark. Außerdem stehen sie alle nicht mehr so im Fokus wie noch vor einigen Jahren, und der Schwerpunkt hat sich von reiner Engineering-Kompetenz hin zur Fähigkeit verschoben, in einem Großkonzern zu überleben.
Goldene Handschellen sind real und beabsichtigt, und es gibt nicht viele Firmen, deren Probleme groß genug sind, um eine Vergütung auf FAANG-Niveau per ROI zu rechtfertigen.
Außerdem gibt es in FAANG-internen Stacks viele hervorragende interne Tools, die es extern nicht gibt, sodass der Zweifel entsteht: „Ist diese Person Expertin, oder ist sie Expertin darin, den internen Google-Stack gut zu nutzen?“ Auch ist die Frage, ob sie sofort produktiv sein wird oder ob man zuerst diese Tools nachbauen muss.
Alle wollen dem CEO oder den Investoren sagen, dass sie FAANG-Talent abgeworben haben, aber nur wenige Firmen haben tatsächlich das Budget oder die passende Situation für einen Bieterwettstreit.
Als ich 2020 als Hiring Manager ML Engineers eingestellt habe, gab es dieses Problem ebenfalls, und in mittelgroßen Firmen stellt sich oft zusätzlich die Frage: „Wofür sollen wir einen ML Engineer überhaupt einsetzen?“ Wenn es nicht um Data Scientists oder generalistische Software Engineers geht, ist es schwer, eine Zwischenrolle zu schaffen; und wenn das Datenteam mit Engineering-Workflows und -Tools nicht vertraut ist, kann ein ML Engineer zwar versionierte, saubere Systeme bauen, aber weil das kein KPI ist, wird es leicht ignoriert.
Wenn man nicht exakt dieselbe Arbeit bei einer anderen Firma machen will, sollte man sich für Interviews so vorbereiten, dass man auch bei Technologien, mit denen man sich eigentlich erst nach dem Einstieg vertraut machen möchte, wie ein Experte wirkt. Je nach Fall muss man die eigene Erfahrung vielleicht etwas ausschmücken.
Expertise sollte letztlich eher in der Denkweise liegen als im Auswendigwissen, aber der Arbeitsmarkt sieht das nicht so; man muss also bereit sein, es gut darzustellen und es später durch Lernen am Abend abzusichern.
Außerdem lassen sich Level nicht unverändert von einer Umgebung auf eine andere übertragen. Wenn man die passende Arbeit findet, kann man aufsteigen; wenn man zu sehr an Level oder Vergütung hängt, schränkt man die eigenen Optionen eher ein.
Obwohl ich mich im Verhältnis zu Erfahrung und Verantwortung ziemlich unterbewertet fühle, sind Vergütung und Benefits in aktuellen Ausschreibungen erschreckend schlecht.
Anders als in der EU oft behauptet, werben viele Stellen zwar mit „hybrid“ und „Flexibilität“, legen aber erst spät im Interviewprozess offen, dass drei bis vier Tage pro Woche im Büro nötig sind und dass sie wegen „Zusammenarbeit“ Präsenzmeetings bevorzugen.
Während von Inflationsanpassung die Rede ist, sinken die Gehälter, und es fühlt sich so an, als würde die EU die US-Überhitzung und -Unsicherheit übernehmen, ohne beim Lohnniveau aufzuschließen.
Zum Beispiel ist es schwer, mehr Chips zu bekommen, und in einer Umgebung, in der Rechenressourcen ohnehin knapp sind, wird man wahrscheinlich weniger Experimente fahren und weniger Durchsatz haben.
Ich glaube, die aktuelle Einstellungskrise in den USA hat bösartigere Züge, als dass Firmen einfach nur wählerischer geworden wären.
Erstens lernen US-Firmen, Offshore-Teams zu niedrigeren Kosten einzustellen. Jede Woche bekomme ich mehrere E-Mails, in denen Teams aus Südamerika oder Indien zu niedrigen Stundensätzen angeboten werden, und bei meinem früheren Arbeitgeber habe ich selbst gesehen, wie US-/nordamerikanisches Personal massiv reduziert und durch ein Indien-Team ersetzt wurde, rein zur Kostensenkung.
Zweitens scheint es auch eine Bewegung zu geben, bei der US-Firmen die Kontrolle zurückholen wollen, die während der Corona-Zeit zu den Arbeitnehmern gewandert war.
Ich habe gerade erst mit der Jobsuche begonnen und bin schon frustriert; ich erlebe Ghosting, keine Antworten und Dinge wie „zu wenige Jahre Erfahrung im Verhältnis zu den Anforderungen“. Zum Beispiel: drei Jahre Erfahrung mit .NET 6 zwingend erforderlich.
Heute habe ich mir die wichtigsten Wettbewerber angesehen: Einer hatte jede Menge Programmierjobs in Mexiko ausgeschrieben, ein anderer rekrutierte hauptsächlich in Indien.
Nicht ChatGPT wird US-Engineering-Jobs wegnehmen, sondern billigere Entwickler aus anderen Ländern. Viele von ihnen haben ausreichende Englisch- und Programmierkenntnisse; ich weiß das, weil ich mit ihnen gearbeitet habe.
Wenn ein Job remote erledigt werden kann, kann ihn auch jemand irgendwo auf der Welt für ein Fünftel der Kosten machen.
Den Rat aus „Kernelemente einer Microsite für die Jobsuche“, ein professionelles Profilfoto einzubinden, befolge ich nicht
Nachdem ich als Fotograf gearbeitet habe, habe ich gelernt, dass ich hinter der Kamera, beim Drücken des Auslösers, viel besser aufgehoben bin; außerdem finde ich, dass Fotos in Bewerbungen in den USA nichts zu suchen haben
Wegen der langen Geschichte von Diskriminierung und der noch immer vorhandenen Vorurteile ist es, wenn möglich, sogar besser, auch den Namen zu entfernen, da er Hinweise auf Geschlecht, Ethnie, Kaste oder sozioökonomischen Hintergrund geben kann
Fotos ließen sich im Bewerbungsprozess leicht entfernen und waren in den USA tatsächlich verschwunden, aber „Social-Media“-artige Seiten wie LinkedIn haben Profilfotos wieder in Lebensläufe zurückgebracht
So seltsam es klingen mag: In vielen europäischen Ländern ist ein Profilfoto im Lebenslauf sehr prominent platziert. Als ich erstmals mit Einstellungen für EU-Büros begann, war ich schockiert, aber vor Ort läuft es eben so
Umso überraschter war ich, weil ich oft gehört hatte, Europa sei den USA bei Diskriminierungsfragen voraus; in den tatsächlichen Lebensläufen standen aber nicht nur Profilfotos, sondern sogar der Familienstand. Als ich lokale Recruiter bat, solche Informationen zu entfernen, wurde ich behandelt, als wäre ich der Seltsame
Manche schreiben sogar „ledig“ oder „verheiratet“ in ihren Lebenslauf, aber ich habe gehört, dass das heutzutage weniger wird
Ein gepflegtes, professionelles Erscheinungsbild macht für Arbeitgeber tatsächlich einen Unterschied, und Unternehmen können jemanden rechtmäßig entlassen oder nicht einstellen, weil solche Standards nicht eingehalten wurden
Ich bezweifle nicht, dass es selbst für einen so erfahrenen Entwickler wie den Autor Aufwand bedeutet, aber 3 Angebote bei 30 Bewerbungen sind ein traumhaftes Ergebnis
Die meisten Berufseinsteiger dürften eher über 100 Bewerbungen schreiben, daraus ein paar Interviews bekommen und mit Glück ein einziges Angebot erhalten
Verglichen mit dem Durchschnitt für US-Entwickler waren seine Erwartungen ziemlich bescheiden
Ich habe mich bei 6 Stellen beworben, hatte bei 4 davon Interviews und bekam 2 Angebote; eigentlich war ich Junior, habe mich aber auf Mid-Level-Positionen beworben
Ich würde gern glauben, dass ich wegen der wenigen Interviews meine Begeisterung und Konzentration genau in diese Gespräche stecken konnte, aber es könnte auch Survivorship Bias sein
Später bekam ich bei 3 weiteren Interviews 2 gute Angebote, mit Vergütung oberhalb des 50. Perzentils für Software-Engineering-Rollen in den USA. Ich glaube nicht, dass ich sie mit besonderer Genialität überwältigt habe
Für eine Bewerbungsstrategie als reines Zahlenspiel habe ich keine Energie, ich hasse Interviews an sich, und bei Live-Coding setzt mein Kopf aus. Deshalb bewerbe ich mich nur dort, wo ich wirklich arbeiten möchte und wo das Unternehmen vermutlich auch einen normalen Entwickler willkommen heißt, der gut zusammenarbeiten kann
Ich kann mich auch für gewöhnliche Arbeit aufrichtig interessieren und habe starke Meinungen, die ich aber leicht ändern kann. Wahrscheinlich sind diese beiden Dinge mein Geheimnis
Die übrigen 5 habe ich entweder selbst abgelehnt oder hatte keine Zeit, den Prozess zu Ende zu führen. Der heutige Markt ist für Jobsuchende deutlich schlechter als damals
Ich habe nie eine richtige Bewerbung oder ein richtiges Interview durchlaufen, und irgendwann wird mir das vermutlich auf die Füße fallen
Die Aufgabe, innerhalb von 2 Stunden ein eingeschränktes Schachprogramm zu schreiben, das nur zwei Arten von Figuren unterstützt, ist nicht leicht
Ich habe selbst einmal ein Schachprogramm geschrieben, aber ich bezweifle, dass ich in 2 Stunden Projektstruktur, Datenmodell, legale Züge und Tests aufsetzen könnte; selbst wenn, wäre der Code vermutlich voller Bugs
Trotzdem dauerte es etwa 2,5 Stunden
Es klingt nach einer ziemlich mechanischen und geradlinigen Implementierung
Dass bei einer normalen Einstellung erst ein Gespräch mit einem Recruiter, dann ein Interview mit dem Hiring Manager, ein oder zwei technische Interviews und je nach Fall noch ein Gespräch mit einem Product Manager oder CTO/Founder dazukommen, sodass man insgesamt vier- oder fünfmal antreten muss, ist inzwischen nichts Neues mehr – aber trotzdem ziemlich verrückt.
Trotzdem mussten sie sich zwangsweise noch durch mehrere Wochen zusätzlicher Interviews quälen, und das ist nicht nur verrückt, sondern Verschwendung von Zeit und Ressourcen.
Erstens bekommt man, wenn man es bis zum Phone Screen schafft, ziemlich sicher ein Angebot, sodass die tatsächlichen Zeitkosten niedriger sind, als man denkt. Ohne Phone Screen ist es nicht anders als der aktuelle Zustand; mit Screen kann man prüfen, ob die Latenz des Interview-Pakets zu lang ist, und früh aussteigen, wenn sie es ist. Acht Stunden an einem Tag sind okay, aber acht Stunden über zwei Monate verteilt machen die Jobsuche kompliziert.
Zweitens stören die Zeitkosten, wenn man konkurrierende Angebote hat. Ein ganzer Interviewtag ist okay, wenn 40 % mehr Gehalt winken, aber fünf volle Tage für die Jobsuche aufzuwenden, ist belastend, wenn Urlaubstage begrenzt sind. Allerdings scheint etwa die Hälfte der Arbeitgeber keinen tatsächlichen Nachweis für Konkurrenzangebote zu verlangen; wenn man sagt, man wolle Vergütung XYZ und würde sofort unterschreiben, wenn sie mithalten, versuchen sie überraschend oft, das hinzubekommen.
Drittens bestehen durchschnittliche technische Interviews aus 10–20 Minuten Lösen technischer Aufgaben, während 30–50 Minuten dafür draufgehen, herauszufinden, was der Kandidat über Unternehmen und Team weiß. Ein neues Unternehmen ist riskant und versucht, schlechte Hinweise nach außen zu verbergen; zusätzlich zur Hintergrundrecherche über das Management hilft es daher, die aktuelle Sicht mehrerer Teammitglieder zu hören, um problematische Situationen früh zu vermeiden.
Wenn man nur 1 % der interviewten Kandidaten ein Angebot macht und davon in der Probezeit 30 % scheitern, ist Recruiting für alle ein enormer Zeitfresser. Gute Leute sind schwer zu finden, und gute Jobs sind ebenfalls schwer zu bekommen.
Früher bedeutete ein Onsite-Interview eine Stunde Hin- und Rückweg, insgesamt sechs Stunden Interviews plus Mittagessen, und Unternehmen mit hoher Nachfrage ließen einen mehrere solcher Runden durchlaufen. Manche kamen sogar per Flugzeug aus einer anderen Stadt.
Ein Freund von mir flog zu einem Google-Interview, saß wegen eines Schneesturms an der Ostküste drei Wochen in SF fest und wurde daraufhin bei Accenture entlassen.
Im Vergleich dazu finde ich 4–6 Stunden Interviews, die man zu gewünschten Zeiten ansetzt, selbst wenn sie auf mehrere Tage verteilt sind, deutlich besser.
Der Markt für Software Engineers ist auch nicht gut, aber unterstützende Rollen wie Engineering Manager, Product Manager, Designer oder Developer Relations wirken noch viel schlechter dran.
In meinem Umfeld haben gerade solche Leute besonders große Probleme, Arbeit zu finden, während Entwickler zwar langsamer und mit schlechteren Benefits, aber doch Jobs finden. Ich frage mich, ob das nur in meinem Umfeld so ist.
Allgemein verbreitet sich gerade der Management-Trend, dass es zu viele Manager gibt, und es fühlt sich an, als bewege man sich in die Richtung, in der Instagram die gesamte Rolle des Technical Program Manager abgeschafft hat.
Bei meinem ersten Job entfielen etwa 50 % der Entlassungen auf den Bereich „Management“. In unserem Team gibt es keinen Product Manager mehr, und uns wurde gesagt, wir sollten uns nicht um Design kümmern, sofern es nicht um etwas Großes geht. Beide Rollen wurden faktisch vom Team Lead übernommen; er ist jetzt für Mockups und Produktentscheidungen zuständig.
Bei meinem zweiten Job betrafen 70 % der Entlassungen den Managementbereich. Ein Manager wechselte von einem Team mit 5 Personen zu vier Teams mit insgesamt 25 Personen, und wir verloren außerdem den Designer und den Product Owner. Solche Entscheidungen treffen jetzt der verbleibende Product Owner oder die technischen Team Leads.
Unser Unternehmen stellt ebenfalls ein, und mein Posteingang ist voll mit Recruiting-Firmen. Das gilt für Product-Engineering- und Leadership-Rollen.
Kalt ist der Markt für Juniors, und es ist unklar, wann und wie sich das ändern wird.
Zur Einordnung: Das ist aus Sicht des Silicon Valley, und ich bin während der Pandemie nicht weggezogen. Ich hatte immer den Verdacht, dass es am Ende so kommen könnte.
Heute als Softwareentwickler zu leben, fühlt sich an, als würde man ständig Unsinn abarbeiten.
Ich frage mich, ob es allen gut geht, und ehrlich gesagt bin ich einfach erschöpft. Jobsuche ist eine seelenzerstörende Tätigkeit; Bewerbungen zu verschicken frisst nur Zeit, ist unnötig umständlich, fühlt sich wie eine Sisyphus-Schleife an und wie Verschwendung des eigenen Lebens. Man lernt nichts Nützliches, baut nichts Praktisches, verbessert keinen Teil seines Lebens, und es scheint keine bewährte Methode zur Automatisierung zu geben.
Ich verstehe nicht, warum Entwickler so erschöpft sein müssen. Man muss Java, JavaScript, Python, Go, SQL-Dialekte, Scripting mit bash und awk, ansible, chef, terraform, Dutzende AWS-Services, mehrere Datenbanken und Implementierungen, gängige Schwachstellentypen, DNS, TCP-IP, HTTP, WebSocket und weitere Protokolle kennen – und offenbar auch in der Schwerelosigkeit einen Binärbaum invertieren können.
Der GitHub-Aktivitätsgraph muss aussehen wie ein Luftbild des Amazonas-Regenwalds, man muss einen Blog pflegen, auf Konferenzen sprechen und gelegentlich sogar texte wie wissenschaftliche Paper schreiben. Und selbst das reicht nicht: Man muss in diversen Interviews glänzen – Algorithmen und Datenstrukturen, sprachspezifisch, framework-spezifisch, Pair Programming, System Design, Produkt, Unternehmens- und Branchenwissen, Take-Home-Aufgaben, technische Präsentationen und Behavioral Interviews.
Selbst wenn man bei einem großen Unternehmen landet und das Gefühl hat, es „geschafft“ zu haben, verstehe ich nicht, warum man sich nicht sicher fühlen kann. Ich kann nur seufzen darüber, dass man statt Dinge zu bauen und zu reparieren ständig im Jobsuche-Modus leben muss.
Ich wüsste gern, ob diese Art von Vorgehen speziell bei Softwareentwicklern so ungewöhnlich ist.
Dass alle Recruiter einen Lebenslauf verlangen, obwohl die Informationen fast identisch mit dem sind, was auf LinkedIn steht, wirkt wie eine Art Einverständnisnachweis, den sie dem Arbeitgeber weiterreichen können.
Es fühlt sich an wie die Geschichte, in der man in einer fremden Kultur zu Besuch ist, jemand einem Tee in einer unbekannten Tasse anbietet, man einen Schluck nimmt und später jemand anderes erklärt, man habe gerade geheiratet.
Ein erheblicher Teil der Recruiter sind Dritte, und oft besteht ihre Arbeit nur darin, Lebensläufe von Bewerbern entgegenzunehmen und weiterzuleiten – eine weitere dumme Schicht, die kaum besser ist als eine kalte Bewerbung.
Häufig sieht man auch Stellenanzeigen, die von anderen Drittfirmen auf derselben Website erneut veröffentlicht wurden, ohne dass auch nur ein Zeichen der Jobbeschreibung geändert wurde.
Manche Recruiter verlangen sogar ein MS-Word-Dokument, damit sie Kontaktinformationen leichter entfernen und ihr eigenes Logo einfügen können.
Interessant, dass ein Unternehmen einen IQ-Test verwendet hat.
So etwas habe ich zwar noch nicht erlebt, aber letzte Woche sah ich eine Bewerbung mit einem „Persönlichkeits“-Test, in dem gefragt wurde, ob man für einen linksgerichteten oder einen rechtsgerichteten Kandidaten stimmen würde. Es war ein Unternehmen aus dem Gesundheitswesen.
Auch dass GitHub um Zustimmung bat, meinen Lebenslauf per KI prüfen zu dürfen, hat mich kurz innehalten lassen. Ich habe es nicht erlaubt und hatte definitiv das Gefühl, dadurch gegenüber anderen Bewerbern im Nachteil zu sein.
Und Persönlichkeitstests insgesamt sollten meiner Meinung nach ebenfalls verboten werden.
Also dieser Test, der nach Persönlichkeitstypen wie INFJ oder INFP fragt. So etwas für einen Coding-Job zu verlangen, war wirklich seltsam; ich dachte, man müsse nur LeetCode üben.