
Z Norbertem Towiańskim, programistą Embedded w SolveQ rozmawia Andrzej Rodzin.
Jaki był powód, dla którego zdecydowałeś się dołączyć do SolveQ?
Kiedy zmieniałem pracę miałem kilka ofert z różnych firm. Wybierając tą, z którą będę chciał współpracować zwracałem szczególną uwagę na projekt, nad jakim będę pracować. Moim zdaniem to bardzo ważne, żeby lubić to co się robi, zwłaszcza że spędzamy nad tym codziennie po kilka godzin.

Pieniądze, projekty którymi będziesz się zajmował i atmosfera w pracy: co jest u Ciebie na pierwszym miejscu, a co – na ostatnim?
Jeśli miałbym wybierać, to projekty w tym zestawieniu są najbardziej istotne. Pieniądze mogą być dobrą motywacją, ale nie dadzą ci satysfakcji na dłuższą metę. Podobnie jest z atmosferą – możesz trafić na fantastyczne osoby, z którymi możesz nawiązać nawet przyjaźnie. Tylko co z tego, skoro z reguły nie spędza się 90% czasu w pracy na rozmowach przy ekspresie. Większość czasu to projekt i zadania, z którymi musisz się zmierzyć. Nawet jeśli dostajesz za nie dobre pieniądze, a ludzie wokół są pomocni, to niestety, ale to co robisz powinno ci sprawiać radość i satysfakcję. Oczywiście to tylko moje zdanie. Tak naprawdę jest to zestaw naczyń połączonych – wszystko musi ze sobą współgrać, przynajmniej w jakimś stopniu akceptowalności.
Czy uważasz, że to właśnie atmosfera w firmie jest najtrudniejsza do wyczucia zanim się do niej nie dołączy?
Myślę, że tak, choć jeśli na rozmowie kwalifikacyjnej są obecni koledzy z przyszłego zespołu, to do pewnego poziomu da się wyczuć, z jakimi ludźmi będziesz pracował. Pamiętajmy, że rozmowa kwalifikacyjna to dialog i powinniśmy też zadawać pytania.
Czy przed rozpoczęciem pracy w nowej firmie sprawdzasz jej profile w mediach społecznościowych?
Z pewnością warto sprawdzić jak najwięcej informacji na temat firmy zanim pójdziemy na rozmowę kwalifikacyjną. Osobiście bardzo często pytałem wśród moich znajomych czy znają tę firmę albo mieli z nią do czynienia, ale oczywiście są też inne źródła informacji. Kilkukrotnie zdarzało się, że dostawałem oferty pracy w firmach, po czym konsultowałem ten wybór ze znajomymi, którzy odradzali mi pracę lub projekt, którym miałbym się zajmować. Myślę, że jest to niezwykle istotne, żeby sprawdzać firmę zanim przyjmiemy ofertę.
A co jeśli na temat danej firmy nie ma informacji wśród znajomych czy opinii w internecie?
Wtedy jest to pewna loteria, ale trzeba pamiętać, że zawsze możemy zrezygnować z pracy. Natomiast wydaje mi się, że istotne jest, aby dać firmie szansę i nie odchodzić po miesiącu. Znam przypadki, gdy osoby po miesiącu pracy były sceptycznie nastawione, a po kolejnych dwóch-trzech nie zamieniłyby jej na nic innego.
To co to był za projekt, który tak bardzo Ci się spodobał, że zdecydowałeś się dołączyć do SolveQ?
Na pierwszym etapie rozmów dostałem informację, że będę pracował przy projekcie GPS trackera dla psów w Norwegii. Było to dla mnie o tyle ciekawe, że jestem osobą aktywną sporo biegam i gram w squasha, więc podczas moich codziennych aktywności mogę testować urządzenie.
Masz psa?
Nie, ale mam kota.
Biega z Tobą?
Nie, zostaje w domu 🙂 Już po pierwszej rozmowie wiedziałem, że przy testowaniu tego urządzenia będę mógł połączyć ze sobą dwa obszary, które mnie interesują: programowanie i sport.
Czyli jest to tracker, który śledzi, w którym miejscu aktualnie znajduje się pies?
Tak, dokładnie. Dodatkowo jest dostępny tryb spaceru i geofence, w którym użytkownik może ustawić na mapie wirtualne ogrodzenie, a następnie otrzyma powiadomienie, że pies przekroczył granicę tego obszaru.
A czym się ten tracker różni od apple’owskiego AirTaga?
AirTag wykorzystuje do działania technologie Bluetooth oraz Ultra wide band. Są to zupełnie inne technologie niż w przypadku naszego trackera, jak również inne zastosowanie. AirTag idealnie sprawdzi się do szukania kluczy, portfela w domu. Oczywiście można go przypiąć do obroży psa, ale z uwagi właśnie na zastosowane technologie aktualna lokalizacja psa nie będzie tak responsywna jak w przypadku naszego produktu.
W trackerze zastosowaliśmy modem LTE, dzięki czemu użytkownik w czasie rzeczywistym wie, gdzie znajduje się jego pies. W przypadku AirTaga jest to niemożliwe, ponieważ łączy się z innymi iPhone’ami i jego lokalizacja jest uzależniona właśnie od nich.
Czyli z takim trackerem pies już się nie zgubi?
No będzie ciężko, chyba, że wyładuje się mu bateria w trackerze, co wciąż jest wyzwaniem w projekcie. Właśnie niewątpliwą zaletą AirTaga jest jego długość pracy na baterii, która wynosi około roku. Nasz tracker z uwagi na zastosowany modem LTE-M oraz GPS wytrzymuje do 15 godzin w trybie ciągłego szukania psa, co i tak jest dobrym wynikiem w porównaniu z konkurencją. Jesteśmy w czołówce producentów trackerów pod względem czasu działania akumulatora, ale oczywiście nie spoczywamy na laurach i próbujemy wydłużyć ten czas najbardziej jak się da. Te kilkanaście godzin powinny wystarczyć w większości przypadków na odnalezienie psa.
A co jeśli wskoczy w międzyczasie do rzeki?
Tracker jest wodoodporny, posiada certyfikat IP68, więc z tym nie powinno być problemu.

Co doprowadziło Cię do tego miejsca, w którym się znajdujesz teraz – czy wybór studiów miał z tym coś wspólnego?
Jestem osobą, która w latach szkolnych nie specjalizowała się w jednej rzeczy, byłem w zasadzie dobry ze wszystkiego: zarówno z przedmiotów humanistycznych, jak i ze ścisłych.
Byłeś raczej ścisłowcem czy humanistą?
Raczej ścisłowcem, ale ciężko mi było wybrać tę jedną drogę, wszystko mnie interesowało.
Z jednej strony to było błogosławieństwo, a z drugiej przekleństwo. Byłem zagubiony i nie wiedziałem, co dokładnie chcę robić w życiu. Po liceum złożyłem dokumenty rekrutacyjne na studia i wybrałem budownictwo. Nie dlatego, że mnie to interesowało. Wszyscy mówili, że to dobry zawód. Nie dostałem się, tylko dlatego, że rozszerzona matematyka poszła mi nieco gorzej niż na maturach próbnych. Był to dla mnie duży zawód, ale później okazało się wybawieniem, ponieważ moim drugim wyborem była automatyka i robotyka.
Gdyby nie to, to zamiast bycia programistą budowałbyś teraz domy?
Pewnie tak. Na wszystkich próbnych maturach z matematyki miałem powyżej 90%, a na tej właściwej dostałem coś około 60%. Chyba los tak chciał, bo już po pierwszym roku studiów wiedziałem, że Automatyka i Robotyka jest kierunkiem bardzo przyszłościowym i to jest to, co chcę robić. Po ukończeniu pierwszego stopnia Automatyki i Robotyki jako kierunek magisterski wybrałem Informatykę co rozszerzyło moje pole zainteresowań. Niezależnie od tego, jaki z tych kierunków wybierze przyszły programista, myślę, że znajdzie pracę bez większego problemu.
W dalszym ciągu byś polecał te kierunki komuś, kto w tej chwili jest w liceum i się zastanawia na co pójść?
Generalnie to polecam dużo wcześniej zastanowić się, co chcesz w życiu robić. Oczywiście zawsze jest czas na zmianę, po prostu im później tym jest trudniej. Wiem, że brzmi to jak frazes, ale jest to istotne. Wydaje mi się, że problemem jest u nas także system edukacji, który kompletnie nie jest nastawiony na specjalizację i ukierunkowanie. Młodzi ludzie, nawet ci zdolni są potem zagubieni i nie wiedzą, co chcą robić.
Programista czy inżynier to z pewnością zawody, na które zawsze będzie zapotrzebowanie. Niektórzy twierdzą inaczej, ale nawet jeśli wejdziemy w strefę sztucznej inteligencji, to ktoś będzie musiał ją zaprogramować. Odkąd pamiętam mówiono, że programistów jest za dużo, niedługo zostaną bez pracy, a maszyny przejmą ich obowiązki. Prawda jest taka, że Komisja Europejska szacuje, że w samej Unii Europejskiej brakuje 600 tys. programistów. Nie mam szklanej kuli i nie wiem co będzie za 50 lat, ale na ten moment wydaje się, że to bardzo dobry kierunek dla młodych ludzi, ale nie tylko. Każdy, kto ma bardzo dużo silnej woli i jest pracowity może wejść do tej branży.

A gdyby ktoś chciał się przebranżowić? Mam kolegę, który pracował w logistyce, jest po matematykę, ma ścisły umysł. Zastanawiał się, czy warto zostać programistą i, jeśli tak, to czego się uczyć?
Moim zdaniem największym problemem takich osób jest motywacja. Motywacją większości osób, które chcą się przebranżowić na programistę są pieniądze. Wydaje mi się, że to największy problem. Z zewnątrz wydaje się, że ten zawód jest prosty i przyjemny – dostajesz każdego miesiąca okrągłą kwotę za klikanie w komputer. Nikt tu nie chce się porównywać do pielęgniarek, lekarzy czy górników, natomiast sama praca programisty na pewno nie należy do łatwych.
Z czego to wynika?
Przede wszystkim z faktu, że nie ma się efektu twojej pracy od razu. Kiedy malarz dostaje zlecenie pomalowania ściany to po ok. 2 godzinach ma tę ścianę pomalowaną. Po pracy dostaje pieniądze do ręki i ma natychmiastową satysfakcję, że coś zrobił. Efekt jest widoczny od razu. W przypadku programisty, niektóre zadania mogą trwać tygodniami i zwyczajnie zaczynasz być tym zmęczony.
Ile najdłużej trwało zadanie nad którym pracowałeś?
Pewnie było to coś związanego z hardwarem, najczęściej są to nieoczywiste bugi, które ciężko wykryć. Trzeba się do tego samodzielnie dokopać, a do tego społeczność Embedded jest znacznie mniejsza niż społeczność np. Javascript. Trzeba być wytrwały, nie dostaje się efektu od razu – nieraz po dwóch tygodniach dłubania masz wrażenie, że nic nie zrobiłeś, że jesteś słaby i się zastanawiasz czy w ogóle się nadajesz do tej pracy. Takie myśli mają nawet najlepsi programiści. Z biegiem lat da się to oczywiście wypracować, po jakimś czasie już wiesz, że rozwiązanie się znajdzie albo poprosisz o pomoc. Kwestia mentalnego nastawienia do zadania.
Wracając do pytania, w co ma pójść osoba, która zaczyna przygodę z programowaniem?
Wydaje mi się, że najbardziej popularnym językiem jest Javascript, Typescript, Python, ale też technologie mobilne takie jak: React czy Flutter. W backendzie jest to Java i C#, ale Node.js też staje się coraz bardziej popularny. W tych językach jest najwięcej ofert pracy obecnie, ale też jest największa konkurencja na rynku programistów.
A co Twoim zdaniem już niedługo będzie pieśnią przeszłości, tak jak w tym momencie Flash, obecnie już prawie w ogóle nieużywany?
PHP staje się coraz mniej popularny, a na pewno nie jest modny. Jeśli chodzi o C to pewnie z biegiem czasu mogą go wyprzeć języki takie jak Rust czy C++. Wiele firm embedded przepisuje albo zaczyna swoje projekty w C++, który daje znacznie więcej możliwości. Część języków na pewno z czasem straci na popularności i dojdziemy do momentu, gdzie tak jak teraz programiści COBOL’a są bardzo poszukiwani, ponieważ jest ich bardzo mało.
To na koniec jeszcze dwa słowa o Twoim największym sukcesie i największej porażce zawodowej. Z czego jesteś najbardziej dumny?
Jestem dumny z tego, w jakim miejscu się znajduję, pomimo, że momentami miałem chwile zwątpienia, czy ścieżka kariery, którą wybrałem jest poprawna. Myślę, że pewne rzeczy mogłem zrobić wcześniej, takie jak podjęcie decyzji o zmianie poprzedniej pracy.
Ile pracowałeś w tamtej firmie?
Powyżej 5 lat, co jest dość długim okresem jak na obecne realia.
A ile masz doświadczenia zawodowego ogólnie?
Ponad 7 lat.
Na różnych stanowiskach czy na jednym jak dotychczas?
Było to jedno stanowisko, jako że nie mieliśmy w poprzedniej firmie rozgraniczenia na juniora/mida i seniora.
To co cię utrzymywało tam przez 5 lat?
Atmosfera w pracy.
Czyli człowiek się dostaje do firmy ze względu na projekty i pieniądze, a później utrzymuje go głównie atmosfera?
Zgadza się, ale tam przede wszystkim nie działał sposób prowadzenia projektów i mogłem dużo wcześniej zmienić pracę, natomiast same projekty były na tyle ciekawe, różnorodne technologicznie, że ciągle mnie to pchało do przodu. Nie siedziałem 5 lat nad jedną technologią i z tego względu mogłem zdobyć doświadczenie z bardzo wieloma technologiami, a to teraz procentuje.
Czyli wolisz kiedy jest więcej różnych projektów, niż jeden stały?
Tak i myślę, że większość programistów tak woli. Każda zmiana projektu oznacza rozwój.
A co z rzeczami z których nie jesteś dumny – co byś zrobił inaczej?
Mam taką radę na rozmowy rekrutacyjne. Przygotowujcie się do nich bardzo rzetelnie. To, co jest w pracy nie ma często większego przełożenia z tym, co jest na rozmowie. Musicie być przygotowani nawet z tych rzeczy, których później nie użyjecie w pracy.
W jaki sposób je zidentyfikować?
Czytajcie pytania rekrutacyjne, które się pojawiają na każdej rozmowie, ale także nie umawiajcie się na rozmowę na za dwa dni. Kiedy dzwoni rekruter i chce umówić rozmowę techniczną to dajcie sobie czas na to, żeby się przygotować do tej rozmowy, zapytać jak ten proces będzie wyglądać. Niekiedy za szybko chciałem się umówić na taką rozmowę, byłem podekscytowany, że ktoś do mnie zadzwonił, więc się umawiałem i nie przygotowywałem się wystarczająco do takiej rozmowy.
Przez przygotowanie rozumiesz aspekty typowo techniczne, czy wiedzę o samej firmie też?
Głównie techniczne, ale do tego dochodzi na przykład język angielski. Warto choćby przed lustrem opowiedzieć sobie gdzie się było na wakacjach w zeszłym roku, bo to takie pytania po angielsku są zazwyczaj kierowane do aplikujących. Dodatkowo w rozmowach rekrutacyjnych pojawiają się zadania typu: napisz na tablicy sortowanie bąbelkowe. Są to proste rzeczy, ale nieraz nie pamiętamy tego podczas rozmowy. Co prawda programiści z reguły pracują z dostępem do internetu i nie do końca rozumiem, co takie zadanie ma sprawdzić.
Do tego dochodzi stres podczas live codingu. Trzeba pamiętać, że programiści na co dzień pracują we własnym środowisku, bez ludzi, którzy patrzą i oceniają zza pleców. Na rozmowie kandydat dostaje laptopa i nagle musi pokazać, co potrafi – nie zawsze jest to dobry sprawdzian faktycznych umiejętności tej osoby.
Jednym z rozwiązań tego problemu jest zlecenie kandydatowi zadania do rozwiązania w domu, po czym po kilku dniach musi wytłumaczyć, jak to zrobił, jakie inne sposoby mógłby zastosować. Wydaje mi się, że taka forma jest dużo przyjemniejsza i lepiej sprawdza jego umiejętności.
Mogę dorzucić, że warto sprawdzić przed rozmową osoby z którymi jest się umówionym na rozmowę. Na wspólnych tematach czy zainteresowaniach będzie dużo prościej znaleźć z tymi ludźmi wspólny język.
Jeśli chcecie dołączyć do Norberta w SolveQ, zapraszamy na naszą stronę Kariery.
