Praca jako programista systemów automotive daje niesamowitą satysfakcję. Wywiad z Krzysztofem Kmiotkiem
Praca w branży automotive jest prawdziwym marzeniem programistów fascynujących się motoryzacją. W rozmowie z Krzysztofem Kmiotkiem Senior Software Engineerem w intive rozmawialiśmy o codziennej pracy programisty automotive, drodze do uzyskania takiego stanowiska oraz emocjach towarzyszących tworzeniu systemów umieszczanych w prawdziwych samochodach.
Spis treści
Jaka była Twoja ścieżka do aktualnego stanowiska? Co robiłeś przed podjęciem pracy w intive?
Podczas studiów na kierunku Automatyka i Robotyka na AGH byłem przekonany, że moim marzeniem jest praca z robotami w fabryce. Byłem pewien, że chcę je programować oraz projektować całe linie produkcyjne. Życie zweryfikowało moje marzenia podczas 2-miesięcznej wegetacji w fabryce, przy utrzymaniu ruchu. Nadszedł czas, by poszukać nowych marzeń.
I tak trafiłem do świata programowania embedded. Moje pierwsze kroki to małe mikrokontrolery w branży energetycznej. Jako że już wtedy był czas rynku pracownika, mogłem wybierać co, w jakiej branży i gdzie chcę robić. Wiedziałem już, że roboty i praca w fabryce nie są dla mnie, natomiast od dziecka, jak chyba każdy chłopiec, interesowałem się samochodami. Przyszedł czas na większe projekty w branży automotive.
Czy możesz opowiedzieć jak wygląda programowanie embedded w branży automotive? Czym różni się od kodowania w innych branżach?
W programowaniu embedded w branży motoryzacyjnej w dalszym ciągu króluje, i pewnie jeszcze przez wiele lat królować, będzie język C. Wielu programistów narzeka na ten fakt, gdyż programowanie w tak niskopoziomowym języku bywa wymagające, jednak w zamian daje znacznie większą kontrolę nad sprzętem oraz zasobami mikrokontrolera.
Autosar
Kolejnym nieodłącznym elementem programowania systemów wbudowanych w branży motoryzacyjnej jest Autosar. Jest to system, który standaryzuje sposób implementacji oraz integracji modułów. Można go kochać lub nienawidzić, z doświadczenia obserwuję, że większość ludzi zaczynających pracę w naszej branży przeraża Autosar, skomplikowanie niezbędnych narzędzi oraz ilość dokumentacji. Jednak z czasem system Autosar staje się coraz bardziej ludzki. Droga do pokochania Autosara nie jest łatwa, przechodzimy przez kolejne fazy: szoku i zaprzeczenia (jak z tym g** można w ogóle pracować?), następnie gniew i bunt (po co ja się za to brałem?), negocjacje (a może by tak prościej?), depresja (czy to jest w ogóle możliwe?) oraz ostatecznie akceptacja, która może przerodzić się w prawdziwe uczucie.
Ciągły rozwój funkcjonalności
Programowanie w automotive nie kończy się na programowaniu systemów tuż przy sprzęcie, w języku C wraz z Classic Autosarem. Z roku na rok w naszej branży coraz popularniejsza staje się koncepcja connected cars, car sharing czy hardware as a service. Zmienia się spojrzenie na samochód: dotychczas po prostu pojazd do przemieszczania się, a obecnie nowoczesna usługa. Taki nowoczesny samochód możemy dostosować do tego, czego aktualnie potrzebujemy. Za pomocą dodatkowego abonamentu możemy rozszerzyć jego funkcjonalność, dodać mu parę koni mechanicznych czy odblokować podgrzewane fotele. Jako że samochód jest stale podłączony do sieci, możemy go podnajmować innym kierowcom. I tak samochód, z którego aktualnie nie korzystamy, w tym czasie może sam na siebie zarabiać.
Dynamiczne podejście do nowych pojazdów
Wszystkie te opisane wyżej trendy niosą ze sobą konieczność innego spojrzenia na samochód, przestaje to być statyczny system, który od wyjazdu z fabryki ma stałą funkcjonalność i może działać offline. Nowoczesny samochód wymaga innego podejścia, bardziej dynamicznego. I tu, na wprost oczekiwaniom inżynierów, pojawia się system Adaptive Autosar, czyli system POSIX dający znacznie większą elastyczność niż klasyczne podejście.
Programowanie w Adaptive Autosar odbywa się w języku C++ i nie kładzie już tak dużego nacisku na samą platformę sprzętową, pozwalając na skupienie się na samej funkcjonalności. Podsumowując, w automotive jako programiści możemy pracować blisko sprzętu, używając języka C oraz Classic Autosara lub też pisząc aplikacje obiektowe w C++ pod Adaptive Autosar.
Czy czujesz presję podczas programowania systemów automotive w prawdziwych samochodach? Jakie to uczucie mieć świadomość, że stworzony przez Ciebie kod będzie już za parę lat służył kierowcom na całym świecie?
Praca jako programista systemów automotive daje mi niesamowitą satysfakcję. Rozwiązania, nad którymi obecnie pracujemy, planujemy już za 2/3 lata montować w setkach tysięcy samochodów na całym świecie. Za każdym razem, gdy mija mnie samochód wyposażony w system, przy którym pracowałem, przypominam sobie te godziny zespołowej pracy, rozwiązywania niespodziewanych problemów oraz testów systemowych. Daje mi to ogromną radość i satysfakcję, miła jest też świadomość, że w tym samochodzie jest coś, nad czym pracowałem, czego sposób działania znam w 100%.
Czym zajmujesz się na aktualnym stanowisku? Co skłoniło Cię do rozpoczęcia pracy w automotive?
Pracuję jako inżynier oprogramowania, aktualnie w projekcie dla niemieckiego producenta samochodów premium. Sam projekt jest jednym z największych dotychczasowych projektów naszego klienta, łącznie pracuje nad nim 400 inżynierów podzielonych na zespoły scrumowe. W Krakowie mamy własny, niezależny zespół składający się z programistów, testerów, systemowców, nad całością czuwają Product Owner oraz Scrum Master. W tak dużym projekcie wyzwaniem jest synchronizacja oraz rozplanowanie pracy poszczególnych osób. Duży nacisk kładziemy na metodykę Agile oraz pracę w SAFE.
Od strony technicznej używamy języka C. Sam projekt to zaawansowany Gateway składający się z 3 mikrokontrolerów, obsługujący sygnały z setek czujników rozmieszczonych po całym samochodzie. Czujniki te łączymy po dziesiątkach magistrali komunikacyjnych, takich jak CAN/LIN czy też Ethernet. Oczywiście całość piszemy zgodnie z systemem Classic Autosar. Sam projekt prowadzimy w ASPICE, co definiuje nam sposób testowania oraz współpracy z systemowcami, czyli ludźmi od wymagań.
Oprócz pracy nad komercyjnymi projektami, w krakowskim biurze rozwijamy również wewnętrzny projekt KATE, którego mam przyjemność być leaderem.