Das erste Interview war sehr positiv, aber das technische Feedback war enttäuschend und oberflächlich
Zunächst mÜchte ich betonen, dass mein erstes Gespräch mit dem Team professionell, konstruktiv und respektvoll war.
Auch wenn ich kein deutscher Muttersprachler bin und mein Deutsch nicht perfekt ist, war das Gespräch per Video sehr angenehm.
Die Kommunikation verlief offen und freundlich und ich fĂźhlte mich willkommen. FĂźr diese positive Erfahrung bin ich dankbar.
Gerade deshalb war das anschlieĂende Feedback zur technischen Aufgabe umso enttäuschender.
Das technische Feedback war sachlich falsch und oberflächlich
Obwohl die Position als Senior Developer ausgeschrieben war, lässt das Feedback zur Testaufgabe vermuten, dass der Reviewer entweder den Code gar nicht gelesen hat oder technisch nicht in der Lage war, diesen fundiert zu beurteilen.
Hier die Details:
1. âGrid Cells mit einzelnen GameObjects und individuellen Materialien â ineffizientâ
Diese Aussage ist faktisch falsch.
Das Feedback suggeriert, dass ich fĂźr verschiedenfarbige Zellen (Pfad und Umgebung) unterschiedliche Materialien verwendet habe.
Das stimmt nicht. Ich habe keine separaten Materialien eingesetzt.
Stattdessen habe ich einen eigenen HLSL Shader (InstancedUnlitBaseColor) implementiert, der Farbänderungen Ăźber GPU Instancing abbildet â mit per-Instance Properties, sodass das komplette Grid (Pfad + Umgebung) mit nur einem Draw Call gerendert wird.
Das lässt sich eindeutig im Unity Profiler erkennen: Das Grid benÜtigt genau 1 Batch, die gesamte Szene lediglich 8 Batches.
Ein solcher Fehler im Feedback zeigt eines von zwei Dingen:
⢠Entweder wurde der Shader gar nicht geÜffnet und der Code nicht gelesen,
⢠Oder der Reviewer hat nur flßchtig in die Szene geschaut und voreilige Schlßsse gezogen.
Beides ist nicht akzeptabel fĂźr ein Review auf Senior-Niveau.
2. âKein GPU Instancing, keine Static Flags gesetztâ
Auch das ist nachweislich falsch.
⢠GPU Instancing ist aktiviert bei allen relevanten Materialien, Tßrme, Gegner, Haustiere.
⢠Static Flags sind fßr dynamische Objekte wie Tßrme und Gegner nicht relevant.
3. âPlatzierung im Editor nicht per Maus steuerbarâ
Hätte der Reviewer im Unity Editor einfach unter
âSimulate Touch Input From Mouse or Penâ aktiviert,
hätte er gesehen, dass sich TĂźrme ganz einfach per Maus-Klick oder Drag-&-Drop platzieren lassen â ohne jegliche Codeänderung.
Auch hier zeigt sich: Entweder wurde das nicht getestet, oder es fehlt an Kenntnis ßber grundlegende Unity-Funktionalitäten.
4. âRiesiger EnemyPool, ohne klaren Bezug zum tatsächlichen Bedarfâ
Der EnemyPool wird als zu groà kritisiert, ohne Verständnis fßr den technischen Hintergrund:
⢠Die Aufgabe erwähnte Gegnerwellen, aber es gab keine konkreten Angaben zur Anzahl der Gegner pro Welle, Spawnrate oder Schwierigkeitsverlauf.
⢠Ich habe den Pool bewusst groĂzĂźgig dimensioniert mit Blick auf ein Worst-Case-Szenario (32 Gegner) und um GC-Overhead durch Instantiate/Destroy zu vermeiden.
⢠Die PoolgrĂśĂe (PoolSize) ist vollständig konfigurierbar Ăźber Inspector, JSON oder ScriptableObject.
Fazit
Das Feedback war technisch oberflächlich, teilweise falsch und hat sich offensichtlich nicht ernsthaft mit dem Code befasst.
Ich habe weit mehr geliefert als gefordert: mit modularer MVC-Struktur, Data Binding, Editor-Erweiterungen, reaktiver UI, GPU Instancing und Mobile-Optimierung und nichts davon wurde ßberhaupt erwähnt.
Es wirkt, als hätte der Reviewer die Szene kurz angeschaut, ein paar optische Annahmen getroffen und keine Zeile Code gelesen.
So bewertet man keine Senior-Kandidaten. So baut man kein Vertrauen mit erfahrenen Entwicklern auf.
Ich bin weiterhin dankbar fßr das respektvolle Erstgespräch.
Aber wer ein Auswahlverfahren professionell beginnt, sollte es auch mit technisch fundierten, fairen und sorgfältigen Code-Reviews beenden.