Ciclul de interviu pentru ingineri Staff: Greșelile buclelor pentru seniori
De ce majoritatea buclelor pentru staff produc oferte pentru seniori
Cea mai comună greșeală în recrutarea ingineri staff este rularea buclei pentru seniori cu o etapă de design sistem mai lungă și numind-o o buclă pentru staff. Fiecare intervievator evaluează candidatul comparând-l cu standarde pentru seniori. Discuția finală analizează dacă candidatul este un „senior puternic". Managerul de angajare dorește staff pentru că rolul este deschis la nivel de staff. Oferta fie se redescinde fie se face la nivel de staff pentru cineva care va avea dificultăți în primele șase luni.
Motivul pentru care acest lucru se repetă este că rubrica pentru „senior" este bine înțeleasă — coding solid, proprietar al unui serviciu, mentor pentru juniori, proiectează funcționalități end-to-end — iar rubrica pentru „staff" nu. Ingineria staff este disciplina alegerii problemei corecte, alinierii unui grup de echipe în spatele unei soluții și a fi corect în privința compromisurilor tehnice la o scară unde a greși este scump. Niciunul din aceste lucruri nu este vizibil într-o rundă de coding de 45 de minute.
Acest articol este un design de ciclul de interviu pentru staff și deasupra. Presupune că deja rulezi un ciclul competent pentru seniori și vrei să testezi dimensiunile suplimentare care diferențiază staff-ul de un senior rapid. Nu presupune nici o dimensiune particulară a companiei.
Patru dimensiuni care chiar diferențiază staff-ul
O rubrică utilă pentru staff evaluează după acestea, cu ancore explicite la senior, staff și senior staff:
- Sfera de judecată. Poate candidatul identifica problema corectă de rezolvat, într-un domeniu pe care nu l-a văzut înainte, cu informații incomplete și constrângeri concurente? Inginerii seniori rezolvă problema pe care ți-o dai. Inginerii staff îți spun care problemă să rezolvi.
- Calitatea deciziilor arhitecturale. Pot raționa despre un sistem la o granularitate unde compromisurile sunt reale — cost, latență, rază de explozie, cuplare organizațională — și pot apăra o alegere în scris? Aceasta nu este același lucru ca a memora un design din manual.
- Influența cross-team. Pot descrie un moment când au schimbat direcția lucrării în afara echipei lor directe și pot articula mecanismele — documentul, întâlnirea, prototipul — care au făcut-o să funcționeze? „Am dat feedback într-o recenzie" nu este la nivel de staff. „Am scris documentul de design care a consolidat trei propuneri concurente în una" este.
- Mentoring tehnic la distanță. Pot ridica standardul ingineri pe care nu îi conduc, pe subiecte pe care nu sunt experții echipei? Aceasta este standardul care diferențiază staff-ul de un inginer senior cu ani în plus.
Fiecare etapă a ciclului trebuie proiectată pentru a sonda una sau două din acestea, nu pentru a retesta standardul pentru seniori.
Ciclul, etapă cu etapă
Total: ~6 ore de timp pentru candidat, ~10 ore de timp pentru intervievatori. Șase etape:
Etapa 1: Screening-ul managerului de angajare (60 min)
Nu este o conversație de potrivire. O conversație de lucru despre o problemă reală din stiva ta, formulată suficient de vag încât candidatul trebuie să pună întrebări înainte de a propune ceva. Managerul de angajare ascultă pentru: se restrânge la problemă înainte de a o rezolva? Pune întrebări despre constrângeri pe care un senior le-ar sări — structură organizațională, cost on-call, risc de migrare?
Această etapă înlocuiește runda condusă de recrutor „spune-mi despre tine". Salvează logistica pentru o apel de programare separat de 20 de minute.
Etapa 2: Un document de design scris (4–8 ore, asincron)
Etapa cu cel mai înalt semnal într-un ciclul pentru staff, și cea pe care majoritatea companiilor o omit pentru că se îngrijorează că este prea multă muncă de cerut unui candidat. Nu este. Candidații seniori încheie rutineu take-homes de 2 ore; un candidat staff completează un exercițiu de design focalizat pentru că artefactul este, de asemenea, un mod pentru ei de a evalua rolul.
Promptul: o problemă reală-ish, intenționat insuficient specificată din domeniul tău. „Vrem să introducem un motor de flux de lucru pentru orkestrarea pe care echipa noastră de plăți o face în Lambda-uri ad-hoc. Scrie un document de 3–8 pagini care argumentează pentru o abordare, numește alternativele pe care le-ai luat în considerare și identifică cele trei riscuri principale."
Ce ți spune documentul pe care un tablă albă de 60 de minute nu poate:
- Cum structurează candidatul un argument când are timp să gândească.
- Dacă citează compromisuri care se mapează la constrângerile tale reale sau dacă vorbește vag despre principii generale.
- Dacă identifică moduri de eșec pe care echipa ta nu le-a discutat încă.
- Cum scrie pentru un public de alți ingineri staff, ceea ce este cea mai mare parte a jobului.
Evaluează documentul pe rubrica sa proprie, înainte de runda următoare. Un document slab nu este salvat de un tablă puternică.
Etapa 3: Aprofundarea documentului de design (75 min)
Un panou de doi — managerul de angajare și un inginer staff sau principal — lucrează prin document cu candidatul. Candidatul nu prezintă; panoul citește documentul dinainte și timpul este petrecut pentru follow-up. Formatul:
- Primele 15 minute: alternativele. „Ai exclus o abordare step-functions. De ce? Ce s-ar schimba dacă bugetul tău de latență ar fi 50 ms în loc de 5 s?"
- Următoarele 30 de minute: modurile de eșec. Iei sistemul prin cum se destramă în trei condiții specifice pe care le furnizezi. Observă cum candidatul și-a actualizat designul în timp real.
- Ultimele 30 de minute: migrarea. „Avem 47 Lambda-uri existente care trebuie să se mute la aceasta. Parcurge-mi primele 90 de zile."
Această etapă testează dimensiunile 1 și 2 împreună: a identificat candidatul problema corectă și designul lor este chiar apărabil când constrângerile se schimbă?
Etapa 4: Runda de coding (60 min)
Tot necesară, chiar și pentru staff. Două motive: un inginer staff care nu poate scrie cod deloc este rar și rău, și runda ți spune dacă pot încă să pereche cu ingineri seniori pe munca pe care chiar trebuie s-o facă.
Omite LeetCode. Folosește o rundă de debugging sau refactoring pe cod real-ish — 200–400 de linii, o greșeală non-trivială, o cerere explicită de a lăsa baza de cod în mai bună formă decât au găsit-o. Evaluează pe rubrica de coding pe care o folosești pentru candidații seniori, dar ponderează gândirea diagnostică și calitatea code-review mai mult decât debitul.
Un candidat staff care identifică fluent greșeala, numește două alte probleme pe care nu le va fixa și explică cea mai mică refactorizare sigură face exact ceea ce job-ul cere. Unul care depășește în viteză un candidat senior nu face.
Etapa 5: Interviul de influență cross-team (60 min)
Aceasta este runda pe care majoritatea buclelor pentru staff nu o rulează, și este cea care prindeți cel mai sigur fals pozitiv — inginerul senior care rezolvă problemele strălucit dar nu poate muta un grup de echipe.
O interviu comportamental structurat, patru indicii adânci, fiecare forând în alt mecanism:
- „Spune-mi despre o poziție tehnică pe care o ai și care era nepopulară cu echipa. Ce ți-a schimbat gândurile, sau ce le-a schimbat pe ale lor?"
- „Descrie un moment când ai oprit un proiect care nu ar fi trebuit să se expedieze. Cum ai făcut-o fără a pierde încrederea oamenilor care lucrau la asta?"
- „Parcurge-mi ultimul document tehnic pe care l-ai scris și pe care o altă echipă l-a adoptat ca bază pentru munca lor."
- „Spune-mi despre un moment când ai mentorat un inginer în afara lanțului tău de rapoarte pe ceva la care era mai bun decât tu cu un an mai târziu. Ce ai făcut?"
Răspunsurile candidatului trebuie să numească oameni, documente, întâlniri și rezultate. Răspunsurile vagi — „ne-am aliniat, am construit consens, am expediarizat" — eșuează în această rundă. Job-ul este bogat în mecanisme; interviul trebuie să fie la fel.
Etapa 6: Ridicarea standardului (45 min)
Un inginer staff sau principal din afara echipei, evaluând candidatul împotriva standardului de staff al companiei, nu a nevoilor echipei. Întrebarea lor către sine la final: „Aș vrea să lucrez cu această persoană pe o problemă cu care îmi pasă?"
Ține o dezbatere în aceeași zi cu cartonașe de scor blocate — formatul contează mai mult la staff pentru că dezacordurile sunt despre amploare și judecată, nu despre faptul dacă cineva poate codifica, și acelea sunt exact dezacordurile care se dizolvă de un intervievator carismatic din cameră.
Ce să omiti
Câteva lucruri pe care ciclul pentru staff nu ar trebui să le includă, și motivele pentru care fiecare este o capcană:
- Două runde de coding. Una este suficientă. O a doua ți spune nimic nou și semnalează candidatului că nu știi pentru ce angajezi.
- O rundă de design sistem care este doar „proiectează Twitter". Prompturile generice testează memorare. Folosește o problemă din domeniul tău real, așa că candidatul trebuie să chiar gândească.
- O interviu cu „principii de leadership" care este runda comportamentală cu alt nume. Dacă deja rulezi o rundă comportamentală structurată, pliind-o într-o rundă cross-team bine proiectată este mai puternică decât rulând două subțiri.
- O rundă de prezentare, decât dacă prezentarea face parte din job. A-i cere candidatului să prezinte 30 de minute de muncă anterioară este bun dacă rolul necesită prezentări publice la inginerie. În caz contrar testează abilitatea greșită.
Calibrarea intervievatorilor la standardul pentru staff
Partea cea mai grea a rulării unui ciclul pentru staff nu este designul rundei — este de a se asigura că intervievatorii știu ce evaluează. Trei pași concreți:
- Scrie ghiduri de scor ancorate pentru fiecare dimensiune. Un 3-din-4 pe „calitatea deciziei arhitecturale" ar trebui să însemne un lucru specific — de exemplu, „identifică compromisul de echilibrare a încărcării fără promptare și explică costul de a-l greși". Un 4 ar trebui să însemne „ridică o constrângere pe care promptul nu a conținut-o și reformulează problema". Aceasta este aceeași disciplină de cartonașe care funcționează la nivel de senior, cu ancore diferite.
- Rulează două debriefuri de practică înainte de primul real. Ia două oferte recente de staff (una acceptată, una declinată) și ai intervievatorii ciclului să le evalueze orb, apoi faceți dezbatere. Punctul este de a expune unde echipa nu este de acord despre ce înseamnă staff, înainte ca un candidat real să fie pe linie. Aceasta este exact calibrarea pe care majoritatea echipelor o omit și o regretă că au omis-o.
- Urmărește rata de descindere. Dacă ciclul tău produce o ofertă de staff 30% din timp și o ofertă de senior 50% din timp pentru candidații care aplică pentru staff, screening-ul tău de manager de angajare lasă prea mulți candidați seniori să treacă. Dacă produce un no-hire 60% din timp, sursa ta de intrare este greșită. Oricum, metrica ți spune unde să o repair.
Ce să faci mai departe
Dacă setezi sau repari un ciclul de interviu pentru ingineri staff:
- Scrie rubrica cu patru dimensiuni această săptămână. Chiar o v1 cu ancore roughe bate nici o rubrică deloc.
- Adaugă documentul de design scris dacă nu ai deja unul. Este runda cu cel mai înalt semnal și cea mai ieftină de introdus.
- Înlocuiește una din rundele tale de coding cu o interviu de influență cross-team. Schimbul este aproape întotdeauna demn.
- Rulează două debriefuri de calibrare pe candidații anteriori înainte de ciclul live următor.
- Auditează ultimii trei angajați staff împotriva rubricii retrospectiv. Dacă doi din ei punctează slab pe o dimensiune pe care nu ai testat-o, aceea este runda pe care o ratezi.
Angajarea de ingineri staff nu este angajarea de seniori cu un design sistem mai lung. Este o rubrică diferită, un ciclul diferit și un debrief diferit. Echipele care asta înțeleg angajează ingineri staff care chiar fac job-ul. Cele care nu o fac angajează ingineri seniori cu alt titlu și se întreabă de ce datoriile lor arhitecturale continuă să crească.