⚙️ Manual DevOps

Partea a doua · actualizat 25 septembrie 2026

Interviul. Ce te întreabă, ce răspunzi, și ce faci când te blochezi.

Pagina întâi te învață meseria. Pagina asta te pregătește pentru cele patruzeci de minute în care trebuie să o arăți. Conține procesul de recrutare pas cu pas, tehnicile concrete împotriva blocajului, poveștile din CV-ul tău deja formulate în propoziții întregi, întrebările tehnice cu răspuns scris, și lista scurtă a lucrurilor pe care nu le spui.

Scopul nu e să știi tot. Scopul e să duci fiecare propoziție până la capăt, calm, și să spui „nu știu” atunci când chiar nu știi, fără să ți se strice restul interviului.

procesanti-blocajpovești STAR întrebări tehnicecomportamentalepiața, verificat
← înapoi la partea tehnică
1 · Ce știi contează, dar mai puțin decât crezi 2 · Cum spui ce știi propoziții întregi, ordine, calm 3 · Ce faci când nu știi aici se decid majoritatea interviurilor de senior

1 Cum arată procesul de recrutare

Aproape toate firmele care angajează DevOps în România folosesc aceeași succesiune. Dacă știi la ce etapă ești, știi și ce se măsoară la ea — și asta singură reduce jumătate din tensiune, pentru că nu mai încerci să demonstrezi tot, tot timpul.

EtapaCineCâtCe se măsoară de fapt
Convorbire de selecțieRecrutor20–30 minEști real, ești disponibil, te încadrezi în buget, vorbești engleză. Aproape nimic tehnic.
Interviu tehnic 1Inginer din echipă45–60 minFundamente: Linux, containere, CI/CD, Kubernetes. Întrebări deschise, nu chestionar.
Exercițiu practicTemă acasă sau live1–3 oreScrii un pipeline, un Dockerfile, un manifest, sau depanezi ceva stricat intenționat.
Interviu de sistemInginer principal / arhitect60 min„Proiectează livrarea pentru un serviciu cu X utilizatori.” Se măsoară raționamentul, nu răspunsul.
Interviu comportamentalManager45 minCum lucrezi cu oamenii, cum reacționezi la presiune, cum ai gestionat un conflict.
FinalDirector / client30 minMotivația, potrivirea, uneori o discuție de aliniere cu clientul final.
💡 Ce schimbă asta pentru tine

La prima convorbire nu ești evaluat tehnic. Mulți oameni se epuizează emoțional acolo, încercând să demonstreze competență unui recrutor care verifică, de fapt, dacă ești disponibil și dacă te înțelegi în engleză. Tratează prima etapă ca pe o conversație administrativă. Energia o păstrezi pentru etapa a doua.

1.1 Firma de externalizare față de produs

La firmele de externalizare — Luxoft, GlobalLogic, Nagarro, Endava — există adesea încă o rundă cu clientul final, iar prima rundă internă e mai blândă. La firmele de produs, interviul tehnic e de obicei mai adânc și mai devreme. La ambele, întrebarea care decide cel mai des e „povestește-mi despre un incident”, iar acolo tu ai mai mult material decât un candidat cu jumătate din vechimea ta.

2 Anti-blocaj: ce faci când te împotmolești

Blocajul nu vine din lipsa cunoștințelor. Vine dintr-un lucru foarte concret: începi să vorbești înainte să știi unde ajunge propoziția, îți dai seama la jumătate că nu ai un final, și atunci mintea începe să caute ieșirea în loc să continue. De acolo apar frazele lăsate în aer, umpluturile și senzația că te faci de râs.

Soluția nu e să știi mai mult. E să nu pornești propoziția până nu ai capătul ei. Mai jos sunt tehnicile, în ordinea în care le folosești.

2.1 Regula celor două secunde

🗣️ Ce spui înainte de orice răspuns

„Bună întrebare. Stai să mă gândesc o secundă.”

Sună banal și funcționează din trei motive. Îți dă timp să găsești finalul propoziției. Semnalează că iei întrebarea în serios, ceea ce se citește ca maturitate profesională, nu ca ezitare. Și îți sparge reflexul de a începe să vorbești din panică. Două secunde de tăcere în interviu par lungi pentru tine și trec neobservate pentru celălalt. Nimeni nu a fost vreodată respins pentru o pauză de două secunde.

2.2 Anunță structura înainte să intri în ea

În loc să te arunci în conținut, spui întâi din câte părți e răspunsul. „Sunt trei lucruri aici” sau „îți spun întâi ce e, apoi unde am folosit-o”. Efectul e dublu: ascultătorul te urmărește mai ușor, iar tu ai acum un schelet. Când ai schelet, nu mai poți rămâne în aer — știi că urmează partea a doua chiar dacă prima a ieșit șchiop.

2.3 Când te pierzi la jumătate

🗣️ Trei fraze care repară orice propoziție ratată

„Stai, hai să reformulez, ca să fie mai clar.”

„Ideea principală e că…” (te întorci direct la concluzie și lași drumul)

„Mă întorc puțin — am pornit prea din detaliu.”

Toate trei sunt lucruri pe care le fac inginerii seniori în ședințe reale, în fiecare zi. Nu sunt semne de slăbiciune, sunt semne că îți asculți propriul răspuns. Ce se citește prost e altceva: să continui o propoziție despre care e evident că s-a rătăcit, sau să te oprești brusc și să taci.

2.4 Când nu știi răspunsul

Asta e situația de care te temi cel mai tare și e, de fapt, cea mai ușoară — pentru că are un răspuns scris pe care îl poți învăța pe de rost. Are trei bucăți, în ordinea asta:

🗣️ Formula completă

„Nu am lucrat direct cu asta. Ce știu e că [partea pe care o stăpânești]. Cum aș afla e că m-aș uita în [documentație / logul cutare / aș întreba pe cineva din echipă]. Ce am făcut asemănător e [lucrul din experiența ta care seamănă].”

Observă că răspunsul nu se termină cu „nu știu”. Se termină cu ceva ce ai făcut. Un intervievator bun notează exact asta: candidatul recunoaște limita, are o metodă de a o depăși, și are un punct de sprijin real. Un candidat care inventează, în schimb, e prins la a doua întrebare — și de acolo se pune la îndoială tot ce a spus înainte.

🛑 Capcana care te-ar costa cel mai mult

Ai deja un exemplu concret: optimizarea de la DISH, cu 40–50% eficiență mai bună a resurselor, al cărei mecanism exact nu ți-l mai amintești. Nu-l reconstitui la interviu. Orice explicație plauzibilă pe care o inventezi duce direct la întrebarea următoare — „cum ai măsurat?” — unde nu mai ai unde să te duci. Răspunsul pregătit e la capitolul 5, la întrebările de Kubernetes, și e scurt, onest și complet acceptabil.

2.5 Tehnica fizică, pentru primele minute

  • Respirația 4–6. Inspiri patru secunde, expiri șase. De trei ori, chiar înainte să intri. Expirația mai lungă decât inspirația coboară pulsul — nu e sugestie, e reflex fiziologic.
  • Vorbește mai rar decât ți se pare firesc. Sub tensiune, toată lumea accelerează. Dacă simți că vorbești prea rar, probabil ai un ritm normal.
  • Bea apă. Ține un pahar lângă tine. O înghițitură e o pauză legitimă de trei secunde, oricând ai nevoie de ea.
  • Notează întrebarea pe hârtie în timp ce ți se pune, dacă e online. Îți ancorează atenția și îți lasă la vedere, în scris, la ce trebuie să răspunzi — de aici vine jumătate din rătăcirile propozițiilor.
  • Stai în picioare, dacă e videoconferință și ai unde. Vocea sună mai sigură și respiri mai bine.
💡 Recadrarea care schimbă cel mai mult

Nu ești un candidat care cere. Ești un inginer cu peste douăzeci de ani în producție care se uită dacă postul ăsta merită timpul lui. Amândoi verificați ceva. Diferența nu e retorică: schimbă poziția corpului, ritmul vocii și tipul de întrebări pe care le pui. Iar dacă iese prost, ai pierdut patruzeci de minute — atât. Restul e imaginație.

3 Structura oricărui răspuns

3.1 La întrebări tehnice: trei straturi

1 · Definiția, scurt Una sau două propoziții. Nu recita, explică. „Readiness înseamnă pot să primesc trafic.” 2 · De ce contează Ce se strică fără ea. Aici se vede că înțelegi. „Fără ea, traficul intră în poduri nepornite.” 3 · Unde ai văzut-o Un exemplu din munca ta. Asta te separă de teorie. Dacă nu ai, spui unde ai văzut-o greșită. Trei straturi ≈ 45 de secunde. Te oprești și lași loc de întrebarea următoare.
Structura funcționează și când nu ai stratul al treilea: „n-am prins cazul ăsta în producție, dar am văzut ce se întâmplă când lipsește” e tot un răspuns complet.
⚠️ Nu depăși un minut fără să te oprești

Monologul de trei minute e cea mai frecventă greșeală a candidaților cu experiență. Se citește ca nesiguranță, nu ca stăpânire — pare că încerci să acoperi întrebarea până nimerești ce se voia. Răspunzi în patruzeci–șaizeci de secunde, te oprești, și lași omul să sape unde vrea el. Dacă voia mai mult, te întreabă. Tăcerea de după un răspuns scurt e a lui, nu a ta.

3.2 La întrebări despre experiență: STAR

S — Situația

Unde, când, ce sistem, cine era afectat. Două propoziții. Contextul, nu povestea vieții.

T — Sarcina

Ce trebuia obținut și ce era în responsabilitatea ta, concret.

A — Acțiunea

Partea cea mai lungă. Ce ai făcut tu, la persoana întâi singular. „Am făcut”, nu „s-a făcut” și nu „echipa a decis”.

R — Rezultatul

Cum s-a terminat și ce ai învățat. Cu cifre doar dacă le ai verificate.

⚠️ „Noi” îți șterge contribuția

Cea mai costisitoare obișnuință în interviurile de la firmele mari: candidatul povestește la persoana întâi plural, din politețe, iar intervievatorul rămâne fără să știe ce ai făcut tu. Spune „am migrat”, „am observat”, „am decis”. Dacă a fost muncă de echipă, spui asta o dată la final: „am lucrat în trei, partea mea a fost X.” Nu invers.

4 Poveștile tale, gata scrise

Un interviu tehnic de senior se câștigă cu patru–cinci povești pe care le știi atât de bine încât le poți spune fără să te gândești la structură. Mai jos sunt poveștile tale, construite numai pe ce e documentat în CV. Fiecare are, la final, ce ar trebui să adaugi din memoria ta ca să devină vie — iar dacă nu-ți amintești, povestea rămâne validă fără acele detalii. Ce nu faci niciodată: nu completezi golul cu ceva plauzibil.

4.1 Migrarea WebSphere MQ la Volvo Cars — povestea de bază

🗣️ Spusă întreagă

S. „La Volvo Cars, prin IBM, am lucrat pe platforma de mesagerie WebSphere MQ. Era stratul prin care circulau mesajele între aplicații, într-o configurație în mai multe instanțe, tocmai ca să nu existe un punct unic de eșec.”

T. „Trebuia trecută de la versiunea 8 la versiunea 9. Într-un sistem de mesagerie nu ai voie să pierzi mesaje și nu ai voie să oprești fluxul, pentru că în spate sunt procese de business care se blochează.”

A. „Am pregătit migrarea întâi în mediul de test, am verificat compatibilitatea configurației și am stabilit exact ordinea în care se trec instanțele, cu o cale de întoarcere pentru fiecare pas. Migrarea am făcut-o instanță cu instanță, nu simultan, ca serviciul să rămână disponibil pe cealaltă. Am urmărit-o din monitorizare, cu Nagios, ca să văd imediat dacă apărea ceva anormal.”

R. „Platforma a trecut pe versiunea nouă fără să pierdem mesaje. Ce mi-a rămas de acolo e disciplina de a nu porni niciodată o migrare fără o cale de întoarcere pregătită și testată — nu doar descrisă în document.”

⚠️ Ce ar merita adăugat, dacă îți amintești

Cât a durat fereastra de lucru, câte instanțe erau, dacă ai lovit ceva neașteptat și cum l-ai rezolvat. Dacă nu-ți amintești, nu inventa — povestea de mai sus e completă și rezistă la întrebări, pentru că nu conține nimic ce nu poți susține.

4.2 Producția 24/7 la Metro — povestea de incident

🗣️ Spusă întreagă

S. „La Metro am lucrat în control de producție, non-stop, cu tură și gardă. Ne uitam la sisteme care trebuiau să meargă permanent, iar când ceva se oprea, noi eram primii care aflau.”

T. „Sarcina mea era să prind problema devreme, să evaluez cât de grav e, să restabilesc serviciul, și să țin clientul informat cât timp era deschis.”

A. „Ordinea pe care o urmam era mereu aceeași: întâi restabilesc, apoi caut cauza. Preiau incidentul explicit, ca să nu lucreze doi oameni în paralel pe același lucru fără să știe. Verific ce s-a schimbat recent, pentru că în majoritatea cazurilor acolo e cauza. Escaladez pe severitate, nu pe cât de tare sună. Și anunț din proprie inițiativă, la intervale, ca nimeni să nu fie nevoit să întrebe cum merge.”

R. „Anii ăia m-au învățat ceva ce nu se învață din documentație: sub presiune, lucrul care contează cel mai mult nu e viteza, e ordinea. Dacă ai o ordine, nu intri în panică, și dacă nu intri în panică, nu faci a doua greșeală peste prima.”

💡 De ce e asta cea mai valoroasă poveste a ta

Un candidat de treizeci de ani care a citit despre gestionarea incidentelor nu poate spune fraza din final. Tu o poți spune pentru că ai trăit-o. Când ajungi aici, încetinește ritmul — e locul din interviu unde ai cel mai mult avantaj și cel mai puțin de demonstrat.

4.3 DISH Digital Solutions — povestea de Kubernetes și cloud

🗣️ Spusă întreagă

S. „La DISH Digital Solutions am lucrat pe Google Cloud, pe Kubernetes administrat — GKE — cu 17 pod-uri și 44 de baze de date Cloud SQL în spate.”

T. „Partea mea era operarea: livrările să intre fără să cadă serviciul, aplicațiile să fie sănătoase, iar resursele să fie potrivite cu ce cere efectiv sarcina de lucru.”

A. „Livrările le făceam progresiv, cu pod-uri noi ridicate înainte să fie scoase cele vechi, și cu verificarea stării actualizării ca pas obligatoriu — dacă actualizarea nu se termină, livrarea trebuie să eșueze, nu să treacă mai departe în tăcere. Pe partea de resurse am făcut o optimizare de configurație a alocării.”

R. „Livrările au mers fără întrerupere de serviciu, iar optimizarea a dat între 40 și 50 la sută eficiență mai bună a resurselor, fără impact asupra performanței.”

🛑 Dacă te întreabă exact ce ai schimbat

Răspunsul, exact așa:

„A fost o optimizare de configurație pe alocarea de resurse, și prefer să nu reconstitui parametrii exacți din memorie — a fost acum ceva timp și nu am evidențele în față. Ce pot să-ți spun e forma: configurația nu se potrivea cu profilul real al sarcinii de lucru, iar corectarea ei a dat între 40 și 50 la sută eficiență mai bună, fără impact pe performanță. Dacă îți e util, pot să-ți spun cum aș dimensiona-o azi.”

Ultima propoziție e importantă: mută discuția din amintire în competență, adică exact acolo unde stai bine. De acolo intri pe requests, limits, throttling și OOMKilled — capitolul 12 din pagina tehnică — și răspunzi cu material solid.

4.4 RapidBid — povestea de infrastructură ca și cod

🗣️ Spusă întreagă

S. „La RapidBid am lucrat pe infrastructură scrisă ca și cod, în Terraform, pe doi furnizori de cloud în paralel — AWS și Azure.”

T. „Infrastructura trebuia să fie reproductibilă și livrările predictibile, iar ambele medii trebuiau să arate la fel indiferent cine le ridică.”

A. „Am scris resursele în Terraform și am ținut conductele de livrare în Azure DevOps și în Jenkins. Una dintre livrări era de tip albastru–verde: ridicam mediul nou complet, îl verificam, și abia apoi comutam traficul pe el. Avantajul e că întoarcerea înseamnă comutarea traficului înapoi, nu o nouă livrare sub presiune.”

R. „Ce mi-a rămas de acolo e că diferența dintre doi furnizori de cloud e mult mai mică decât pare din afară. Se schimbă furnizorii și modul de autentificare; fluxul plan–apply, disciplina stării și felul în care gândești modulele rămân identice.”

💡 Întrebarea care vine după albastru–verde

Aproape sigur te întreabă: „și cu baza de date ce faci?” Răspunsul: „Baza de date nu se dublează — rămâne comună, iar schimbările de schemă trebuie să fie compatibile în ambele sensuri, ca versiunea veche și cea nouă să poată lucra pe ea în același timp. Practic, adaugi coloane, nu le redenumești și nu le ștergi în aceeași livrare. Ștergerea vine într-o livrare ulterioară, după ce nimeni nu mai citește din ele.” Asta e o propoziție care separă imediat pe cineva care a făcut de cineva care a citit.

4.5 Etihad — povestea de dependențe și inventar

🗣️ Spusă scurt

„La Etihad, prin IBM, am lucrat cu TADDM — descoperire automată a infrastructurii și maparea dependențelor între aplicații. Practic, construiai imaginea despre ce vorbește cu ce. Sună plictisitor până în ziua în care trebuie să oprești un server și nimeni nu știe cine depinde de el. Ideea a rămas aceeași și azi, doar că se numește altfel: inventar de configurație și hărți de servicii.”

4.6 Ultimii ani, pe cont propriu — povestea de care te temi

Te vor întreba ce ai făcut în perioada în care nu ai mai fost într-o corporație. Nu e o întrebare-capcană, e o întrebare de completare a imaginii. Răspunsul trebuie să fie scurt, plat, la trecut, fără justificări și fără entuziasm forțat.

🗣️ Spusă întreagă

„Am lucrat pe cont propriu. Am construit și am ținut în funcțiune sisteme proprii — servere, automatizări, integrări cu modele de limbaj. Am făcut toate rolurile, de la infrastructură până la ce vede clientul. A fost util pentru că am văzut întregul lanț, dar mi-a lipsit ce am acum de gând să recuperez: o echipă, o scară mai mare și proceduri serioase. De asta vreau înapoi într-o multinațională.”

Patru propoziții. Te oprești. Nu explici de ce ai plecat atunci, nu te scuzi, nu adaugi viziuni. Dacă vor mai mult, întreabă.

5 Întrebări tehnice, cu răspuns

Sunt scrise ca răspunsuri vorbite, nu ca definiții de manual. Citește-le cu voce tare; dacă o frază îți sună nefiresc în gură, rescrie-o în cuvintele tale — un răspuns memorat prost sună mai rău decât unul spus simplu. Apasă pe întrebare ca s-o deschizi.

5.1 Fundamente

Ce e DevOps, în cuvintele tale?

„E modul de lucru în care cei care scriu aplicația și cei care o țin în funcțiune lucrează pe același obiectiv, în loc să-și paseze responsabilitatea. Practic înseamnă că livrarea, infrastructura și monitorizarea sunt automatizate și versionate, ca oricine din echipă să poată livra în siguranță, și ca atunci când ceva se strică să știi imediat ce s-a schimbat.”

Ce nu spui: „e o cultură”. E adevărat și nu spune nimic. Dă o definiție operațională.

Ce faci într-o zi obișnuită de DevOps?

„Dimineața mă uit la ce s-a întâmplat peste noapte — alerte, livrări, joburi eșuate. Pe parcursul zilei sunt trei feluri de muncă: construiesc automatizări, ajut dezvoltatorii când li se blochează ceva în conductă, și mă ocup de ce a picat. Peste asta vine munca planificată — actualizări de versiuni, curățenie, reducere de costuri. Când e incident, tot restul se oprește.”

Ce e „shift left”?

„Înseamnă că verificările se mută cât mai devreme în proces. Testele, analiza de securitate, verificarea configurației se fac la fiecare modificare, nu într-un audit la final. Motivul e simplu: o problemă prinsă în editor costă minute, aceeași problemă prinsă în producție costă zile și, uneori, clienți.”

Cum explici unui manager de ce merită investit în automatizarea livrării?

„Prin patru numere care se măsoară: cât de des livrăm, cât durează de la commit până în producție, cât de des o livrare cauzează o problemă, și cât durează să ne revenim. Automatizarea le îmbunătățește pe toate patru simultan, iar ultimul e cel care contează pentru client. Contraintuitiv, echipele care livrează des sunt și cele mai stabile — pentru că livrează schimbări mici, ușor de înțeles și de întors.”

Ce e SRE și cu ce diferă de DevOps?

„DevOps e modul de lucru. SRE e o implementare concretă a lui, cu accent pe fiabilitate măsurată: definești ținte, măsori, și ai un buget de erori care decide dacă echipa livrează mai agresiv sau se oprește să repare. În practică, în majoritatea firmelor din România, titlul e DevOps și munca conține ambele.”

Care e cea mai importantă calitate a unui DevOps?

„Să nu presupună. Majoritatea incidentelor lungi durează mult nu pentru că problema era grea, ci pentru că cineva a plecat de la o presupunere pe care n-a verificat-o. Disciplina de a verifica înainte de a acționa e ce separă un incident de zece minute de unul de trei ore.”

5.2 CI/CD și GitHub Actions

Diferența dintre continuous delivery și continuous deployment.

„La continuous delivery, orice modificare care a trecut testele e gata de livrat, dar cineva apasă butonul. La continuous deployment nu există buton — dacă a trecut tot, ajunge singură în producție. Diferența e un om, iar alegerea depinde de cât de bine ai acoperit riscul cu teste automate și cu posibilitatea de a reveni rapid.”

Ce pași are o conductă de livrare?

„Descarc codul, instalez dependențele, verific stilul și analiza statică, rulez testele unitare, construiesc artefactul o singură dată, îl scanez de vulnerabilități, îl urc într-un registru, îl livrez în mediul de test, rulez testele de integrare, aștept aprobarea dacă e nevoie, livrez în producție și verific starea livrării. Regula pe care o țin e că artefactul se construiește o singură dată și același trece prin toate mediile — ce diferă e doar configurația.”

De ce „build once, deploy everywhere”?

„Pentru că dacă reconstruiești pentru fiecare mediu, ceea ce testezi nu e ce livrezi. O dependență se poate rezolva altfel, un cache poate fi diferit, și ajungi în situația clasică în care merge în test și nu merge în producție. Construiesc o dată, urc în registru, și de acolo livrez peste tot.”

Structura unui workflow în GitHub Actions.

„Un workflow e un fișier YAML în .github/workflows, pornit de un eveniment. Conține joburi; fiecare job rulează pe un agent, în mașina lui curată, și are pași. Un pas e sau o comandă, sau o acțiune refolosibilă. Joburile rulează în paralel dacă nu spui altfel; cu needs le pui în ordine.”

Cum transmiți fișiere de la un job la altul?

„Prin artefacte — upload-artifact într-un job, download-artifact în celălalt. E o capcană frecventă la cei care vin din Jenkins, unde stagiile împart același spațiu de lucru. În Actions fiecare job pornește pe o mașină nouă, deci nimic nu se transmite implicit. Valorile mici se transmit prin outputs.”

Cum gestionezi secretele?

„Pe trei niveluri: la nivel de organizație pentru ce e comun, la nivel de depozit pentru ce e specific, și la nivel de mediu pentru producție — acolo pot cere și aprobare umană înainte ca jobul să pornească. Dar dacă merg spre un furnizor de cloud, prefer să nu mai am secrete deloc și folosesc OIDC.”

Ce e OIDC și de ce e mai bun decât o cheie?

„În loc să țin o cheie permanentă în secretele depozitului, workflow-ul primește un jeton de identitate semnat de GitHub, iar furnizorul de cloud îl acceptă pe baza unei relații de încredere configurate o singură dată. Jetonul trăiește câteva minute și e legat de depozitul și ramura care l-a cerut. Nu mai ai ce să pierzi, nu mai ai ce să rotești. Detaliul care contează: condiția de încredere se scrie pe identificatori care nu se pot schimba, nu pe numele depozitului — numele se poate redenumi și preluare de altcineva.”

Cum securizezi acțiunile de la terți?

„Le fixez pe hash-ul complet al commitului, nu pe etichetă, pentru că o etichetă poate fi mutată. Apoi las Dependabot să-mi propună actualizările, ca să nu rămân pe o versiune veche. Și dau workflow-ului permisiuni minime — implicit e doar citire, și adaug scriere doar unde chiar trebuie.”

De ce e periculos pull_request_target?

„Pentru că rulează cu secretele depozitului, dar în contextul unui pull request care poate veni de la oricine. Dacă în el descarci codul propunerii și îl execuți, ai dat unui străin acces la secrete. Se folosește doar pentru lucruri care nu ating codul propunerii — de exemplu pus de etichete sau comentarii.”

Ai lucrat cu GitHub Actions?

„Conductele mele le-am construit în Azure DevOps și în Jenkins, inclusiv o livrare albastru–verde. Modelul e același — declanșator, etape, artefact, aprobare, livrare — și se traduce direct: ce în Jenkins e agent, în Actions e runs-on; ce e stages devin joburi, cu diferența importantă că în Actions fiecare job pornește curat, deci artefactele se transmit explicit. Am lucrat cu Actions la nivelul la care pot citi și modifica un workflow; ce nu am făcut e să duc o organizație întreagă pe ele, și asta aș învăța-o pe parcurs.”

Formulare onestă. Nu pretinde mai mult decât poți susține la a doua întrebare, dar nici nu-ți aruncă experiența reală la coș.

Ce faci când un pipeline pică intermitent?

„Întâi verific dacă eșecul e în test sau în infrastructură — un apel de rețea fără timp de așteptare și fără reîncercare e cauza cea mai des întâlnită. Dacă e test instabil, îl izolez și îl marchez, pentru că un test în care nimeni nu mai are încredere e mai rău decât niciun test. Nu las niciodată eșecul intermitent «să treacă», pentru că antrenează echipa să ignore roșul.”

5.3 Kubernetes

Ce e Kubernetes și ce problemă rezolvă?

„E un sistem care ține containerele în funcțiune pe un grup de mașini. Tu îi descrii starea dorită — vreau trei exemplare din aplicația asta, cu configurația asta — și el compară permanent realitatea cu ce ai cerut și corectează diferența. Dacă moare un container, îl repornește. Dacă moare un nod, mută sarcina pe altul. Asta e tot; restul sunt detalii peste ideea asta.”

Ce e un pod?

„E unitatea cea mai mică pe care o planifică Kubernetes. De obicei un container, dar poate avea mai multe care împart aceeași adresă de rețea și aceleași volume. Important: podul e de unică folosință. Nu se repară, se înlocuiește. Are o adresă IP care dispare cu el, de aceea traficul nu merge niciodată direct la un pod, ci la un Service.”

Deployment, ReplicaSet, Pod — care e relația?

„Deployment-ul e ce scriu eu. El creează un ReplicaSet, care se ocupă să existe numărul cerut de pod-uri. La fiecare modificare de imagine, Deployment-ul creează un ReplicaSet nou și îl umflă treptat în timp ce îl dezumflă pe cel vechi — de aici vine actualizarea progresivă. ReplicaSet-ul vechi rămâne gol, ca să pot reveni la el.”

Tipurile de Service.

„ClusterIP e implicit și e vizibil doar în interiorul clusterului. NodePort deschide același port pe toate nodurile. LoadBalancer cere un echilibrator de la furnizorul de cloud. ExternalName e doar un alias DNS. În practică folosesc ClusterIP peste tot și un singur Ingress în față, pentru că un LoadBalancer per serviciu costă și nu aduce nimic.”

Serviciul nu trimite trafic către pod-uri. Ce verifici?

„Prima comandă e kubectl get endpoints. Dacă lista e goală, Service-ul nu găsește niciun pod — și în nouă cazuri din zece e o nepotrivire între eticheta pod-ului și selectorul serviciului, o literă în plus undeva. Dacă lista are pod-uri dar nu merge, atunci e portul: targetPort trebuie să fie portul pe care ascultă efectiv aplicația, nu cel pe care îl expune serviciul.”

Ingress față de Service.

„Service-ul lucrează la nivel de rețea și duce traficul la un set de pod-uri. Ingress-ul lucrează la nivel de HTTP: rutează după domeniu și după cale, termină TLS, și toate serviciile intră printr-o singură ușă. Ingress-ul singur nu face nimic — trebuie să ai un controler instalat care citește regulile și le aplică.”

ConfigMap față de Secret.

„Ambele duc configurație în pod, ca variabile de mediu sau ca fișiere montate. Diferența declarată e că Secret-ul e pentru date sensibile. Diferența reală e mult mai mică decât pare: implicit, un Secret e doar codificat în base64, nu criptat. Cine are drept de citire pe el îl citește în clar. De aceea, pentru ceva serios, se activează criptarea în etcd sau se ține secretul în afară — Vault, External Secrets Operator, Sealed Secrets.”

Fraza despre base64 e una dintre puținele care, spuse spontan, arată imediat că ai lucrat efectiv.

Deployment față de StatefulSet.

„Deployment e pentru aplicații fără stare: pod-urile sunt interschimbabile, au nume aleatoare, pornesc și se opresc în orice ordine. StatefulSet e pentru ce are identitate: nume stabile și numerotate, disc propriu care rămâne al lui, pornire și oprire în ordine. Baze de date, cozi, orice are date locale. Diferența practică la care se sapă des: dacă un nod devine inaccesibil, pod-urile de Deployment se recreează imediat în altă parte, pe când un pod de StatefulSet nu se recreează automat — pentru că sistemul nu poate ști dacă cel vechi chiar a murit, iar două exemplare cu aceeași identitate ar strica datele.”

Readiness, liveness, startup.

„Readiness înseamnă «pot primi trafic» — dacă pică, podul e scos din serviciu, dar nu se repornește. Liveness înseamnă «sunt viu» — dacă pică, containerul se repornește. Startup e pentru aplicații care pornesc greu și oprește celelalte două până termină pornirea. Greșeala pe care am văzut-o e sonda de liveness pusă pe un endpoint care verifică baza de date: baza are o problemă de zece secunde, toate pod-urile se repornesc simultan, și dintr-o încetinire iese o cădere totală.”

Requests și limits.

„Request e cât rezervi și după el se decide pe ce nod intră pod-ul. Limit e plafonul din timpul rulării. Asimetria e importantă: la procesor, dacă depășești limita, ești încetinit — aplicația merge, dar prost, și e greu de diagnosticat. La memorie nu există încetinire. Depășești și ești oprit — OOMKilled, cod de ieșire 137.”

Un pod stă în Pending.

„Planificatorul n-are unde să-l pună. Cel mai des nu sunt destule resurse libere pentru cât cere, dar mai poate fi un taint pe noduri fără toleranță în pod, un selector de nod care nu se potrivește, sau un volum care nu se poate atașa în zona aia. kubectl describe pod scrie motivul exact în evenimente, la final.”

CrashLoopBackOff.

„Containerul pornește, moare, și Kubernetes îl repornește cu pauze tot mai lungi. Prima comandă e kubectl logs --previous, ca să văd de ce a murit exemplarul dinainte, nu cel care tocmai pornește. Apoi codul de ieșire: 137 înseamnă oprit forțat, de obicei memorie; 1 sau 2 e de obicei o eroare a aplicației sau lipsește o configurație ori un secret.”

Pod-ul e Running dar READY arată 0/1.

„Containerul rulează, dar sonda de pregătire nu trece. Aplicația e pornită și nu e gata, sau sonda e pusă greșit — calea greșită, portul greșit, sau un timp de așteptare prea scurt pentru cât durează pornirea. Verific în describe ce zice sonda și încerc endpoint-ul din interiorul pod-ului.”

Cum faci o actualizare fără întrerupere?

„Actualizare progresivă cu maxUnavailable: 0 și maxSurge: 1 — adică ridic un pod nou înainte să scot unul vechi, deci capacitatea nu scade niciodată. Am nevoie de sondă de pregătire corectă, altfel traficul intră în pod-uri nepornite, și de oprire elegantă în aplicație, ca cererile în curs să se termine. Și în conductă pun obligatoriu kubectl rollout status cu timp limită, pentru că altfel comanda de actualizare întoarce succes imediat și livrarea pare reușită chiar dacă niciun pod nou nu a pornit.”

Actualizarea s-a blocat. Ce se întâmplă și ce faci?

„Nu se întâmplă nimic rău, și ăsta e exact pericolul. Dacă pod-urile noi nu trec de sonda de pregătire, actualizarea se oprește pur și simplu: cele vechi continuă să servească trafic, cele noi stau nepregătite. Nu există revenire automată. Verific cu kubectl rollout status, mă uit în evenimente și în logurile pod-ului nou, și dacă nu e ceva de reparat pe loc, dau kubectl rollout undo.”

Cum scalezi?

„Orizontal, cu Horizontal Pod Autoscaler, pe procesor sau pe o metrică proprie, și cu autoscalare de noduri dedesubt, ca să existe unde să încapă. Merge doar dacă aplicația e fără stare. Capcana e scalarea pe procesor pentru un serviciu care nu e limitat de procesor — dacă gâtuirea e numărul de conexiuni la baza de date sau lungimea unei cozi, scalarea pe procesor fie nu pornește, fie pornește și înrăutățește situația. Acolo se scalează pe metrica reală.”

Namespace-ul e o graniță de securitate?

„Nu. E o împărțire logică — nume, cote de resurse, drepturi. Dar traficul de rețea trece liber între namespace-uri, dacă nu pui NetworkPolicy, iar unele lucruri sunt la nivel de cluster oricum. Confuzia asta e frecventă și duce la clustere în care mediul de test poate vorbi cu producția.”

5.4 Docker și containere

Container față de mașină virtuală.

„Mașina virtuală are propriul nucleu și propriul sistem de operare, deci pornește în minute și ocupă gigaocteți. Containerul e un proces obișnuit pe mașina gazdă, izolat prin mecanismele nucleului, care împarte nucleul cu toate celelalte. Pornește în milisecunde și ocupă cât aplicația. Consecința practică: izolarea e mai slabă decât la o mașină virtuală, de aceea nu pui într-un cluster comun sarcini cu niveluri de încredere foarte diferite.”

Imagine față de container.

„Imaginea e șablonul — straturi în citire, imutabile. Containerul e imaginea pornită, cu un strat de scriere deasupra. Dintr-o imagine pornești o sută de containere. Ce scrii în container dispare când îl oprești, de aceea datele merg pe volum și logurile merg la ieșirea standard.”

Cum scazi timpul de construire a unei imagini?

„Ordonez instrucțiunile de la cele care se schimbă rar la cele care se schimbă des. Copiez întâi fișierul de dependențe și le instalez, și abia apoi copiez codul — așa stratul cu dependențe rămâne în memoria tampon și nu se reinstalează la fiecare modificare de cod. Inversul, adică COPY . . înainte de instalare, invalidează totul la fiecare commit și e greșeala cea mai des întâlnită.”

Ce e o construire în mai multe etape?

„Într-o primă etapă folosesc o imagine mare, cu compilator și unelte, și construiesc aplicația. În a doua etapă pornesc de la o imagine minimă și copiez din prima doar rezultatul. Câștig dublu: imaginea finală e de zeci de ori mai mică, și nu duc în producție compilatoare și unelte care sunt, de fapt, suprafață de atac.”

Cum securizezi o imagine?

„Imagine de bază minimă, ideal distroless, fixată pe versiune, nu pe latest. Rulare cu utilizator fără drepturi, nu root. Sistem de fișiere doar în citire unde se poate. Niciun secret la construire — dacă a ajuns într-un strat, rămâne recuperabil chiar dacă îl ștergi într-un strat următor. Și scanare automată în conductă, cu Trivy sau echivalent.”

De ce nu folosești eticheta latest?

„Pentru că nu e o versiune, e un indicator care se mută. Două livrări identice pot duce imagini diferite, și când ceva se strică nu mai poți spune ce rula acum o oră. Folosesc eticheta cu hash-ul commitului: e unică, imutabilă, și îmi spune exact ce cod e înăuntru.”

Unde scrii logurile dintr-un container?

„La ieșirea standard, niciodată într-un fișier în container. Fișierul dispare cu containerul, umple discul nodului și nu e văzut de nimeni. La ieșirea standard îl preia platforma și ajunge unde trebuie.”

5.5 Linux și scripting

Un server nu răspunde. Ce verifici primul?

„Discul. df -h. E banal și e cauza cea mai des întâlnită — un disc plin oprește aproape orice, și adesea în moduri care par fără legătură: baza de date nu mai scrie, logurile se opresc, procesele se blochează. Durează o secundă și elimină cel mai probabil vinovat. După aia mă uit dacă procesul rulează, dacă ascultă pe port, ce zice jurnalul, și ce s-a schimbat recent.”

Cum vezi ce ascultă pe un port?

„ss -ltnp — arată porturile ascultate, cu procesul. lsof -i :443 face același lucru altfel. Dacă nimic nu ascultă, problema e în aplicație sau în serviciu, nu în rețea, și mă duc în journalctl -u.”

Discul e plin. Cum găsești ce-l ocupă?

„du -sh /* | sort -h și cobor din director în director. Dar întâi verific ceva ce prinde mulți: un fișier șters de care încă ține un proces deschis nu eliberează spațiul. lsof | grep deleted îl arată, și se rezolvă repornind procesul, nu ștergând altceva.”

Ce face set -euo pipefail?

„-e oprește scriptul la prima comandă eșuată. -u dă eroare la o variabilă nedefinită, ceea ce prinde greșelile de scriere înainte să facă pagubă. -o pipefail face ca o conductă să eșueze dacă oricare element din ea eșuează, nu doar ultimul. Fără ele, un script care a picat la jumătate continuă și poate lăsa sistemul într-o stare mai proastă decât dacă nu-l rulai deloc.”

De ce pui -f la curl în scripturi?

„Pentru că fără el, curl întoarce cod de succes și la un răspuns 500 — a descărcat pagina de eroare cu succes. Cu -f eșuează la coduri de eroare HTTP, deci set -e chiar oprește scriptul. Adaug și --max-time, altfel un apel poate atârna la nesfârșit într-un job de cron.”

Ce înseamnă că un script e idempotent?

„Că rulat de două ori dă același rezultat ca rulat o dată. Contează pentru că în operațiuni nu ai niciodată garanția că s-a rulat o singură dată — o reîncercare, un job pornit de două ori, un om care apasă iar. Un script care adaugă o linie în configurație de fiecare dată când rulează e o bombă cu ceas.”

Cum te asiguri că nu rulează două instanțe simultan?

„flock pe un fișier. E o linie și rezolvă complet problema joburilor din cron care se suprapun când unul durează mai mult decât intervalul.”

5.6 Terraform și cloud

Ce e infrastructura ca și cod?

„Înseamnă că infrastructura e descrisă în fișiere ținute în Git, nu creată cu mâna în consolă. Câștigi trei lucruri: poți reface mediul identic, vezi în istoric cine a schimbat ce și de ce, și poți revizui o modificare înainte să se întâmple. Diferența de fond față de un script e că Terraform e declarativ — descrii ce vrei să existe, nu pașii.”

Ce e starea în Terraform și de ce contează?

„E evidența a ce a creat Terraform și cum se leagă de resursele reale. Fără ea, nu poate ști ce să modifice și ce să șteargă. Trei reguli: stă la distanță, nu pe laptop, ca toată echipa să lucreze pe aceeași; are blocare, altfel două rulări simultane o corup; și conține valori sensibile în clar, deci se tratează ca un secret.”

Ce e driftul?

„Când cineva schimbă ceva direct din consolă, realitatea nu mai corespunde cu codul. terraform plan îl arată ca diferență. Ce fac practic e să elimin cauza: acces de scriere doar din conductă, oamenii au citire. Dacă driftul e deja acolo, ori îl aduc în cod, ori îl las pe Terraform să-l corecteze — dar decizia se ia conștient, nu prin apply pe fugă.”

Ai făcut vreodată terraform apply și ai stricat ceva?

„Regula pe care o țin e că nu rulez apply fără să citesc planul până la capăt, și mă uit în primul rând la ce e marcat cu «destroy» sau «replace». O redenumire aparent inofensivă poate însemna, în plan, distrugerea și recrearea unei resurse. La resursele cu date pun prevent_destroy, ca sistemul să refuze chiar dacă omul greșește.”

Ai lucrat cu mai mulți furnizori de cloud?

„Da — Terraform pe AWS și pe Azure, în paralel, la RapidBid, plus Google Cloud la DISH, pe GKE și Cloud SQL. Ce am reținut e că diferența e mai mică decât pare din afară: se schimbă furnizorii, denumirile serviciilor și modul de autentificare, dar fluxul plan–apply, disciplina stării și felul în care împarți în module rămân identice. Serviciile se corespund aproape unu la unu.”

Cum reduci costul într-un cloud?

„Cel mai mare câștig, aproape mereu, e din resurse cerute mult peste ce se folosește efectiv — se plătește rezervarea, nu consumul. Pe urmă: medii de test oprite noaptea și în weekend, discuri și adrese IP rămase orfane după ștergeri, trafic între zone de disponibilitate care se plătește și adesea se poate evita. Și etichetarea resurselor, fără de care nu poți nici măcar să spui cine cheltuie.”

5.7 Monitorizare și incidente

Ce monitorizezi la un serviciu?

„Cele patru semnale de aur: latență, trafic, erori, saturație. Pentru latență mă uit la p95 și p99, nu la medie — media ascunde exact utilizatorii afectați. Poți avea o medie de 200 de milisecunde și un procent de utilizatori care așteaptă opt secunde, și ăia sunt cei care sună.”

SLI, SLO, SLA.

„SLI e ce măsori — de exemplu procentul de cereri sub 300 de milisecunde. SLO e ținta internă pe acel indicator. SLA e promisiunea contractuală către client, întotdeauna mai relaxată decât SLO-ul, ca să ai marjă. Din SLO iese bugetul de erori: cât ai voie să greșești. Dacă mai ai buget, echipa livrează agresiv; dacă l-ai consumat, se oprește și repară. Decizia o dă măsurătoarea, nu cine vorbește mai tare în ședință.”

Cum eviți oboseala de alerte?

„Alertez pe simptom, nu pe cauză — rata de erori, nu procesorul la 90%, care poate fi perfect normal. Fiecare alertă care sună noaptea trebuie să ceară o acțiune umană imediată; dacă poate aștepta până dimineață, e tichet, nu alertă. Și fiecare alertă are un runbook. Când primești patruzeci de alerte pe zi și treizeci și nouă nu cer nimic, o ratezi pe a patruzecea.”

Serviciul e căzut. Ce faci în primele minute?

„Întâi restabilesc, apoi caut cauza. Confirm că preiau incidentul, ca să nu lucrăm doi pe același lucru. Verific ce s-a schimbat recent — livrare, configurație, certificat — pentru că acolo e cauza în majoritatea cazurilor. Dacă e o livrare recentă, revin la versiunea anterioară fără să caut mai departe; diagnosticul îl fac după ce oamenii au din nou serviciu. Și comunic din proprie inițiativă, la intervale, ca nimeni să nu întrerupă echipa ca să întrebe cum merge.”

Aici e terenul tău. Leagă imediat de Metro: „e exact ordinea pe care am folosit-o ani de zile în control de producție.”

Ce e o analiză fără vinovați și de ce contează?

„E analiza de după incident în care cauți cauza în sistem, nu în om. Dacă o comandă greșită a putut șterge producția, problema nu e omul care a scris-o, e că sistemul a acceptat-o fără confirmare și fără cale de întoarcere. Contează pentru un motiv foarte practic: dacă în analiză apar nume, data viitoare oamenii ascund incidentele, și pierzi exact informația de care ai nevoie.”

MTTR, și de ce e mai important decât MTBF.

„MTTR e timpul mediu până la restabilire, MTBF e timpul mediu între căderi. În sisteme distribuite, ceva pică mereu — nu poți duce MTBF la infinit. Ce poți controla e cât de repede îți revii. De aceea se investește în revenire rapidă, în livrări mici și în posibilitatea de a întoarce o schimbare în câteva minute, nu în promisiunea că nu va mai cădea nimic.”

💡 Dacă ai timp pentru un singur lucru

Învață bine zece răspunsuri, nu superficial cincizeci. Cele zece: ce e DevOps, ce e Kubernetes, pod și Deployment, Service și Ingress, ConfigMap și Secret, readiness și liveness, requests și limits, CrashLoopBackOff, actualizarea progresivă cu revenire, și „serviciul e căzut, ce faci”. Cu astea zece spuse fluent treci majoritatea interviurilor tehnice de primă rundă.

6 Întrebări comportamentale

Sunt subestimate și decid mai des decât cele tehnice, mai ales la firmele mari. Toate au aceeași structură ascunsă: intervievatorul vrea să vadă cum te comporți când lucrurile nu merg bine. Răspunzi în STAR, la persoana întâi singular, în sub două minute.

Povestește-mi despre un incident pe care l-ai gestionat.

Folosește povestea Metro de la capitolul 4.2. Nu improviza alta — asta e repetată și rezistă la întrebări, pentru că e a ta.

Povestește-mi despre o greșeală pe care ai făcut-o în producție.

Întrebarea asta nu caută greșeala, caută dacă ești în stare să o recunoști. Un candidat care spune „nu-mi amintesc să fi greșit” se descalifică singur. Structura: ce am făcut, ce s-a stricat, ce am făcut imediat, ce am schimbat ca să nu se mai poată întâmpla. Accentul cade pe ultima parte — acolo se vede maturitatea.

⚠️ Asta trebuie să o pregătești tu

E singurul răspuns din tot documentul pe care nu ți-l pot scrie eu, pentru că nu știu ce ți s-a întâmplat. Alege un caz real, de preferință vechi și rezolvat, în care ai schimbat ceva după. Scrie-l în patru propoziții și repetă-l cu voce tare. Dacă intri la interviu fără el pregătit, o să improvizezi — și aici improvizația se aude.

Ai avut vreodată un dezacord cu un dezvoltator sau cu un coleg?

Se caută dacă poți fi în dezacord fără să transformi în conflict. Structura care funcționează: care era dezacordul, ce argument aveam eu, ce argument avea el, cum am decis, și ce am făcut după ce s-a decis altfel decât voiam. Ultima parte e cea evaluată. „Am spus ce cred, s-a decis altfel, am susținut decizia și am pus o măsură de siguranță pe riscul de care mă temeam” e un răspuns foarte bun.

Cum prioritizezi când ai mai multe lucruri urgente în același timp?

„După impact asupra clientului, nu după cine a cerut mai tare. Dacă ceva afectează producția, are prioritate absolută și restul așteaptă — și le spun celorlalți că așteaptă, nu îi las să creadă că lucrez la ele. Anii de control de producție m-au învățat că a comunica ce nu faci e la fel de important ca a face.”

Cum te menții la zi?

Răspunde concret, nu cu „citesc mult”. Ce anume, cât de des, și ultimul lucru pe care l-ai învățat și l-ai folosit. Un exemplu concret valorează cât zece afirmații generale.

Cum lucrezi într-o echipă distribuită?

„Scriu ce fac, ca să nu depindă nimeni de prezența mea pe un canal de discuții. Documentez ce am stricat și ce am reparat. Și anunț devreme când ceva durează mai mult decât am estimat — o întârziere spusă la timp e o informație, spusă târziu e o problemă.”

Unde te vezi peste trei ani?

Nu inventa un plan de carieră spectaculos. „Tot pe partea de infrastructură și fiabilitate, cu mai multă adâncime pe Kubernetes și pe automatizare, într-o echipă în care pot să și dau mai departe ce știu. Nu am ambiție de management.” E scurt, credibil și nu te expune.

7 Motivație și întrebări incomode

Aici pierd oamenii interviuri pe care le câștigaseră tehnic. Regula pentru toate răspunsurile de mai jos: plat, la trecut, fără justificări lungi, fără viziuni. O explicație lungă sună ca o scuză. Răspunde în trei–patru propoziții și taci.

De ce vrei să te întorci într-o companie mare?

„Pentru că îmi lipsește ce am avut acolo: o echipă, o scară mai mare și proceduri serioase. Pe cont propriu am făcut toate rolurile și am învățat mult, dar lucrez singur. Vreau înapoi într-un mediu în care sistemele sunt mari și pot să mă specializez în loc să acopăr tot.”

De ce ai plecat din IBM?

Răspunde scurt și factual, fără nicio critică la adresa lor. Nu dai vina pe nimeni, nu povestești contextul intern, nu explici de trei ori. O propoziție despre ce a fost, una despre ce ai făcut după. Orice adaugi peste asta lucrează împotriva ta.

De ce ai o pauză din zona corporate?

„Am lucrat pe cont propriu în perioada asta. Am construit și am ținut în funcțiune sisteme proprii — infrastructură, automatizări, integrări. N-a fost o pauză din muncă, a fost altfel de muncă. Ce mi-a lipsit e echipa și scara, și de asta mă întorc.”

Ai peste douăzeci de ani de experiență. Nu ești supracalificat?

„Nu cred că sunt. Partea de operare, incidente și sisteme mari o am solidă din anii de dinainte. Partea de unelte moderne — Kubernetes, infrastructură ca și cod, conducte — o am și vreau să o adâncesc. Mă interesează rolul ăsta, nu unul de conducere, și nu mă plictisește munca tehnică.”

Întrebarea ascunsă e: „o să pleci repede?” sau „o să fii greu de condus?”. Răspunsul trebuie să liniștească exact pe astea două.

Care sunt așteptările tale salariale?

Întreabă întâi tu: „Aveți un interval alocat pentru rol? Prefer să pornim de acolo, ca să nu pierdem timpul niciunul.” Dacă insistă să dai tu primul un număr, dă un interval, nu o cifră, și adaugă „în funcție de pachetul întreg”. Nu te scuza pentru cifră și nu explica de ce ai nevoie de ea — motivele personale nu au ce căuta în negociere.

⚠️ Ce știm verificat despre bani

Din cele cinci anunțuri deschise verificate pe 23 septembrie 2026, niciunul nu afișează salariul. Singura cifră verificată vine dintr-un anunț deja închis, Ketryx Viena, cu minimum 90.000 de euro brut pe an pentru cineva cu peste cinci ani de experiență — dar e Austria și nu e reper pentru România. Cu alte cuvinte: nu avem un reper verificat pentru piața locală, deci nu intra în discuție cu o cifră luată de undeva. Întreabă-i tu.

Ce nu știi și ar trebui să știi pentru rolul ăsta?

E o întrebare bună și rar pusă, iar un răspuns onest impresionează. „Kubernetes l-am operat, dar am scris mai puține manifeste decât aș vrea. Și n-am dus o organizație întreagă pe GitHub Actions. Ambele sunt la câteva săptămâni de lucru efectiv distanță, și am mai făcut trecerea asta când am intrat pe Google Cloud.” Numește exact două lucruri, nu zece, și nu alege ceva esențial pentru post.

Ai și alte procese de recrutare în desfășurare?

Răspunde adevărul, scurt, fără nume. „Da, mai am câteva în discuție, dar niciunul finalizat.” Nu e o amenințare și nu e o slăbiciune — e informație normală și te așază ca pe un profesionist căutat.

8 Ce întrebi tu

La final ți se spune „ai tu întrebări pentru noi?”. Un „nu, cred că mi-ați spus tot” e cea mai ieftină pierdere de puncte din tot interviul: se citește ca dezinteres. Ai două–trei întrebări pregătite, scrise pe hârtie, și nu-ți fie rușine să te uiți pe ea.

Despre muncă, concret

  • Cum arată o săptămână obișnuită pentru omul care ia rolul ăsta?
  • Ce se întâmplă de la commit până în producție — câți pași și cât durează?
  • Cine e de gardă și cum e organizată garda?
  • Câte medii aveți și cine le poate schimba?

Despre sistem

  • Clusterul e administrat de furnizor sau propriu?
  • Ce vă doare cel mai tare acum în infrastructură?
  • Cât din infrastructură e în cod și cât se mai face manual?
  • Cum arată o analiză de după incident la voi?

Despre echipă

  • Câți oameni sunt în echipă și cum e împărțită munca?
  • Rolul e nou sau înlocuiește pe cineva?
  • Cum se ia o decizie tehnică — cine are ultimul cuvânt?

Despre proces

  • Care e pasul următor și în cât timp?
  • Ce ar trebui să demonstreze cineva în primele trei luni ca să fie considerat un succes?
💡 Întrebarea care schimbă tonul discuției

„Ce vă doare cel mai tare acum în infrastructură?” Aproape nimeni nu o pune și aproape toată lumea răspunde sincer. Din răspuns afli dacă postul e ce scrie în anunț, iar tu poți lega imediat: „am avut ceva asemănător la…”. De acolo încetează să fie interviu și devine conversație între doi ingineri — care e exact starea în care nu te mai blochezi.

⚠️ Ce nu întrebi la prima rundă

Zile de concediu, program flexibil, când poți lucra de acasă, beneficii, cât de repede se poate promova. Toate sunt întrebări legitime — dar la runda de ofertă, nu la prima discuție tehnică. La prima rundă întrebi despre muncă.

9 Lista roșie: ce nu spui

🛑 Cele opt
  1. Nu inventa cifre sau mecanisme. Dacă nu-ți amintești exact, spune că nu-ți amintești. Un detaliu inventat te duce direct în întrebarea următoare, unde nu mai ai unde să te duci — și de acolo se pune la îndoială și ce era adevărat.
  2. Nu vorbi de rău un fost angajator, client sau coleg. Oricât de îndreptățit ai fi. Cel din fața ta nu are cum să verifice cine avea dreptate, dar reține că ești omul care vorbește așa.
  3. Nu spune „noi” când vorbești despre ce ai făcut tu. Îți șterge contribuția exact în momentul în care era măsurată.
  4. Nu spune doar „nu știu” și apoi tăcere. Folosește formula din capitolul 2.4: ce știu, cum aș afla, ce am făcut asemănător.
  5. Nu vorbi trei minute la o întrebare de un minut. Se citește ca nesiguranță. Răspunde, oprește-te, lasă-l să sape.
  6. Nu te scuza pentru vârstă, pentru pauză sau pentru ce nu știi. Constată, nu justifica. „N-am lucrat cu asta” e o propoziție completă; ce adaugi după, ca scuză, te slăbește.
  7. Nu promite ce nu poți susține. „Învăț repede” e o vorbă goală dacă nu vine cu un exemplu în care chiar ai învățat repede ceva concret.
  8. Nu întreba de bani și beneficii la prima rundă, decât dacă deschid ei subiectul.
🗣️ Ce spui, în schimb, când te simți în inferioritate

„Partea asta n-am făcut-o. Ce am făcut e [lucrul concret]. Cum ai rezolva-o voi acum?”

Recunoști, te ancorezi în ce ai, și întorci mingea. Rar se întâmplă ca cineva să nu răspundă la ultima întrebare — iar în timp ce răspunde, tu îți revii și afli cum gândesc ei.

10 Ce cere piața, verificat

⚠️ Citește întâi asta, ca să știi cât cântăresc cifrele

Datele de mai jos vin dintr-o căutare făcută pe 23 septembrie 2026. Multe anunțuri care se potriveau erau deja închise când au fost deschise efectiv — Nagarro București, Allianz Technology București, Bitdefender de două ori, GlobalLogic București, Greenbone. Au rămas cinci anunțuri verificate ca fiind deschise. Cinci e un indiciu, nu o statistică, iar procentele de mai jos trebuie citite ca atare.

Cele cinci: Luxoft (Senior DevOps Engineer, București), CommIT (DevOps AWS/GitHub Actions, la distanță din America Latină), GlobalLogic (Senior DevOps cu Azure, la distanță), Deutsche Postbank Group (DevOps, la distanță din România), Bet On Talent (Senior DevOps, la distanță din Europa).

CerințăÎn câte anunțuri din 5O ai?
Platformă cloud (oricare)5✅ AWS, Azure, Google Cloud
CI/CD cu GitHub Actions numit explicit4🟠 parțial — vezi mai jos
Terraform sau altă infrastructură ca și cod4✅ Terraform pe AWS și Azure
Docker3✅
Python3🟠 de confirmat
Monitorizare (Prometheus, Grafana, Datadog, New Relic)3🟠 Nagios, Tivoli — generația anterioară
Kubernetes explicit2✅ GKE
Bash explicit2✅
Administrare Linux explicit2✅ Linux și AIX
Disponibilitate mare, ca frază1✅ cozi în mai multe instanțe, producție 24/7
ArgoCD sau GitOps0—

Ce scot din asta, concret

  • GitHub Actions apare aproape peste tot, dar aproape nicăieri singur. E enumerat alături de Jenkins, GitLab CI și Azure DevOps. Asta îți confirmă că răspunsul „am construit conducte în Jenkins și Azure DevOps, conceptele sunt aceleași” e acceptat pe piață, nu e o scuză.
  • Terraform e la fel de cerut ca GitHub Actions, iar tu îl ai. Pune-l în față din proprie inițiativă, chiar dacă anunțul nu insistă pe el. E cel mai bun raport între cât e cerut și cât ai.
  • Python apare în 3 din 5, mai des decât Bash. Dacă îl ai la un nivel de scripting operațional, spune-l. Dacă nu, e următoarea investiție după Bash, nu Kubernetes.
  • GitOps și ArgoCD nu apar deloc în anunțurile deschise. Nu pierde timp de pregătire cu ele.
  • Monitorizarea apare în 3 din 5 și e locul unde ai nevoie de o singură frază bine construită, cea din capitolul 21 al paginii tehnice: modelul e același, colectarea diferă.
💡 Firul deschis pe care nu l-ai închis

Luxoft avea deschis, la data căutării, un post de Senior DevOps Engineer în București — career.luxoft.com/jobs/senior-devops-engineer-26131 — cu peste opt ani ceruți, AWS, Kubernetes și Terraform, iar la CI/CD accepta GitLab, Jenkins sau GitHub Actions. Se potrivește cu CV-ul tău actual mai bine decât anunțul pentru care te pregăteai. Ai un fir deschis acolo pe care nu l-ai închis.

11 Plan de repetiție

Documentul ăsta nu te ajută dacă îl citești. Te ajută dacă îl spui cu voce tare. Diferența dintre a ști un răspuns și a-l putea rosti fluent sub tensiune e exact diferența dintre un interviu bun și unul în care te blochezi — iar a doua se antrenează, nu se înțelege.

SesiuneaCe faciCât
1Citești capitolele 9–14 din pagina tehnică. Nu memorezi, doar înțelegi.90 min
2Spui cu voce tare cele zece răspunsuri esențiale din 5.7, fără să te uiți. Te înregistrezi pe telefon.30 min
3Asculți înregistrarea. Notezi unde ai ezitat și unde ai lăsat propoziții neterminate. E partea neplăcută și cea mai utilă.20 min
4Repeți cele patru povești din capitolul 4, cronometrat. Fiecare sub două minute.40 min
5Scrii răspunsul despre greșeala ta în producție (6.2) și îl repeți până iese natural.30 min
6Deschizi întrebările tehnice din capitolul 5 la întâmplare și răspunzi pe loc, fără să citești răspunsul întâi.45 min
7Simulare completă cu cineva, sau singur cu cronometru: 45 de minute fără pauză, fără să te uiți în documente.45 min
8Recitești doar capitolul 2 (anti-blocaj) și capitolul 9 (lista roșie), în ziua dinaintea interviului.15 min
💡 Înregistrarea pe telefon

E cel mai eficient instrument din tot planul și cel pe care îl sar aproape toți. Când te asculți, auzi lucruri pe care nu le simți în timp ce vorbești: unde accelerezi, unde te repeți, unde propoziția se rupe. Două sesiuni de ascultare schimbă mai mult decât zece ore de citit.

⚠️ Ce nu faci în ultimele zile

Nu începe să înveți tehnologii noi cu două zile înainte. Nu citești despre ArgoCD, service mesh sau alte lucruri care nu apar în anunț. Panica de final se manifestă ca apetit brusc pentru materie nouă, și efectul e invers: îți fragmentează ce știai deja. În ultimele zile se consolidează, nu se adaugă.

12 În ziua interviului

Cu o oră înainte

  • Verifici camera, microfonul și legătura. Dacă e pe un program pe care nu l-ai mai folosit, îl deschizi acum, nu la minutul zero.
  • Închizi tot ce poate suna sau apărea pe ecran.
  • Pui pe hârtie, lângă tine: cele trei întrebări pentru ei, cele patru titluri de poveste, și formula de la 2.4.
  • Un pahar cu apă.
  • Recitești doar capitolul 2. Nimic altceva.

În primele două minute

  • Respirația 4–6, de trei ori, înainte să intri.
  • Vorbește mai rar decât ți se pare firesc.
  • La prima întrebare, folosește pauza de două secunde chiar dacă știi răspunsul — îți fixează ritmul pentru tot restul.
  • Dacă prima întrebare iese prost, nu o mai analiza în timp ce răspunzi la a doua. Nimeni nu e respins pe baza primului răspuns.

Pe parcurs

  • Notează întrebarea în timp ce ți se pune.
  • Anunță structura: „sunt trei lucruri aici”.
  • Răspunde în patruzeci–șaizeci de secunde și oprește-te.
  • Când nu știi, formula de la 2.4. Nu improviza niciodată un mecanism.
  • „Poți să repeți întrebarea?” e permis oricând și de câte ori ai nevoie.

La final

  • Pui cele două–trei întrebări pregătite.
  • Întrebi care e pasul următor și în cât timp.
  • Mulțumești scurt. Fără discurs de încheiere.
  • Notezi imediat după, cât ai memoria proaspătă, ce te-au întrebat și unde te-ai poticnit. Următorul interviu îl pregătești din lista aia.
🗣️ Ultimul lucru, și singurul de reținut dacă uiți restul

Nu trebuie să fii perfect. Trebuie să fii coerent.

Nimeni nu angajează pe cineva care știe tot — nu există. Se angajează cineva cu care se poate lucra: care spune ce știe, spune ce nu știe, își duce propozițiile până la capăt și nu inventează. Tu ai deja materia primă — peste douăzeci de ani de sisteme reale care trebuiau să meargă. Tot ce mai ai de făcut e să o spui calm.