Jakiś czas temu zacząłem nową pracę - na rozmowie wyszedłem w miarę dobrze, ja byłem zadowolony, rekruterzy też. Dowiedziałem się, że mają jakiś tool który w jakimś stopniu zrzuca odpowiedzialność za biznes z programistów. Przyjechałem do biura. Po trzech dniach dostałem dostęp do kodu i jakieś zadanie polegające na wyczyszczeniu czegoś w Storze. Myślałem sobie, no ok - wygląda na proste. Odpalam kod, potem debuggera żeby namierzyć błąd - znalazłem. Zorientowałem się od razu jak wygląda kod i, że nie da się tego zrobić w miarę fajny sposób bez gruntownego refactoru (dość duża część aplikacji z tego korzystała + przez ten tool za bardzo nie można było ruszać miejsca w którym ten błąd był). W międzyczasie znalazłem kilka innych niezbyt fajnych "pomysłów". Po tygodniu postanowiłem, że to nie ma sensu i, że Ja się będę tam męczył, nic nie napiszę i lepiej dla mnie i firmy, żebym poszukał czegoś nowego (na moje usprawiedliwienie mam to, że nie byłem pierwszy który odszedł po tygodniu). Ostatecznie umowę rozwiązaliśmy po 2 tygodniach.
Powysyłałem kilka CV, odezwałem się na LinkedInie do kilku HR'owców, w ciągu dwóch tygodni dostałem 2 propozycje pracy. Przyjąłem jedną z nich, wymagane było NgRx
, Microfrontend
, Angular 11+
. Projekt - przepisanie aplikacji z AngularaJs
do Angulara
. Miesiąc już minął i widzę, że kolejny niezbyt fajny przypadek. Okazuje się, że dalej trzeba wspierać IE11
, w projekcie panuje burdel (jeśli chodzi o kod), korzystanie z zewnętrznych komponentów jest praktycznie niemożliwe, a nawet jeśli by było - to problem jest taki, że i tak ich użyć nie można bo style się nie będą zgadzać w pozostałych miejscach aplikacji. Z Angulara
to nawet z RouterModule
nie można było korzystać bo AngularJS
przeszkadzał (nie ja konfigurowałem routing, tutaj na zmiany raczej nie ma szans bo nikt nie wie jak to dobrze zrobić). Niby jest Typescript
, a wygląda to jak zwykły JS
bo w wielu miejscach nawet nie ma typu określonego. Zaczynam zadanie, próbuję przepisać jakiś komponent i kończy się tak jak zwykle, że się nie da bo brakuje komponentu. Myślałem nad stworzeniem osobnego modułu i projektu, gdzie byłyby trzymane takie komponenty, ale z tego co się dowiedziałem nie bardzo jest jak. Zacząłem przepisywać brakujący komponent, skończenie go zajmie mi z 3-4 dni, ale brakujących komponentów będzie dość dużo. Dodatkowo logikę + style trzeba pisać pod IE11
- co jest dość męczące. Jeszcze kilka innych dość utrudniających rzeczy by się znalazło.
Znowu myślę nad zmianą pracy / nauką jakiegoś nowego języka, tylko to już będzie drugie odejście w ciągu trzech miesięcy. Czy da się jakoś zminimalizować ryzyko natrafienia na takie firmy w przyszłości? Jeśli tak, to jak? Doświadczenia mam 2 lata, coś tam umiem - bo na 7 rozmów technicznych w ciągu tych 3 miesięcy, dostałem 5 propozycji pracy. Pierwszą pracę zmieniłem po 2 latach, tylko to był dość nowy projekt więc legacy kodu praktycznie nie było (jedyne minusy to potrzeba dostosowania się do wszystkiego i fatalne API), jak odchodziłem - wydaje mi się, że wszystko zostawiłem w dość dobrym stanie i dość dużo rzeczy przemyślałem i zautomatyzowałem, PO i inni programiści byli raczej zadowoleni.
szatkusObject
albo* void
alagnerszatkusany
w TS oznacza karę śmierci na code review.