Czy masz doświadczenie z Dockerem?
Frontend
Opowiedz o niestandardowym komponencie select.
Zadanie z RxJS: jest Observable, na który subskrybują trzy razy w szablonie. Jak zrobić jedno subskrypcję zamiast trzech, nie używając bezpośrednio pipe async? Czym różnią się Subject i BehaviorSubject od zwykłego Observable (gorący vs zimny strumień)?
Jak rozwiązać problem z trackBy, jeśli w tablicy są duplikaty i nie ma unnego identyfikatora?
Zadanie CSS: trzy bloki div ułożone jeden pod drugim, każdy z marginesem góry 10px i marginesem dołu 30px. Jaka będzie odległość między blokami? Co się zmieni, jeśli zamienimy div na span?
Zadanie z JavaScript: napisać funkcję, która przyjmuje dwie tablice i zwraca tablicę elementów występujących tylko w jednej z nich (różnica symetryczna). Oszacować złożoność algorytmu.
Czy masz doświadczenie w pisaniu własnych bibliotek UI lub bibliotek komponentów?
Komponent nadrzędny używa strategii OnPush, komponent podrzędny — Default. Co się dzieje z komponentem podrzędnym przy zmianach? W jakim kierunku odbywa się sprawdzanie wykrywania zmian — od góry do dołu czy od dołu do góry?
Jak będzie się zachowywał render przy zmianie elementu listy? Do czego służy trackBy?
Opowiedz o niestandardowych komponentach, które napisałeś na podstawie biblioteki NgZorro (NzZor). Na przykład, datepicker z ograniczeniami biznesowymi na weekendy.
Zadanie z TypeScript: jest klasa Animal z metodami move i bark, oraz funkcja process, która przyjmuje zwierzę typu Animal i wywołuje jego metodę bark. Czy wystąpi błąd TypeScript? Jak poprawnie zawęzić typ? Jak napisać type guard?
Zadanie z JavaScript: określić typ (typeof) dla różnych wyrażeń — new Array(), obiekt, Map, liczba, Infinity, wynik konkatenacji łańcuchów i liczb.
Jaka jest różnica między strategiami wykrywania zmian OnPush i Default? Dlaczego używać OnPush?
Dlaczego w Twoim projekcie nie następuje przejście na nowszą wersję Angular?
Zadanie z RxJS: określić wynik przy użyciu combineLatest z dwoma strumieniami o różnych opóźnieniach. Co wyświetli forkJoin?
Opowiedz o swoim doświadczeniu w ostatnich 3-4 latach. Jakie zadania rozwiązywałeś?
Czy obsługa klawiatury została zaimplementowana w niestandardowym datepickerze?
Wspomniałeś o kilku niezależnych aplikacjach frontend — czy to mikrofrontendy? Czy pracowałeś z Module Federation?
Zadanie z RxJS: optymalizacja łańcucha operatorów (pipe z filter, toLowerCase, switchMap). Wyjaśnij, dlaczego używany jest switchMap, czym różni się od concatMap i exhaustMap. Który operator jest lepszy do obsługi żądań płatności?
Dlaczego odchodzisz z obecnego miejsca pracy i czego szukasz na nowym?