Blog technologiczny od 2014 · 1 112 wpisów
RSS

Pytania rekrutacyjne dla Frontend Developera (Junior, Mid, Senior)

Na przestrzeni kilku ostatnich lat zostałem zwerbowany do zespołu, który odpowiadał za rozmowy techniczne z kandydatami na stanowisko Frontend Developera. Poziomy wszelakie - od juniorów, przez midów, po seniorów. Nie było schematów. Musiałem wypracować sobie co będę pytał, dlaczego i czy będę robić jakieś zadanie testowe.

Wszystko to zebrałem w tym wpisie. Luźne przemyślenia na temat samej rekrutacji, wiedzy kandydatów, o co pytam, dlaczego. Rekrutowałem w czasie przed boomem AI jak i teraz. Dużo się nie zmieniło jeśli chodzi o kandydatów.

Zanim przejdę do pytań, opiszę swoje spostrzeżenia na temat pierwszego procesu rekrutacji.

Etap pierwszy – przeglądanie CV

Nie wierzcie, w to co piszą w internatach. AI nie odsiewa CV. Każde CV trzeba przejrzeć i zdecydować czy zaprosić na rozmowę. Trochę to trwało, bo trzeba było każde CV potem porównać z innym. Czy zakres technologii pasuje, czy robił podobne rzeczy które robi przyszły zespół kandydata.

Przypis

Tutaj rada dla kandydatów: twórzcie CV pod konkretne oferty firm. Wysyłając to samo CV do wielu firm zwiększasz swoją szansę na odpadnięcie w już na pierwszym etapie.

Ale… są przypadki, gdzie dana firma ma podpisaną umowę z firmą outsourcingową (czasami na wyłączność). Następnie wiąże się to z tym, że bez względu na „jakość” kandydata trzeba było go przepytać. W przeciwnym razie będzie szła reklamacja.

Potężny rozstrzał wiedzy, superlatywy, duże ambicje, przereklamowane CV

Jeżeli ktoś kiedyś pisał, że kandydaci lubią wyolbrzymiać swoją rolę i zasługi w firmie/projekcie – to jest to zdecydowana prawda. Przeglądając CV od razu można było wyczuć, że kandydat specjalnie podkręcił swoje CV. Wiecie, jak widzisz takie zwroty jak lead developer czy key developer, to wiedz, że jest coś na rzeczy. Kandydatów z konkretami w CV mógłbym policzyć na palcach jednej ręki.

Firmy outsourcingowe, to inny poziom CV

Mistrzami takich CV są różnej maści tzw. kontraktornie (firmy outsourcingowe), które potrafią przesłać CV kandydata na 8-9 stron. Znaczna część tych stron to słowa kluczowe technologii o które otarł się kandydat w danym projekcie. A właściwie jego koledzy z zespołu. Potem taki kandydat dostaje pytanie o opowiedzenie o którymś projekcie, to okazuje się, że robił jakieś proste rzeczy, a za resztę rzeczy opisanych w CV odpowiadał kolega z zespołu.

Pytania rekrutacyjne dla frontend developera

Rozmowa techniczna z frontend developerem często wygląda podobnie. Pojawiają się pytania o JavaScript, React, wydajność czy architekturę aplikacji.

Dobry rekruter nie sprawdza jednak tylko wiedzy. Sprawdza sposób myślenia, rozumienie problemów i doświadczenie projektowe.

Poniżej znajdziesz 10 pytań, które często pojawiają się na rozmowach frontendowych. Przy każdym pytaniu pokazuję też:

  • czego oczekiwać od Juniora
  • czym powinien wykazać się Mid
  • jak odpowiada Senior

To podejście pomaga szybko ocenić poziom kandydata.

0. Opowiedz o ostatnim problemie jaki napotkałeś i jak go rozwiązałeś

Pytanie na rozluźnienie, bo zawsze są emocje i stres. To pytanie pozwala mi też sprawdzić jak ktoś podchodzi to rozwiązywania problemów. W czym czuje się mocniejszy, jak myśli, jak tłumaczy. Jeżeli ktoś wysyła CV na frontenda, a jest fullstackiem i mówi jakie problemy na backendzie rozwiązywał, no to można się domyślić z czego jest mocniejszy. To pytanie weryfikuje też trochę CV, zakres obowiązków jakie kandydat miał w poprzednich projektach.

1. Czym różni się var, let i const?

To jedno z klasycznych pytań o podstawy JavaScript.

Junior

Powinien znać podstawowe różnice.

  • var ma zakres funkcji
  • let i const mają zakres blokowy
  • const nie pozwala zmienić referencji zmiennej

Mid

Powinien rozumieć dodatkowe aspekty:

  • hoisting
  • temporal dead zone
  • różnice w zachowaniu w pętlach
  • mutowalność obiektów w const

Senior

Powinien umieć wyjaśnić konsekwencje architektoniczne:

  • dlaczego var jest problematyczny w dużych aplikacjach
  • jak const poprawia czytelność kodu
  • jak reguły lintera wymuszają dobre praktyki

2. Co to jest closure w JavaScript?

Closure to jedno z najważniejszych pojęć w JavaScript.

Junior

Powinien wiedzieć, że: funkcja ma dostęp do zmiennych ze swojego zakresu zewnętrznego.

Mid

Powinien podać praktyczne przykłady:

  • prywatne zmienne
  • funkcje fabrykujące
  • debounce / throttle

Senior

Powinien rozumieć:

  • wpływ closure na zarządzanie pamięcią
  • problemy z stale closures w React
  • wzorce projektowe oparte o closure

3. Jak działa Virtual DOM?

Pytanie popularne przy rekrutacji do pracy z React.

Junior

Powinien wiedzieć, że:

  • Virtual DOM to reprezentacja DOM w pamięci
  • React porównuje zmiany i aktualizuje tylko potrzebne elementy

Mid

Powinien rozumieć:

  • reconciliation
  • diffing algorithm
  • znaczenie key w listach

Senior

Powinien wyjaśnić:

  • kiedy Virtual DOM nie poprawia wydajności
  • jak działa batching
  • różnice między Virtual DOM a podejściem np. signals

4. Co powoduje re-render komponentu w React?

Junior

Powinien wskazać:

  • zmianę state
  • zmianę props

Mid

Powinien wiedzieć:

  • jak działa React reconciliation,
  • czym jest memo,
  • kiedy zmiana referencji powoduje render.

Senior

Powinien umieć analizować:

  • problemy z render storms
  • optymalizację z useMemo, useCallback
  • strukturę komponentów w dużych aplikacjach

5. Co to jest event loop w JavaScript?

To pytanie sprawdza zrozumienie asynchroniczności.

Junior

Powinien wiedzieć, że JavaScript jest jednowątkowy i używa kolejki zdarzeń.

Mid

Powinien rozumieć:

  • różnice między microtasks i macrotasks
  • kolejność Promise vs setTimeout

Senior

Powinien znać:

  • wpływ event loop na wydajność UI
  • mechanizmy takie jak scheduler w React
  • strategie optymalizacji długich zadań

6. Jak optymalizować wydajność aplikacji frontendowej?

Junior

Powinien wskazać podstawy:

  • lazy loading
  • kompresję obrazów
  • code splitting

Mid

Powinien znać:

  • tree shaking
  • bundle analysis
  • caching

Senior

Powinien rozumieć:

  • Core Web Vitals
  • strategie SSR / SSG
  • monitoring wydajności produkcyjnej

7. Co to jest CORS i dlaczego istnieje?

Junior

Powinien wiedzieć:

  • że przeglądarka blokuje zapytania między domenami

Mid

Powinien wyjaśnić:

  • nagłówki CORS
  • preflight request

Senior

Powinien rozumieć:

  • implikacje bezpieczeństwa
  • konfiguracje w architekturze microservices

8. Jak zarządzać stanem w dużej aplikacji?

Junior

Powinien znać:

  • useState,
  • useContext.

Mid

Powinien używać:

  • Redux i znać paterny stosowane w nie np. featured based architecture,
  • Zustand
  • React Query – np. jak działa cache’owanie danych

Senior

Powinien mówić o:

  • separacji server state i client state,
  • architekturze store,
  • strategiach skalowania aplikacji.

9. Jak testować frontend?

Junior

Powinien znać:

  • testy jednostkowe
  • narzędzia jak Jest

Mid

Powinien stosować:

  • React Testing Library
  • testy integracyjne

Senior

Powinien rozumieć:

  • strategię testów
  • testy E2E
  • trade-off między testami a szybkością developmentu

10. Nietypowe pytanie: „Dlaczego czasem nie warto optymalizować kodu?”

To pytanie potrafi zaskoczyć kandydatów.

Junior

Często odpowiada: bo kod może być trudniejszy do czytania.

Mid

Powinien zauważyć:

  • optymalizacja przed czasem jest błędem
  • ważniejsza jest czytelność

Senior

Powinien powiedzieć coś w stylu: „Najpierw mierzymy problem”, „optymalizujemy tylko tam, gdzie są realne bottlenecks”.

To pokazuje dojrzałość inżynierską.

Info

Jak widać, nie są to jakieś ciężkie pytania. W większości przypadków były one początkiem dyskusji.

Zadania live coding.

W zależności od zapotrzebowania w firmie przeprowadzaliśmy godzinne sesje live codingu. Kandydat dostawał zadanie w formie pliku md z wymaganiami, api, kontraktem itp. Trzeba było zaimplementować prosty feature, wiecie jak w normalnej pracy. Dostajesz zadanie, czytasz, dopytujesz o szczegóły itp. Podczas takiej sesji pojawiało się wiele ciekawych dyskusji jak i momentów, że już wiedzieliśmy, że kandydat mocno podkręcił swoje CV.

Jak oceniać odpowiedzi kandydatów?

Najlepsi frontend developerzy:

  • tłumaczą dlaczego, a nie tylko co
  • podają przykłady z projektów
  • potrafią mówić o trade-offach

Dlatego podczas rozmowy warto zadawać pytania pogłębiające, np.:

  • „Dlaczego tak uważasz?”
  • „Jak rozwiązałeś to w poprzednim projekcie?”

Dzięki temu szybko zobaczysz rzeczywisty poziom doświadczenia kandydata.

Opublikowano · Znalazłeś błąd? Napisz
Piotr Cichosz
Autor

Od ponad 10 lat jestem zaangażowany w świat elektroniki użytkowej, zdobywając szeroką wiedzę i doświadczenie w testowaniu oraz recenzowaniu najnowszych technologii. Moja kariera obejmuje pracę w wiodących firmach technologicznych, gdzie specjalizowałem się…

Czytaj dalej
← Poprzedni Przekierowanie 301 (Redirect 301) – jak działa i jak używać go w SEO