FAANG rekrutują tak jak rekrutują, bo u nich się to sprawdza. W praktyce te wszystkie pytania o algorytmy, zagadki itd. to zamaskowany i upośledzony test IQ, bo testu na inteligencję przeprowadzać nie wolno, a oni chcą zatrudnić ludzi sprytnych, a nie doświadczonych, bo doświadczenie z innych firm jest u nich mało przydatne. Dlatego też pojawia się problem z ageismem, bo zdolności poznawcze spadają wraz z wiekiem a przydatne zaczyna być ileś tam lat doświadczenia.
Rekrutacja w innych firmach (w tym mojej) też nie jest perfekcyjna. Większość rozmów jakie miałem w życiu (zarówno jako kandydat, jak i rekrutujący) koncentrowała się na absurdalnie nieistotnych szczegółach jakiegoś konkretnego frameworku, biblioteki, albo sztampach typu czym różni się klasa abstrakcyjna od interface'u, Zastanawiam się jak często np. programista Java jest w stanie wykorzystać wiedzę o wewnętrznej organizacji pamięci i jak po tych wszystkich edenach i survivorach biega garbage collector, który z założenia jest mechanizmem przed programistą schowanym, albo ile razy w karierze ma do czynienia z tak intensywnymi operacjami na listach i zbiorach, że faktycznie ma znaczenie której implementacji użyje.
Większość rozmów prowadzona jest według (moim zdaniem) złego schematu - mamy ileś tam etapów szukania powodów, dla których kandydat nie powinien być zatrudniony, zamiast znalezienia powodów, dla których warto go zatrudnić. Powód tego jest prosty, rekruterzy techniczni, to amatorzy, którzy korzystają ze wzorców, dzięki którym sami dostali pracę i tak ten proces się powiela, bo jakoś tam działa. To, że w większości firm, do przejścia rozmowy kwalifikacyjnej wystarczy wykuć (w tych lepszych zrozumieć) odpowiedzi na 101 pytań rekrutacyjnych z [wstaw technologię] i że te pytania nijak się mają do rzeczywistej pracy, jest raczej oczywistością dla każdego kto był ileś tam razy odpytywany i zdobył już jakieś doświadczenie.
Rekrutowanie doświadczonych inżynierów oprogramowania, to jeszcze bardziej złożony problem. Tutaj również trzonem rekrutacji jest sprawdzenie, co gość wie, a wartość takiej osoby, dla projektu w którym ma wziąć udział nie wynika z wiedzy czysto technicznej, tylko z doświadczeń i liczby zderzeń z jakąś tam ścianą w dotychczasowej karierze. W dodatku osoba, która zna bardzo dobrze technologię w której pracuje, jest zaledwie doświadczonym programistą, a to nie jest wystarczający powód, żeby ją zatrudnić. Im "wyżej", tym większą wagę mają umiejętności miękkie, takie jak łatwość komunikacji, asertywność, umiejętność argumentowania swojego stanowiska, podejście do nowych rozwiązań, a to ciężko sprawdzić w rozmowie więc się to pomija. Prawdopodobnie przydatne byłyby ogarnięte osoby z HR, ale trzeba takie mieć i trzeba by ich jeszcze posłuchać.