Jeśli planujesz w przyszłości zmienić firmę pewnie chcesz mieć pewność, że w nowym miejscu będzie Ci się dobrze pracowało. Część rzeczy dowiesz się ze strony firmowej bądź z opinii w necie, ale niektórych rzeczy będziesz mógł się dowiedzieć dopiero na rozmowie. Poniżej znajdziesz super pytania, które pozwolą Ci nie zmarnować tej okazji. Pamiętaj, że już samo postawienie odpowiednich pytań na rozmowie świadczy o Twojej świadomości istnienia pewnych zagadnień oraz być może wiedzy na ich temat.
Jak kiedyś może będziesz miał okazję zobaczyć w House of Angular nie boimy się odpowiedzi na te pytania :)
P.S. Nie zadawaj wszystkich pytań na jednej rozmowie :D
- jakiej wersji Angulara (major) używacie w waszych projektach?
1.1. jeśli starsza niż najnowsza wersja to dlaczego?
1.2. jaką macie strategię na podnoszenie wersji? - Czy pracujecie również nad Progressive Web Applications?
2.1. Jeśli tak, czy używacie Angular Service Worker lub Workbox? - Czy pojawiają się projekty związane z:
3.1. NativeScript
3.2. Electron
3.3. Ionic - Czy piszecie własne Angular Schematics? Jeśli tak, to prośba o przykłady.
- Czy zdarza Wam się tworzyć Angular Elements? Jeśli tak, to prośba o przykłady.
- Czy korzystacie z Angular Universal Server Side Rendering?
- Czy korzystacie z bibliotek do zarządzania stanem aplikacji? (np. ngrx, ngxs, Akita)
7.1. Jeśli tak, to prośba o zgrubny opis, w jaki sposób i w jakim stopniu aplikacja z nich korzysta. - Czy stosujecie Angular Style Guide?
8.1. Jeśli tak, to czy są jakieś wyjątki i gdzie są dokumentowane? - Jaka jest struktura projektu / projektów, np. czy jest monorepo?
9.1. Kto decyduje o strukturze projektu? - Czy aktywnie używacie linterów?
10.1. Jeśli tak to jakich i z jakimi najważniejszymi ustawieniami (np. cyclomatic-complexity, no-any itp.)? - Czy macie w projektach obsługę wielu języków i czego używacie do internacjonalizacji? Standardowe Angular i18n czy np. ngx-translate, transloco?
- Czy dbacie o accessibility, np. wspieracie screen readery (aria attributes)?
- Czy macie własny config do budowania aplikacji, czy używacie domyślnego buildera z Angular Devkit?
- Jakie przeglądarki (zazwyczaj) wspieracie?
- Czy jest utrzymywana wewnętrzna baza wiedzy, z której można czerpać informacje na temat standardów, konwencji jak również innych wykorzystywanych rozwiązań?
15.1. Kto jest odpowiedzialny za ustalanie standardów i konwencji? - Czy używacie jakichś bibliotek dla UI (Angular Material, PrimeNG etc.)? Jeśli tak, to jakich?
- Czy używacie Prettiera?
- Czy piszecie testy jednostkowe? Jeśli tak, to:
18.1. jakie artefakty testujecie jednostkowo
18.2. jakich frameworków używacie (Karma + Jasmine a może Jest?)
18.3. jakie jest średnie pokrycie testami w projekcie, czy są jakieś wymogi odnośnie minimalnego pokrycia?
18.4. czy stosujecie TDD? - Czy korzystacie z testów E2E? Jeśli tak, to jakie technologie do tego wykorzystujecie? (np. Protractor, Cypress)
- Czy w firmie pracują dedykowani UX designerzy?
- Czy Angular developer w Waszej firmie jest odpowiedzialny również za stylowanie? Jeśli tak to w jakim stopniu:
21.1. drobne stylowanie i poprawki,
21.2. kompleksowe stylowanie “od zera”,
21.3. praca z programami graficznymi i cięcie layoutu. - Czy używacie jakichś narzędzi do audytu szeroko pojętej wydajności aplikacji (np.webpack-bundle-analyzer, lighthouse, https://web.dev/, http://webpagetest.org/ etc.)?
- Czy dokumentujecie kod i macie jakieś standardy związane z tym tematem?
- Czy posiadacie CI/CD? Jeśli tak, to za co jest odpowiedzialne, co jest weryfikowane,jakie są kroki itp.
- Jaki jest flow developmentu w Waszej firmie? Czy praktykujecie wprowadzanie nowego kodu przez pull requesty, weryfikację przez code review, czy zdarza się pair programming etc.?
25.1. czy każdy kod jest przeglądany przynajmniej przez kogoś z tym samym lub większym doświadczeniem? - Wspieracie / tworzycie Open Source?
- Czy uczestniczycie w konferencjach zarówno jako członkowie lub prelegenci na tematy związane z Angularem?
- Czy organizujecie wewnętrzne prezentacje, na których pracownicy mogą dzielić się wiedzą z projektów robionych w pracy lub po godzinach? Także czy organizowane są np. sesje wspólnego oglądania konferencji online i późniejsze dyskusje?
- Czy developer ma gwarantowany, dedykowany czas na samorozwój?
- Jakie technologie są wykorzystywane przy komunikacji z backendem?
30.1. REST
30.2. GaphQL
30.3. WebSocket - Jak dokumentowane jest API?
- Czy API jest zwykle robione in-house czy przez podmioty zewnętrzne?
32.1. Jakie technologie są najczęściej używane na backendzie przy developmencie API dla Angulara?
32.2. Kto podejmuje decyzje odnośnie struktury API (endpointy, postać danych itd.), czy frontend developerzy są włączeni w ten proces? - Czy posiadacie dedykowanych testerów manualnych/automatycznych?
33.1. Czy testerzy potrafią używać konsoli developerskiej (np. w celu weryfikacji prostych błędów backendu)? - Jakie macie podejście do optymalizacji aplikacji?
- Jakie jest podejście do ewentualnej refaktoryzacji kodu i zmniejszania długu technologicznego?
- Czy jest narzucony system operacyjny, IDE?
- Czy tworzycie i utrzymujecie własne biblioteki wykorzystywane między projektami?
- Jak zwykle prowadzony/zarządzany jest projekt? Jaka metodyka jest używana?
38.1. Ilość i rodzaj spotkań
38.2. Struktura organizacyjna
Jeśli masz jakieś pytania, które Ty zadajesz na rozmowie, dopisz je do naszej listy.
Zestaw tych pytań jest rozszerzeniem i rozbudowaniem pytań z tego repozytorium: https://github.com/lkostrowski/job-interview-questions-to-ask-companies