Internet of Things (IoT) coraz śmielej wkracza w codzienne życie. Na rynku IT zaobserwować można duże zapotrzebowanie na inżynierów pracujących na wbudowanych systemach (ang. embedded systems) będących główną składową komunikujących się ze sobą i z siecią urządzeń. Kim są inżynierowie systemów wbudowanych, jak uczyć się tego zawodu i jakie mają szanse na rozwój?
Termin „Internet rzeczy” (ang. Internet of Things) zdominował myślenie o współczesnej technologii. W dużym uproszczeniu to autonomiczna sieć, w której wyposażone w sensory urządzenia komunikują się ze sobą, zbierają dane, analizują je i wykonują określone czynności. Zastosowanie IoT jest szerokie: od mierzących puls bransoletek, poprzez inteligentne urządzenia domowe i sprzęt medyczny, lotnictwo, aż po auta, które nie potrzebują kierowcy. Ze względu na szybki rozwój technologiczny i szerokie możliwości wykorzystania, coraz częściej zaczyna się używać określenia Internet Wszechrzeczy (Internet of Everything).
Do sieci podłącza się coraz więcej urządzeń a powiązania między nimi a człowiekiem są z roku na rok powszechniej stosowane. Według szacunków McKinsey Global Institute minimalna wartość rynku IoT na świecie w 2025 roku osiągnie poziom ok. 4 miliardów dolarów, optymistyczne estymacje mówią o wzroście nawet do 11 miliardach. Do tego czasu do sieci ma być podłączonych od 34 do nawet 50 miliardów urządzeń.
Mikrorozwiązania o wielkich możliwościach
Rozwój IoT możliwy jest dzięki niewielkim, systemom wbudowanym, które są integralną częścią każdego obsługiwanego sprzętu. Bazują na działaniu mikroprocesorów, zaprogramowanych do wykonywania określonej czynności na urządzeniu: na przykład przesyłaniu zdjęć z aparatu do sieci Wi-Fi czy skanowaniu ruchu ulicy w celu dostosowania sygnalizacji świetlnej do natężenia ruchu na drodze. Poszczególne rozwiązania projektowane są zwykle pod kątem określonej aplikacji, dla jakiej mają działać i spełniać sprecyzowane wymagania biznesowe.
– Przykłady ciekawych rozwiązań w nurcie Internetu Rzeczy można mnożyć, jednym z takich projektów, realizowanym przez intive jest elektroniczna obroża dla psów Nuzzle. Wbudowany GPS pozwala śledzić pupila na mapie w aplikacji mobilnej. Czujnik ruchu z kolei pozwoli sprawdzić, co pies robi podczas naszej nieobecności w domu: czy śpi, czy biega po mieszkaniu. Wszystkie dane zbierane i przesyłane są do aplikacji za pomocą systemu embedded – mówi Jarosław Mroczek, Engineering Director w intive, firmie która już od kilku lat działa w obszarze IoT.
Embedded Software Engineer pilnie poszukiwany
Zapotrzebowanie na specjalistów, programujących urządzenia tak, by potrafiły odnaleźć się w niekończącej się sieci powiązań danych z roku na rok jest coraz większe. Potrzebni są przede wszystkim eksperci, znający języki niskopoziomowe jak C, C++, Python czy Assembler. Według aktualnego indeksu TIOBE technologia C jest na drugim miejscu popularności, zaraz pod nią C++ i Python. Mimo dużego zainteresowania tymi językami, firmom wciąż brakuje specjalistów. W tym roku, na portalu pracy Indeed pojawiło się ponad 30 tysięcy więcej ofert pracy dla programistów C++ niż w roku ubiegłym.
Zarobki dla inżynierów embedded, tak jak dla pozostałych stanowisk związanych z IT, plasują się dość wysoko – nawet do 15 tys. netto w zależności od doświadczenia, umiejętności i rodzaju projektu. Według Raportu Płacowego 2017 przeprowadzonego przez HAYS dla ITC, uśredniona stawka godzinowa dla developerów C/C++ na kontrakcie B2B w Polsce to 75/h PLN netto dla osoby z 3-5 letnim doświadczeniem do nawet 130/h PLN netto dla team leadera z ponad 5 letnim doświadczeniem. W projektach z systemami embedded, poza programistami potrzebni są również testerzy, ze stawką 100/h PLN netto (>5 lat doświadczenia) czy analitycy biznesowi - 120/h PLN netto (> 5 lat doświadczenia).
Sukcesywnie rośnie zapotrzebowanie firm na tego rodzaju specjalistów. Na rynku pracy jest ich wciąż za mało, dlatego coraz częściej zamiast stałego zatrudnienia nawiązuje się współpracę z kontraktorami do pracy przy konkretnych projektach. Taka forma zatrudnienia daje dużą swobodę, możliwość elastycznego rozwoju ścieżki kariery i wzbogacenia swojego doświadczenia o naprawdę wartościowe projekty. – W intive zastanawiamy się, co będzie technologią jutra, skupiamy się na nowościach rynkowych. Pracujemy nad ciekawymi, niecodziennymi projektami głównie z branży Automotive, ale w naszym portfolio znajdują się również technologie wearables, czyli takie, które możemy na siebie nałożyć, gadżety codziennego użytku komunikujące się z siecią, np. inteligentny kubek Ember. Coraz mocniej specjalizujemy się w systemach opartych na Bluetooth 5. To nowy standard łączności, który cechuje się jeszcze większą przepustowością danych przy jednoczesnym niskim zużyciu energii – dodaje Jarosław Mroczek.
Jak wejść do świata systemów wbudowanych?
„Żeby ułatwić start w świecie rozwiązań embedded, bardzo wartościowe okazuje się doświadczenie w pracy przy mikrokontrolerach, nawet jeśli była to tylko forma rozrywki w wolnym czasie. Wśród najpopularniejszych rozwiązań na start, doskonałych do zabawy i prototypowania są Arduino czy RaspberryPI” — wymienia Marek Gajewski, Embedded Systems Manager w intive. — Poza tym, na rynku dostępny jest cały szereg platform IoT bazujących na gotowych elementach. Można je wykorzystać do nieco bardziej zaawansowanych projektów, stosowanych również w rozwiązaniach dla klientów, np. Electric Imp, Appcelerator, AWS IoT Platform czy EVRYTHNG IoT Smart Products Platform.—
Obowiązki inżyniera oprogramowania wbudowanego są bardzo rozległe i zróżnicowane. Poza oczywistą umiejętnością pisania kodu w wybranych językach niskopoziomowych, powinien radzić sobie z licznymi peryferyjnymi zadaniami związanymi z badaniami, projektowaniem oprogramowania łączącego się z elektroniką. Docenianą umiejętnością jest także zrozumienie wymagań biznesowych klienta i świadomość potrzeb użytkownika końcowego. Praca inżyniera embedded wymaga dużej elastyczności, analitycznego myślenia i podejścia nastawionego na stałe uczenie się. Z pewnością jest to doskonała praca dla osób poszukujących nowych ścieżek rozwoju i lubiących wyzwania.
— Przy projektach dla dużych marek, produkowanych na masową skalę, produkcyjne oprogramowanie pisane jest zwykle na mikrokontrolery dedykowane pod dane urządzenie – to wymaga od inżynierów większego zaangażowania, umiejętności analitycznych, wnikliwości oraz naturalnej zdolności przystosowywania się do nowego środowiska – w tym wypadku nowej technologii. Każdy projekt jest inny, niesie ze sobą dużo wyzwań i daje wiele satysfakcji — dodaje Marek Gajewski.
Przyszłość pod znakiem Internetu Wszechrzeczy
Jeszcze kilka lat temu, zapotrzebowanie na inżynierów systemów wbudowanych było o wiele mniejsze, sami specjaliści i absolwenci uczelni technicznych wybierali raczej pewniejszą wówczas ścieżkę kariery związaną z rozwojem aplikacji czy infrastruktury sieciowej. Obecnie, wraz z rosnącym zapotrzebowaniem na inteligentne, łączące się z siecią rozwiązania, rośnie również zapotrzebowanie firm na nowe kompetencje i specjalizacje. Kilka dekad temu można było pomyśleć, że embedded engineering będzie dotyczyć w największej mierze programowania prostych produktów elektronicznych, ewentualnie maszyn produkcyjnych.
Dzisiaj, pod wpływem intensywnego rozwoju IoT, ścieżka rozwoju związana z embedded jest niezwykle ciekawa, a wachlarz możliwości wciąż rośnie. Embedded Software Engineer to zdecydowanie jeden z zawodów przyszłości, jeśli wierzyć specjalistom, do 2020 roku urządzeń IoT będzie kilkukrotnie więcej niż ludzi. Internet of Everything stanie się faktem.
Więcej o Intive: Tutaj