ix
ix

informatix

EN version Porozmawiajmy o projekcie
Strona główna / Blog / Pytania rekrutacyjne Laravel i PHP — rozmowa techniczna [202...
• 10 min czytania •

Pytania rekrutacyjne Laravel i PHP — rozmowa techniczna [2026]

Zestaw pytań rekrutacyjnych z Laravel i PHP, które faktycznie padają na rozmowach technicznych: PHP 8, Service Container, Eloquent i N+1, kolejki, testy, architektura — z krótkimi odpowiedziami.

Rozmowa techniczna z Laravel to zwykle 60–90 minut, w których rekruter sprawdza trzy rzeczy: rozumienie frameworka (nie dokumentacji), umiejętność rozwiązywania problemów i doświadczenie produkcyjne. Poniżej znajdziesz zestaw pytań, które faktycznie padają na rozmowach w 2026 roku — pogrupowane tematycznie, z krótkimi odpowiedziami i wskazówkami, czego naprawdę szuka pytający.

To materiał dla kandydatów na każdym poziomie: junior dostanie pytania z pierwszej i drugiej sekcji, mid z całego zestawu, a senior dodatkowo pytania o architekturę i decyzje projektowe. Jeśli dopiero planujesz start, zacznij od roadmapy: jak zostać programistą Laravel.

Jak wygląda rozmowa techniczna z Laravel?

Proces rekrutacyjny w większości firm wygląda podobnie.

  • Rozmowa wstępna (20–30 minut) — doświadczenie, oczekiwania finansowe, forma współpracy.
  • Zadanie domowe lub live coding — mały projekt, bugfix albo rozbudowa istniejącego kodu.
  • Rozmowa techniczna (60–90 minut) — pytania z PHP, Laravel, baz danych i testów; często przy wspólnym czytaniu kodu.
  • Rozmowa architektoniczna (dla mid/senior) — projekt systemu, decyzje technologiczne, skalowanie.
  • Oferta — widełki i forma zatrudnienia.

Wskazówka: Na rozmowie liczy się sposób myślenia, nie wyrecytowana definicja. Jeśli nie znasz odpowiedzi, powiedz, jak byś ją znalazł — dokumentacja, kod źródłowy frameworka, test w repozytorium. To robi lepsze wrażenie niż zgadywanie.

Pytania z PHP 8

  • Czym różni się == od === i dlaczego w kodzie produkcyjnym używamy ===? == porównuje wartości po konwersji typów (luźne porównanie), === porównuje wartość i typ. Luźne porównania prowadzą do błędów (np. 0 == "foo" w starszych wersjach), więc w kodzie używa się ścisłych porównań, a narzędzia typu PHPStan to wymuszają.

  • Do czego służą enumy w PHP 8.1+ i kiedy ich użyjesz zamiast stałych? Enumy dają typowany zbiór wartości (np. statusy zamówienia), wspierają metody i implementację interfejsów. Zamiast stałych użyjesz ich wszędzie tam, gdzie wartość ma ograniczony, znany zbiór — wtedy błąd wychwyci analiza statyczna, a nie produkcja.

  • Co to są konstruktory readonly i promocja właściwości? Promocja właściwości pozwala zadeklarować pola klasy w konstruktorze, a readonly blokuje ich modyfikację po inicjalizacji. Razem dają zwięzłe, niemutowalne DTO — standard w nowoczesnym Laravelu (form requesty, DTO, value objecty).

  • Jak działają atrybuty (attributes) w PHP 8? To natywne metadane dołączane do klas, metod i właściwości, czytane przez refleksję. W Laravelu używa się ich do routingu, walidacji i uprawnień; w ekosystemie — np. w mapowaniu DTO.

  • Czym jest PDO i jak chroni przed SQL Injection? PDO to warstwa dostępu do baz danych z parametrami zapytań (prepared statements). Wartości przekazywane jako parametry nigdy nie są sklejane z zapytaniem, więc dane użytkownika nie mogą zmienić jego struktury. To fundament bezpieczeństwa — więcej w artykule bezpieczeństwo aplikacji Laravel — OWASP Top 10.

Pytania z Laravel — framework i Ekosystem

  • Czym jest Service Container i jaką rolę pełni w Laravel? Kontener IoC zarządza tworzeniem obiektów i wstrzykiwaniem zależności. Dzięki niemu klasy nie tworzą zależności same — dostają je z zewnątrz, co ułatwia testowanie i podmianę implementacji.

  • Wyjaśnij cykl życia żądania w Laravel. Żądanie wchodzi przez public/index.php, przechodzi przez middleware HTTP, trafia do routera i kontrolera (lub akcji), wynik przechodzi przez warstwę odpowiedzi i middleware w drodze powrotnej. Po drodze działają providery usług i kontener.

  • Do czego służy middleware i podaj przykłady z życia. Middleware to warstwy przetwarzające żądanie przed lub po kontrolerze: autoryzacja, rate limiting, logowanie, CORS, wymuszenie JSON. Własny middleware piszesz np. do mierzenia czasu odpowiedzi albo blokowania ruchu z określonych źródeł.

  • Czym jest N+1 problem i jak go wykryć w Laravelu? To sytuacja, w której pętla wykonuje dodatkowe zapytanie na każdy rekord (np. $post->author w pętli). Wykryjesz go przez Laravel Debugbar, Telescope albo DB::listen. Rozwiązanie: eager loading (with()), withCount(), a przy złożonych przypadkach — jawne zapytania z joinami.

  • Jak działają kolejki (queues) i kiedy ich użyjesz? Ciężkie operacje (maile, generowanie plików, integracje) przenosisz do zadań przetwarzanych asynchronicznie przez workery. W produkcji używa się Redisa i Horizona do monitoringu. Zasada: żądanie HTTP ma być szybkie, a wszystko, co może trwać, idzie do kolejki.

  • Do czego służą eventy i listenery? Do rozdzielenia odpowiedzialności: akcja (np. złożenie zamówienia) emituje zdarzenie, a niezależne listenery robią swoje (mail, faktura, synchronizacja). Kod pozostaje otwarty na rozbudowę bez modyfikacji procesu głównego.

  • Czym różni się sync od database w kontekście kolejek i kiedy użyjesz redis? sync wykonuje zadanie natychmiast (dev/testy), database trzyma zadania w tabeli (proste wdrożenia bez Redisa), redis daje wydajność i narzędzia jak Horizon (produkcja). Wybór zależy od skali i infrastruktury.

  • Jak zabezpieczasz API w Laravelu? Sanctum dla SPA i tokenów API, Passport dla pełnego OAuth2, rate limiting, walidacja wejścia, wersjonowanie. Do tego zasady: nie logować danych wrażliwych, nie zwracać wyjątków do klienta, ograniczać uprawnienia tokenów.

Pytania z baz danych i SQL

  • Czym różni się whereHas od with i kiedy które wybierzesz? with ładuje relacje (eager loading), whereHas filtruje po istnieniu powiązanych rekordów. Częsty błąd to używanie whereHas tam, gdzie wystarczy withCount lub join — potrafi wygenerować kosztowne podzapytania.

  • Jak zoptymalizujesz wolne zapytanie? Zaczynasz od EXPLAIN (plan zapytania), sprawdzasz indeksy, eliminujesz N+1, ograniczasz kolumny (select), paginujesz. Dopiero potem cache — najpierw naprawiasz zapytanie, potem je cache'ujesz.

  • Kiedy indeks nie pomoże? Gdy zapytanie i tak skanuje większość tabeli, gdy funkcja na kolumnie blokuje użycie indeksu (WHERE YEAR(created_at) = ...), gdy kolumna ma niską selektywność. Indeks to narzędzie, nie zaklęcie.

  • Czym są transakcje i kiedy ich użyjesz? Grupują operacje w atomową całość — albo wszystkie się udadzą, albo żadna. Używasz ich wszędzie tam, gdzie częściowy zapis psuje dane: płatności, stany magazynowe, przenoszenie środków.

  • PostgreSQL czy MySQL — co wybierzesz i dlaczego? Odpowiedz szczerze, z uzasadnieniem projektowym: PostgreSQL daje JSONB, lepsze typy i pełnotekstowe wyszukiwanie; MySQL jest prostszy w hostingu i szeroko wspierany. Porównanie znajdziesz w artykule PostgreSQL czy MySQL dla Laravel.

Pytania z testów i jakości kodu

  • Czym różni się test jednostkowy od feature testu? Test jednostkowy sprawdza izolowaną klasę (bez bazy i frameworka), feature test przechodzi przez HTTP i pełny stack aplikacji. W Laravelu większość wartości dają feature testy — sprawdzają to, co faktycznie dostaje użytkownik.

  • Jak testujesz coś, co wysyła maila albo uderza do zewnętrznego API? Fasadami i fake'ami: Mail::fake(), Http::fake(), Queue::fake(). Testy nie mogą zależeć od zewnętrznych usług — inaczej są wolne i niestabilne.

  • PHPUnit czy Pest? Oba działają na tym samym silniku; Pest daje czytelniejszą składnię i lepszy DX. W praktyce liczy się to, że testy w ogóle są — pokrycie krytycznych ścieżek biznesowych waży więcej niż wybór narzędzia. Więcej w artykule testy automatyczne w Laravel — PHPUnit i Pest.

  • Co to jest CI/CD i co powinno się dziać po każdym pushu? Pipeline uruchamia testy, analizę statyczną (PHPStan/Larastan) i linter, a przy merge do głównej gałęzi — wdrożenie. Sens: błędy wychwytuje maszyna, zanim zobaczy je użytkownik. Konfigurację opisaliśmy w artykule CI/CD i DevOps dla Laravel.

Pytania dla seniorów — architektura i decyzje

  • Jak zaprojektowałbyś system, który ma przetwarzać milion zadań dziennie? Odpowiedź powinna zawierać: rozdzielenie API i workerów, kolejkę (Redis/SQS) z priorytetami, idempotentność zadań, retry z backoffem, monitoring i alerty, poziome skalowanie workerów.

  • Kiedy rozbijesz monolit na usługi, a kiedy nie? Monolit modularny wygrywa dopóki zespół i domena są spójne. Rozbicie ma sens przy niezależnych domenach, różnych profilach skalowania albo wielu zespołach. Przedwczesna mikroserwicyzacja to najdroższy błąd architektoniczny — opisujemy to w artykule Strangler Fig — modernizacja moduł po module.

  • Jak przeprowadzisz migrację dużej tabeli bez przestoju? Migracje rozłożone w czasie: dodanie kolumny nullable, backfill partiami, przełączenie odczytów, usunięcie starej kolumny. Plus testy na kopii produkcyjnej i plan rollbacku.

  • Opowiedz o najtrudniejszym błędzie produkcyjnym, jaki naprawiłeś. Tu nie ma jednej dobrej odpowiedzi — rekruter sprawdza, czy umiesz opisać problem, proces diagnozy i wniosek na przyszłość. Przygotuj dwie–trzy historie z liczbami.

Jak przygotować się do rozmowy — checklista

  • Przejrzyj własne projekty i przygotuj 3 historie: problem → decyzja → efekt (z liczbami).

  • - Powtórz podstawy: cykl życia żądania, Eloquent, kolejki, middleware, testy.

  • Przećwicz czytanie cudzego kodu na głos — to częsty format zadania.

  • Przygotuj pytania do firmy: proces wdrożeń, testy, code review, plan rozwoju.

  • Sprawdź widełki, żeby nie negocjować w ciemno — aktualne stawki znajdziesz w artykule programista Laravel — zarobki.

Najczęściej zadawane pytania

Ile pytań technicznych jest na rozmowie o pracę Laravel?

Zwykle 10–20 pytań w 60–90 minut, plus zadanie praktyczne. Junior dostaje pytania z podstaw PHP i Laravel, mid z całego stacku (bazy, testy, kolejki), a senior dodatkowo pytania architektoniczne i o doświadczenie produkcyjne.

Czy na rozmowie w Laravelu pytają o SQL?

Tak, praktycznie zawsze. Rekruterzy sprawdzają rozumienie indeksów, problemu N+1, transakcji i różnic między PostgreSQL a MySQL. Nawet jeśli na co dzień pracujesz na Eloquencie, pytania o czysty SQL są standardem.

Jakie pytania zadają juniorowi na rozmowie technicznej?

Junior dostaje pytania o podstawy: cykl życia żądania, routing, Eloquent, walidację, Git i podstawy SQL. Nie musi znać architektury — musi pokazać, że rozumie fundamenty i potrafi się uczyć. Zadanie domowe waży zwykle więcej niż teoria.

Czy warto uczyć się pytań rekrutacyjnych na pamięć?

Nie — rekruterzy szybko wyłapują wyuczone odpowiedzi. Lepiej zrozumieć mechanizmy (dlaczego tak działa Service Container, po co jest kolejka) i przećwiczyć odpowiadanie własnymi słowami na przykładach z własnych projektów.

Co zrobić, gdy nie znam odpowiedzi na pytanie techniczne?

Powiedz wprost, że nie znasz, i pokaż proces dojścia do odpowiedzi: jak byś sprawdził dokumentację, gdzie szukał w kodzie frameworka, jak zweryfikował testem. To odpowiada realnej pracy programisty i często waży więcej niż poprawna odpowiedź z pamięci.


👉 Szukasz pracy jako programista Laravel? Rozwijamy własne produkty i projekty klienckie w Laravel — napisz na kontakt@informatix.com.pl lub przez formularz kontaktowy.

👉 Chcesz sprawdzić, ile możesz zarabiać? Zobacz widełki programisty Laravel i widełki programisty PHP.

📖 Zobacz również: jak zostać programistą Laravel — roadmapa, testy automatyczne w Laravel oraz bezpieczeństwo aplikacji Laravel.

Darmowy PDF

Checklista wymagań do wyceny aplikacji

12 pytań kontrolnych, które warto przygotować przed rozmową z wykonawcą — szybsza wycena, mniej ukrytych kosztów.

Powiązane wpisy