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
readonlyblokuje 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->authorw pętli). Wykryjesz go przez Laravel Debugbar, Telescope alboDB::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ę
syncoddatabasew kontekście kolejek i kiedy użyjeszredis?syncwykonuje zadanie natychmiast (dev/testy),databasetrzyma zadania w tabeli (proste wdrożenia bez Redisa),redisdaje 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ę
whereHasodwithi kiedy które wybierzesz?withładuje relacje (eager loading),whereHasfiltruje po istnieniu powiązanych rekordów. Częsty błąd to używaniewhereHastam, gdzie wystarczywithCountlub 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.