Kiedyś na jednego inżyniera embedded przypadała jedna oferta pracy. Historia Michała Zająca
Co powinien umieć junior, który chce znaleźć pierwszą pracę w branży embedded? – Powinien mieć za sobą jakieś małe hobbystyczne projekty, znać elektronikę w sposób pozwalający na w miarę płynną pracę ze sprzętem, rozumieć język C na tyle, żeby móc pisać proste programy i umieć czytać datasheet – i to wszystko – powiedział nam Michał Zając, Embedded Developer w Intitek.
Spis treści
Jak z Twojej perspektywy wygląda rynek pracy w branży embedded?
Z perspektywy kandydata – z roku na rok coraz lepiej. Pamiętam, że gdy zaczynałem pierwszą pracę, na rynku była zachowana równowaga – można uznać, że na jednego inżyniera embedded przypadała jedna oferta pracy. Trzeba było jej poszukać, ale taka osoba prędzej czy później raczej pracę znalazła. W tej chwili szala trochę przechyliła się na korzyść kandydatów, ale tutaj trzeba zaznaczyć, że kandydatów już nieco doświadczonych (>3 lat doświadczenia komercyjnego).
Jeśli ktoś posiada taką praktykę, to nie powinien mieć większego problemu, żeby być zapraszanym na rozmowy kwalifikacyjne. Widać, że rynek embedded w Polsce rozwija się i jest coraz więcej firm zajmujących się tą dziedziną. Oczywiście w dalszym ciągu nie ma takiego zapotrzebowania jak np. na frontend albo Java devów i szczerze powiedziawszy, nie sądzę, żeby to się kiedykolwiek zmieniło.
Czego brakuje tej branży?
Firm produktowych posiadających w większości polskie R&D. Niestety, ale nie mamy zbyt wielu rodzimych firm zajmujących się embedded i co za tym idzie, stricte polskiego R&D. Do tego uważam, że bardzo często nie jesteśmy głównymi oddziałami inżynieryjnymi dla zachodnich firm. Proces stawania się pełnoprawnym partnerem (a nie tylko tańszą opcją) jest długi, ale niewątpliwie trwa od kilku lat i to widać. Niemniej obserwuję, że gdy kiedyś byliśmy po prostu “tańsi”, tak teraz jest niemała ilość firm, które przejmują całą działkę R&D i to jest super.
Dla kogo Twoim zdaniem to idealne miejsce? Komu poleciłbyś zajęcie się programowaniem niskopoziomowym?
To dość specyficzne, że w tej branży bardzo rzadko można spotkać inżyniera informatyka. Za to pracuje mnóstwo automatyków, elektryków, elektroników, mechatroników. Wynika to z tego, że sam embedded jest nierozerwalnie związany ze sprzętem. Dlatego jeśli ktoś lubi fizycznie dotknąć sprzętu, “pomigać” diodą LED, ale jednocześnie dalej ma ochotę programować, to jest to branża dla niego. Uważam też, że to, czy ktoś chce pójść w embedded wychodzi niejako samo i na pewnym etapie człowiek sam stwierdza, czy chciałby pracować przy takich projektach.
Jak wszedłeś do tej branży? Pamiętasz swój pierwszy projekt?
Nie było pierwszego “przełomowego” projektu. Gdzieś na drugim, trzecim roku studiów zainteresowałem się tym tematem. Czytałem blogi i książki (wówczas temat ten był bardzo niszowy), a w międzyczasie realizowałem swoje pierwsze hobbystyczne pomysły. Potem wykonałem kilka mniejszych układów dla okolicznych firm, ale pierwszy istotny projekt przyszedł w mojej pracy tuż po studiach. Implementowaliśmy jako pierwsi w Polsce w pełni standard IEC61850 dla sieci energoelektrycznych. W tamtym momencie bardzo dużo się nauczyłem i można powiedzieć, że od tego zaczęła się “poważna” praca.
Gdzie szukałeś wsparcia, pomocy w rozwiązywaniu ówczesnych problemów?
Gdy stawiałem pierwsze kroki to korzystałem głównie z zasobów internetu (blogi, fora) i książek – zdarzało mi się pisać e-maile do autorów, na które odpowiadali. W pracy zawodowej czerpałem wiedzę głównie od bardziej doświadczonych kolegów, ale internet i literatura dalej są bardzo ważnym medium w dostępie do wiedzy.
Kiedyś nie mogłem przemóc się, żeby korzystać z angielskich forów oraz książek. W tej chwili widzę, że tamta społeczność jest większa i łatwiej uzyskać od niej pomoc. Dzisiaj w dalszym ciągu opieram się jednak o internet i literaturę.
Wiele osób narzeka na zbyt wysokie wymagania w ofertach pracy związanych z danym stanowiskiem. Rozprawmy się z tym. Czego powinno wymagać się od Junior Embedded Developera?
Według mnie Junior Embedded Developer powinien mieć za sobą jakieś małe hobbystyczne projekty, znać elektronikę w sposób pozwalający na płynną pracę ze sprzętem, znać język C na tyle, żeby móc pisać proste programy i umieć czytać datasheet – to wszystko. Junior to junior.
Chciałbym jednak zwrócić uwagę na jeden element odnośnie projektów. Obserwuję, że młodsi koledzy upodobali sobie platformy jak np. Arduino. Jest to fajna zabawka, ale ciągle – zabawka. W zasadzie korzystając z bibliotek dla Arduino i gotowych platform osoba nie uczy się niczego nowego. Na początek polecam kupić płytkę stykową i rozpocząć programowanie “gołego” procesora, nie używając gotowców a dokumentacji procesora – to zadanie bardzo dużo uczy. Oczywiście to nie zmienia faktu, że do embedded jest po prostu dość wysoki próg wejścia.
Co rekruterzy powinni wpisywać w polu “Wymagania” dla mida i seniora?
Wymagania na papierze w zasadzie będą te same. Trzeba pamiętać o tym, że różnica między midem a seniorem jest taka, że ten drugi spotkał się z większą ilością niestandardowych problemów i je rozwiązał oraz lepiej zna specyfikę mikrokontrolerów. Jednak to, czy ktoś jest midem czy seniorem wychodzi w rozmowie technicznej, bo wymagania w ogłoszeniu będą te same.
A co do samych wymagań, to na pewno:
- znajomość języka angielskiego,
- umiejętność posługiwania się protokołami komunikacyjnymi SPI, I2C, CAN,
- znajomość elektroniki od strony jej projektowania,
- umiejętność obsługi oscyloskopu, analizatora stanów logicznych i oprzyrządowania laboratoryjnego,
- dobra znajomość C.
To chyba takie podstawowe i wspólne wymagania dla mida i seniora. Reszta wymagań zależy już głównie od danego stanowiska
Jak przebiega standardowa ścieżka kariery od juniora do seniora w tej branży?
Wszystko przychodzi z czasem. Juniorowi przez długi czas patrzy się na ręce. Potem taka osoba wprawia się i nie ma potrzeby jej kontrolowania, a gdy dostaje samodzielne zadania staje się midem. Senior to taki mid po przejściach. Wie już, jak działają mikrokontrolery i bardzo dobrze zna C, jest w stanie odpowiedzieć na większość pytań młodszych kolegów, spotkał się z niejednym trudnym zadaniem (np. skomplikowanym debugowaniem) i je rozwiązał (stosując często dość wyrafinowane rozwiązania). Generalnie gdy mid nie wie jak rozwiązać swoje zadanie, to idzie z pytaniem o wskazówkę do seniora, ten już raczej nie ma kogo zapytać.
Co dla Ciebie jest sukcesem? Programiści, inżynierzy z innych branż chwalą się projektami, z których korzystają setki tysięcy, a czasem i miliony użytkowników. Jak jest w Twojej branży?
Oczywiście miło jest mieć świadomość, że coś, co sami stworzyliśmy, używane jest przez miliony osób i to się sprawdza, albo wręcz widzimy to w kolorowych magazynach lub na co dzień. W pewnym sensie utożsamiamy się ze swoim projektem, ale według mnie to po prostu powszednieje i na kolejne projekty patrzy się zgoła tak samo, jak na zadanie, które trzeba wykonać.
Sam definiuję sukces zawodowy, jako chodzenie z uśmiechem do swojej pracy – jednocześnie zarabiając tyle, by pozwolić sobie na wygodne życie. Oczywiście to nie brzmi tak ładnie jak coachowie mówiący o pasji w pracy i nowych wyzwaniach zawodowych, ale bądźmy szczerzy, każda praca powszednieje.
Rzecz jasna nie chcę tutaj mówić, że zadowolenie z finalnego produktu nie istnieje, bo istnieje, ale to nie jest jedyny czynnik definiujący zadowolenie z naszej aktywności zawodowej. Osobiście po prostu lubię swoją pracę i tyle, nie mniej, nie więcej.
Na podstawie jakich czynników oceniasz, czy projekt, którego masz się podjąć, jest dla Ciebie interesujący?
Po pierwszych dwóch, trzech spotkaniach z osobą przekazującą informację o projekcie i po przeczytaniu wstępnej dokumentacji raczej wiem, z czym mamy do czynienia. Lubię gdy projekt dotyka typowego embedded, tzn. pracy blisko sprzętu i rozwijania go od samych założeń. Dodatkowo, niesamowicie przyjemne jest projektowanie samych płytek PCB – jest w tym coś uspokajającego.
Jaki masz plan na siebie? Co chcesz osiągnąć za kilka lat?
W zasadzie jest mi w obecnej chwili całkiem dobrze i chciałbym kontynuować moją pracę. Mam w planach podciągnięcie się z algorytmiki i może douczenie się jakiegoś nowego obszaru, sam embedded jest bardzo szerokim tematem, więc jest w czym wybierać. Z takich większych, ale mniej zawodowych zmian, to od jakiegoś czasu chodzi mi po głowie przeprowadzka na południe Europy w okresie zimowym. Nasz klimat w tym czasie jest nie do zniesienia.
Co chciałbyś przekazać początkującym, zainteresowanym pracą w branży embedded?
Po prostu uczcie i bawcie się elektroniką. Kupcie jakąś platformę z procesorem (np. Discovery z STM32) i zaprototypujcie, co Wam przyjdzie do głowy. Potem zróbcie gotowy projekt z zaprojektowaniem płytki PCB. Dodatkowo teraz na polskim rynku jest parę pozycji z literaturą związaną z embedded. Są to pozycje obowiązkowe dla początkującego.
W razie wątpliwości pytajcie, czy to na forach, czy kolegów w pracy. Nie spotkałem się z sytuacją, żeby ktoś nie chciał pomóc.
Michał Zając. Embedded Developer w Intitek. Pracę zawodową rozpoczął po studiach w katowickiej firmie Computers & Control, w której pracował jako Elektronik/Programista Embedded. Jako pierwszy w Polsce wprowadzał z zespołem standard komunikacji w podstacjach energetycznych – IEC61850. Po 2,5 roku przeniósł się do Krakowa i jako Programista Embedded pracował w firmie z branży Automotiv: Delphi, a później Aptiv. Zajmował się tam projektem AUTOSAR i pracowała nad produktami marek samochodowych. Po kolejnych ponad 2,5 latach przeniósł się do Warszawy do Baker Hughes (kiedyś General Electric). Dziś zajmuje się oprogramowaniem wbudowanym dla przemysłu Oil&Gas oraz trochę pracuje jako admin.