Il tipo di lavoro come dicevo varia molto e dipende dall'azienda in cui ti vai ad inserire. In aziende di media grandezza generalmente vieni specializzato in un settore, ad esempio:
- automazione dell'infrastruttura (come facciamo in modo che le macchine si attivino da sole quando c'e` bisogno, come gestiamo quelle rotte e cosi` via);
- automazione del software (come facciamo a portare del codice dal git repo locale in produzione, come eseguiamo i test automaticamente);
- automazione della rete (come gestiamo la configurazione di centinaia di switch/router e cosa facciamo se si rompe qualcosa).
Ovviamente i dettagli variano da azienda ad azienda, ma generalmente ci si aspetta che un DevOps sia in grado di scrivere del software di backend (API REST, ad esempio) e automatizzare il piu` possibile operazioni manuali.
Per quanto riguarda il processo di interview anche quello varia abbastanza ma e` generalmente strutturato in questo modo:
- 30 min con HR o recruiting per capire chi sei, che posizione ti interessa e che salario ti aspetti; viene fatta un'introduzione all'azienda.
- 30 min con il manager del team a cui hai fatto richiesta; questo colloquio e` generalmente informale e un po' piu` tecnico, si discutono tecnologie e interessi, approccio ai problemi e al lavoro.
- Technical o coding challenge; ti arriva per mail un documento con le specifiche di un certo programma e spetta a te scriverlo. Generalmente viene data una settimana di tempo per risolvere il problema. Questo task puo` differire molto a seconda di chi sta facendo il colloquio. Di solito chiedono programmi per estrarre ed analizzare dei log (es. riporta quanti errori in media sono prodotti dalla macchina X in un'ora) o per automatizzare l'infrastruttura con diverse tecnologie. Ho pubblicato una technical challenge proprio stamattina su Git (era parte della richiesta che mi era arrivata) che potete trovare qui. Come in questo caso, ogni tanto viene chiesto di lavorare con tecnologie specifiche che non hai mai usato prima.
- 2 o 4 ore di colloqui tecnici, a seconda dell'azienda e se c'e` stato un technical challenge in precedenza. Questi colloqui possono toccare qualunque cosa, dalla struttura di un pacchetto DNS al modello fork/exec del sistema operativo, dal fare una query SQL all'automatizzare l'avvio di macchine con l'aumentare del traffico di rete. In questi colloqui c'e` di solito anche del "whiteboard coding" che in sostanza significa che viene chiesto di scrivere un programma al volo con un altro programmatore che osserva e commenta il tuo lavoro. Non molto piacevole
- 30 min finali con il manager per tirare un po' le somme e vedere se il lavoro fa per te e se ci sono stati problemi particolari durante i colloqui.
- 30 min con VP/director; e` successo piu` spesso di quanto mi aspettassi, specie se l'azienda e` una startup. Colloquio informale per parlare un po' della filosofia aziendale e il tipo di direzione che vogliono prendere.
Alla fine, se tutto e` andato bene c'e` un'ultima chiamata con HR in cui il contratto e` offerto e tutti i benefit spiegati.
Quella che vi ho raccontato e` la mia esperienza con aziende estere. Con quelle italiane e` un'altra storia. Ovviamente non tutte sono cosi` (spero) ma le esperienze che ho avuto finora sono davvero deludenti.
Di quattro aziende
da cui sono stato contattato solo una mi sta portando all'offerta mentre le altre sembrano essersi scordate di me. Per principio non corro dietro a chi si occupa di recruiting, se non hanno interesse ad assumermi non ho interesse a farmi assumere.
Comunque, di quell'unica azienda che si e` fatta sentire il colloquio e` andato cosi`:
- 30m con uno dei fondatori che mi ha spiegato la company vision e che mi ha fatto due domande sul mio curriculum.
- 20m con HR che mi ha detto che erano in dubbio se farmi un test di inglese o farmi un'offerta direttamente.
ZERO colloqui tecnici, che da un lato rende la vita molto piu` semplice ma dall'altro mi preoccupa molto perche` chissa` con che gente vado a lavorare? Dovro` preoccuparmi di colleghi che non sanno testare i propri programmi? O che si portano le credenziali di produzione in giro sullo smartphone?
Sono abbastanza sconcertato, spero sia un esempio isolato. Piu` tardi avro` un altro colloquio con un manager di questa azienda perche` ancora non so che tipo di posizione stanno cercando di piazzare. Ok, DevOps, ma esattamente cosa gli serve?
Vedremo.