Școala Web

Din partea cealaltă a recrutării

Au trecut 15 ani de când am participat la primul meu interviu de angajare, în calitate de candidat. Recent am avut ocazia să încerc să văd cum stau lucrurile și din partea cealaltă.

Am postat pe LinkedIn primul meu anunț de angajare. Cred că lecțiile pe care le-am învățat ar putea să ajute și pe cei care aplică pe această platformă și nu numai.

De ce caut ajutor

Anul acesta (2022) am decis să nu mai fiu doar angajat, pe „Contract Individual de Muncă”, ci vreau să câștig mai mulți bani, prin PFA.
Pentru că sistemul de PFA încurajează programatorii să facă muncă la gri (legal dacă interpretezi inventiv legea), mi s-a recomandat să îmi fac SRL în schimb. Sunt mai multe cheltuieli, dar e totul perfect legal.

Făcându-mi SRL, m-am gândit că la un moment dat îl pot transforma într-o firmă adevărată de programare.

O firmă de programare are nevoie de un site, ceea ce e specializarea mea, dar nu am timp să îl fac și nu mai sunt obișnuit să lucrez singur la un proiect.
Aș putea să comand ceva de la vreun freelancer, pe diferite căi, dar nu știu ce ar ieși.

Am lucrat cu câțiva programatori în ăștia 15 ani. Nu toți sunt excelenți. Iar freelancerii nici măcar nu au colegi care să le facă puțin code-review. Dacă fac ce nu trebuie, voi rămâne cu banii dați, și cu cod sub standardele mele.

Alternativa la care mă gândesc de ceva vreme e să iau o persoană la început de carieră, să o modelez după standardele mele.
Voi câștiga un site făcut așa cum vreau și poate și un coleg excelent pentru proiectele viitoare.

Ce vreau să fac

Sper să facem un site mai complex și mai bine realizat decât site-urile de prezentare tipice companiilor de software. Poate facem și o platformă pentru a realiza site-uri mai rapid, pentru potențiali clienți și nu numai.

După asta, ne putem ocupa și cu alte proiecte personale, ale amândurora, inclusiv Școala Web, sau plătite de clienți.

Probabil e o fantezie, dar vreau să dau acelui coleg cât mai multă libertate, să își facă programul (puțini oameni lucrează cu adevărat 8 ore pe zi), să experimenteze cu ce vrea, să lucreze de unde vrea, să nu îi afectez alte obligații (facultate, alt job, obligații familiale etc.). Vor fi foarte puține restricții.

Vreau inclusiv să îi ajut să găsească un job mai bine plătit dacă eu nu pot să ofer salariu decent.

Vom încerca să emulăm un workflow profesionist, bazat pe Scrum. Din 2-în-2 săptămâni, stabilim obiectivele pentru sprintul curent, și în fiecare zi ne auzim pentru status update. Poate și o ședință de „retro” dacă simțim nevoia.

Cu alte cuvinte, vreau să le dau job-ul ideal, bazat pe ce știu acum, și pe ce îmi doream când eram la început.

LinkedIn și aplicanți

Nu am postat vreodată anunț de angajare pe LinkedIn, deci nu știam ce presupune. Dar am văzut de multe ori opțiunea de a te seta #hiring. Cum am apucăturile lui DeeDee în laboratorul lui Dexter, voiam mereu să apăs pe acel buton.
Acum am făcut-o…

LinkedIn mi-a dat un editor foarte rudimentar (textarea) pentru detaliile postului, așa că am scris o propoziție simplă, în Engleză: „Caut developări la începutul carierei. Mi-ar plăcea să văd potențial mai mult decât experiență.”

Având în vedere că domeniul ăsta are reputație că ar avea multe posturi și puțini candidați, și am pus o propoziție nu foarte profesionistă, mă așteptam să primesc 2-3 aplicări, o dată la câteva zile.

În 2 ore primisem deja spre 50 de aplicări, fără să număr mesajele directe. M-am gândit că poate s-a înțeles greșit ce voiam, așa că am editat anunțul cu clarificări că nu am bani mulți pentru asta.

N-a contat. Am mai primit aplicări până s-a ajuns la limita impusă de LinkedIn pentru anunțuri neplătite.

Ce-i drept, multe dintre ele au fost de la persoane din diferite țări Asiatice, Africane, și Sud-Americane. Eu caut Români, sau persoane care înțeleg puțină Română. Am inclus asta în detaliile ulterioare, dar am primit în continuare aplicări din afară.

Chiar fără astea, 26 de români au aplicat.

Ce vede un recrutor

Numele, Headline-ul, și cele mai recente posturi (se ia de la Educație dacă nu sunt) apar pe LinkedIn aproape oriunde te afișează.

Din acest fapt, am realizat că n-ar fi rău să pun ceva mai relevant la Headline, decât „Geek”. Poate când aplici la mai multe joburi, pui titlul pe care ți-l dorești, sau ceva care să ajute.

Apoi, ca un rezumat, se văd cele mai recente două poziții, inclusiv compania, anii în care ai lucrat acolo, dar nu și descrierea.
Din asta înțeleg că trebuie un titlu relevant, și, dacă ai lucrat la mai multe proiecte pentru aceeași companie, să le pui împreună.

Exemplu de CV nepotrivit pentru LinkedIn

Dacă dai scroll puțin, vezi un preview al CV-ului, dar numai dacă acesta a fost încărcat în format PDF.

CV-urile încărcate în alt format decât PDF trebuie descărcate, ceea ce poate fi enervant dacă ai mulți candidați.

Înainte să expandezi, se vede cam o treime dintr-o pagină. Asta înseamnă că e bine să facem acea treime memorabilă.

Până acum, îmi generam CV-ul din Europass, cum ne-a învățat la școală. Dar s-ar putea să nu fie cea mai bună idee. Un design banal va rămâne mai greu în memorie.
Putem să fim banali în următoarele 2 treimi și pe următoarele pagini.

Ai grijă ce răspunzi la întrebări.
Ne putem imagina ușor că răspunsul nepotrivit poate duce la respingere.

N-am cum să știu procesul recrutorilor adevărați, dar eu am folosit din plin funcția de grupare a candidaților în „Good fit”, „Maybe”, și „Bad fit”.

Inițial, am vrut să vorbesc doar cu aplicanții pe care i-am pus ca „Good fit”, dar nu mă pricep suficient de bine să judec oameni. Scriu aceste rânduri după ce unul din cei puși la „Maybe” m-a impresionat. Alți recrutori poate nu au răbdarea mea.

Nu în ultimul rând, trebuie să ținem cont că LinkedIn are o limită de 76 de aplicări la un anunț. Dacă vedem un anunț care nu mai primește aplicări, e posibil să se fi epuizat această limită, sau bugetul pentru acel anunț. Pentru anunțurile la care ai convingerea că te potrivești, poți încerca să trimiți mesaj direct recrutorului, să îi întrebi dacă mai e valabil.

Interviurile

Aș fi vrut să vorbesc cu toți candidații, pentru că nici mie nu îmi place să aplic la un job la care sunt convins că mă potrivesc perfect, și să nu primesc niciodată vreun semn. De aceea, am marcat candidații respinși ca „Bad fit”. LinkedIn le trimite după 3 zile un email, deci vor ști să nu mai aștepte.

Celorlalți le-am trimis mesaj.
Câțiva nu mi-au răspuns, ceea ce e o greșeală pe care o fac și eu.
Cei care nu au răspuns după câteva zile, i-am marcat ca „Bad fit”, ca să nu aibă vreo așteptare.

Când mi-am dat seama că e aproape imposibil să aranjez interviurile în funcție de programul meu haotic, ținând cont și de disponibilitatea candidaților, am configurat o aplicație (Calendly).
Sunt impresionat de cât de mult control am putut să am. Am setat-o astfel încât să îmi evite alte chestii din calendar, și să nu programeze prea multe interviuri într-o zi.

Primul respins a fost cineva care nu a reușit să înțeleagă care e treaba cu linkul pe care i l-am trimis.

Am configurat Calendly să se poată alege întâlniri de dimineața la 9, până seara la 21, inclusiv în weekend, dacă voiau.
De asta mi-au părut puțin de prost-gust reprogramările.
Adică ori nu ești în stare să îți organizezi timpul, ori ai altceva mai bun de făcut. În ambele cazuri, nu am nevoie de tine.

Când am mers eu la interviuri, nu am luat vreodată în considerare să nu mă prezint. Am avut mereu grijă să programez interviul la o oră convenabilă, și apoi să nu accept alte obligații la acea oră.

Mai mult decât orice, m-au enervat cei care s-au programat, iar apoi nu au mai intrat venit la interviu. Nici nu au anunțat.
Acestora le-am dat mereu 5 minute, sau 10 dacă era un CV interesant.

Eu am un program foarte încărcat. Ca să particip la interviu, a trebuit să îmi eliberez alte obligații, să chiulesc puțin la job.
Ceea ce poate cei mai tineri nu își dau seama e că un meeting de 30 de minute nu îți ia 30 de minute. Trebuie să te oprești cu câteva minute înainte din ce făceai. Dacă erai într-un ritm bun, s-a dus dracu acum. Apoi îți trebuie alte câteva minute pentru a regăsi acel ritm după ce ai terminat întâlnirea.

Înainte de fiecare interviu, am încercat să revăd aplicarea candidatului pentru a îmi aminti ce mi-a atras atenția, și a-mi face o idee despre ce vreau să vorbim.
Apoi, după interviu, trebuie să îmi iau notițe, pentru că am memoria foarte proastă. Mi-e greu să îmi amintesc o conversație, cu atât mai puțin 26.

Așadar, pentru minte, un call de 30 de minute îmi ia în total între 60 și 90.
Dacă nu intri, pe lângă faptul că ai ocupat locul acela de la un alt candidat căruia probabil i-ar fi convenit mai mult acea oră, m-ai făcut să pierd și vremea.


În timpul interviului, m-am concentrat pe partea tehnică. Nu mă așteptam să fie experți în HTML+CSS+JS, dar aveam nevoie să văd potențial.

Celor care aveau în CV ceva legat de programare, le-am cerut să scrie cod, în orice limbaj se simt confortabil, și să îndeplinească o sarcină simplă (ca de liceu, cum a remarcat cineva).
Dacă nu cunoșteau sintaxa, le-am cerut să mă întrebe, și i-am lăsat să inventeze un limbaj.

Toți cei care au reușit să scrie un algoritm funcțional au făcut cam același lucru. Dar de fiecare dată, am modificat datele problemei, ca să văd cum se adaptează.

Cei mai buni au recunoscut ce au greșit și au încercat să repare. Aș fi acceptat și să înceapă de la 0. Nu merită să te atașezi de cod învechit, după părerea mea.

Pe lângă partea de programare, celor cu experiență în CSS le-am dat la început întrebări teoretice.

De ce e bun testul practic

Am avut și o experiență traumatizantă din această cauză: Un candidat a intrat de pe telefon, pentru că îi tot cădea curentul electric. Așa că nu am putut decât să îi dau întrebări teoretice, la care s-a descurcat excelent. Aveam mai multe întrebări de CSS pregătite.

I-am cerut să ne mai auzim o dată, când are curent mai stabil, să vedem cum se descurcă și cu programarea. Eram pregătit să îi fac o ofertă. După prima discuție, ceruse 1000€, ceea ce era cam maxim din ce puteam să îi dau, dar aș fi fost dispus să îi dau dacă era bun și la programare.

La a doua discuție, nici nu putut să înceapă să scrie progrămelul în JS. Știa sintaxa, dar nu putea să își imagineze cum să o pună în practică.

I-am cerut să facă un test practic și pentru CSS. Nici aici nu a vrut măcar să încerce.

Nu am cum să știu dacă într-adevăr e atât de slab la partea practică, sau s-a răzgândit în privința mea. Oricum, a fost traumatizant.

Speranțe

Am avut și candidați care știau prea puțin, chiar deloc, HTML și CSS, și nici pe programare nu știau suficient de bine vreun limbaj.

Alți recrutori probabil i-ar fi respins, dar am încercat să le dau tuturor o șansă. Sintaxa se învață, dar să gândești nu e atât de ușor. Le-am cerut să inventeze un limbaj de programare, și să îndeplinească problemuța de liceu.

Unii n-au fost în stare nici de atât.

Dar au fost câțiva de care sunt convins că dacă ar ajunge să învețe sintaxa, s-ar descurca excelent în domeniul ăsta.

Salariu

Am notat încă din Job Description faptul că nu am un buget mare.

La programarea interviului, le-am cerut să scrie o sumă, dacă vor.
Iar pe cei pe care nu i-am respins imediat, le-am cerut să o confirme, sau să dea una dacă n-au dat-o.

Majoritatea au cerut ceva rezonabil, dar am avut și extreme: au cerut mult când nu se pricepeau, sau au cerut puțin când erau excelenți.

Visez la această companie de pe vremea când mi-ar fi fost util să fiu eu însumi angajat la una asemănătoare.
Cam de pe vremea când am început prima variantă a Școlii Web, prin 2010.

Dar am nevoie și de bani ca să o pun în practică, iar înainte să vină clienți, și să avem profit suficient, sunt nevoit să fiu un afacerist nesimțit:

  • Cei care cereți prea mult, ați face bine să îmi dovediți că meritați.
  • Cei care cereți prea puțin, am să vă fac ofertă pe suma minimă pe care ați cerut-o.

Nu îmi place de mine că trebuie să fac asta, și aș vrea să ajung la punctul în care nu am nevoie.