GKotfis / Devsession-Podcast

Wszystkie tematy, pytania związane z podcastem Devsession wrzucaj śmiało tutaj
MIT License
5 stars 0 forks source link

Maciej Gajdzica - systemy Embedded #1

Closed GKotfis closed 5 years ago

GKotfis commented 5 years ago

W tym wątku można zadawać pytania do mojego gościa Macieja Gajdzicy. Tematem odcinka będą systemy Embedded. Zrobimy przegląd platform ale przede wszystkim skupimy się na wytwarzaniu oprogramowania na systemy wbudowane.

Planowana data nagrania: 21.XI.2018, godz. 16:00

jciechowski commented 5 years ago

Jak wyglądają deploymenty?

GKotfis commented 5 years ago

Pytania od David Jones z FB

Wprowadzające

  1. Co obejmuje wg Ciebie pojęcie "programista systemów wbudowanych", czym się to różni od programista-elektronik, konstruktor-elektronik. Czy zalicza się do tego również ktoś kto programuje układy FPGA?
  2. Jaki był najbardziej ekscytujący projekt systemu embedded jaki widziałeś?
  3. Jak wygląda odpowiedzialność za wykonywaną pracę w branży embedded. Takie oprogramowanie jest krytyczne w wielu obszarach i obarczone wieloma normami i ogromnym ryzykiem. Interesuje mnie fakty czy trzeba podpisywać dodatkowe umowy które obarczają programistę kosztami za popełniane błędy itp.
  4. Biorąc pod uwagę pytanie 2, jak radzisz sobie psychicznie z dużą presją jaką niesie praca w embedded?

Wytwarzanie oprogramowania

  1. Główne bolączki obecnych narzędzi do projektowania systemów wbudowanych.
  2. Główne bolączki społeczności systemów embedded - co powoduje dlaczego zmiany zachodzą powoli i branża nie jest chętna na wprowadzanie nowinek.
  3. Jak wygląda testowanie urządzenia elektronicznego (HW i SW) w korporacjach lub poważnych firmach (nie dotyczy firm typu "Janusz Soft")?
  4. Jakie wzorce projektowe są najczęściej używane w systemach embedded (SW)?
  5. Jakie metodologie wytwarzania oprogramowania są stosowane najczęściej i w jakich przypadkach.
  6. Metody debuggowania systemów embedded
  7. Multithread programming w embedded

Rynek Pracy

  1. Jak wygląda rynek pracy (PL i zagranica) dla robotyków?
  2. Rynek pracy w Polsce i za granicą - czym się różnią. Gdzie najczęściej są poszukiwani programiści embedded i jakie kompetencje w tej chwili są pożądane.
  3. Czy Polacy stanowią silną grupę inżynierów pod względem umiejętności względem innych krajów w kontekście embedded?
  4. Czy wg Ciebie praca w embedded jest opłacalna w Polsce biorąc pod uwagę, że można programować rzeczy mniej restrykcyjne, łatwiejsze i za większą kasę?
  5. Jak wg Ciebie będzie wyglądać sposób programowania systemów wbudowanych w przyszłości. Czy znajomość architektury i niskopoziomowych mechanizmów i języków będzie się potrzebna do pracy?
  6. Dlaczego warto zajmować się systemami wbudowanymi.
  7. Dlaczego nie warto zajmować się sytemami wbudowanymi.
  8. Dlaczego hardware developer - konstruktor elektronik jest gorzej opłacany na rynku pracy niż programista embedded pomimo tego że musi opanować o wiele trudniejszą i niszową wiedzę i ponosi o wiele większą odpowiedzialność (błąd w HW kosztuje więcej niż w SW)?
  9. Przyszłość inżynierów-projektantów obwodów PCB. Czy będą nadal potrzebni biorąc pod uwagę takie narzędzia jak autoroutery itp.?
  10. Mikroprzedsiębiorstwo vs średnia firma vs korporacja. Plusy i minusy.

Wiedza, osobowość, społeczność

  1. Co jest najtrudniejsze w zgłębianiu wiedzy nt. systemów embedded? Na jakie obszary wiedzy akademickiej warto zwrócić szczególną uwagę oraz czego należy się douczyć samemu?
  2. Różnica charakterów pomiędzy "ludźmi embedded" a resztą IT (chęć dzielenia się wiedzą, kultura, docenianie dokonań innych, chęć pomocy)
  3. Programiści embedded to przeważnie fanatycy elektroniki i programowania - pasjonaci pełną gębą. Niestety często praca (a tym samym odpowiedzialność, terminy, problemy) pozwala zabrać ulubione hobby i totalnie je obrzydzić. Czy zauważyłeś w branży przypadki wypalenia zawodowego? Jak żyjesz na codzień by ciebie to nie spotkało?
  4. Jakich cechy charakteru powinien posiadać dobry projektant systemów wbudowanych?
  5. Polecane źródła wiedzy.
  6. Jakie obszary IT/inżynierii warto poznać w podstawowym stopniu by skutecznie realizować codzienne obowiązki programisty systemów wbudowanych?
  7. Pytanie pokrywa się trochę z pytaniami odnoście umiejętności. Wymień "must have" programisty systemów wbudowanych.

Sprzęt, narzędzia

  1. Jak wygląda praca zespołowa nad projektem PCB i jakie systemy kontroli wersji są stosowane? Czym różni się praca nad PCB od pracy nad firmwarem biorąc pod uwagę utrzymanie produktu?
  2. Jak wygląda proces projektowania obwodu PCB (etapy)? Czy w tym fachu również są stosowane jakieś metodologie?
  3. Którzy producenci mikrokontrolerów dostarczają wg Ciebie BSP najlepszej jakości do swojego hardware?
  4. FPGA? Czy jest sens się zajmować tą niszową dziedziną?
  5. Czym pod względem HW i SW różnią się restrykcje dotyczące poszczególnych obszarów: przemysł medyczny, kosmiczny, automotive, dowolny inny?

IoT, ML - nowe technologie

  1. IoT - przemyślenia, możliwości, zagrożenia
  2. Jak programista embedded musi wiedzieć o ML.
  3. Jak wygląda integracja systemów ML z systemami embedded?
tom-sapletta-com commented 5 years ago

Jak dlugo gosc zajmuje sie tym? Czy stale dziala w Embedded czy robil cos w miedzyczasie innego? Jak pozyskal pierwsza prace dot. Embedded Systems? W ilu i jakich projektach pracowal? Jaka mial tam odpowowiedzialnosc? Jakie zarobki sa osiagalne?

@GKotfis Gratuluje pytan, tylko prosze abyscie na poczatku rozmowy zaznaczyli ze Embedded System to o wiele obszerniejsze zagadnienie niz sie ludziom (typowym programistom) moze wydawac i ze to najpierw zaczelo sie od Hardware a dopiero potem Software, wiec raczej to Software Dev powinni uczyc sie od Embedded Dev i wlasnie takie pytanie prosze zadac:

Czego Software Dev moze nauczyc sie od Embedded DEv i czego by sie nauczyl, gdyby nim zostal.

tom-sapletta-com commented 5 years ago

O Gosciu: Ma kilka lat doswiadczenia zawodowego Uczestniczyl 'w daj sie poznac' https://ucgosu.pl/2017/03/daj-sie-poznac-2017/

Jeden z projektow https://ucgosu.pl/2017/03/schemat-ideowy-robota/

https://pl.wikipedia.org/wiki/Mikrokontroler mikrokomputer jednoukładowy – scalony system mikroprocesorowy, zrealizowany w postaci pojedynczego układu scalonego zawierającego jednostkę centralną (CPU), pamięć RAM oraz rozbudowane układy wejścia-wyjścia i na ogół pamięć programu jako FRAM, MRAM, ROM lub Flash.

Blog https://ucgosu.pl/o-mnie/

Repozytoria GIT na githubie https://github.com/ucgosupl?tab=repositories

Kilka info z CV https://pl.linkedin.com/in/maciej-gajdzica-156370a8

Starszy Projektant - Programista SOLWIT SA October 2015 – Present 3 years 2 months Gdańsk, woj. pomorskie, Polska

Implementacja systemu embedded dla firmy z branży transportu kolejowego spełniającego normy bezpieczeństwa i SIL4.

Software Engineer May 2014 – September 2015 1 year 5 months Gdansk, Pomeranian District, Poland

Rozwój Intel Data Plane Development Kit - biblioteki przetwarzającej pakiety sieciowe dla systemów unixowych napisanej w języku C.

Software Specialist Innovation Code September 2012 – May 2014 1 year 9 months Gdansk, Pomeranian District, Poland

Rozwój systemów wbudowanych dla branży automatyki budynkowej wyposażonych w webserwer i integrację z systemami BMS komunikującymi się przy pomocy protokołów Modbus, Lonworks i BACnet. Do dodatkowych obowiązków należało zarządzanie projektami, praca koncepcyjna i prezentacja działających urządzeń u klientów.

Software Test Engineer Intel Corporation June 2012 – August 2012 3 months Gdansk, Pomeranian District, Poland

Tworzenie testów automatycznych pisanych w języku C# dla płyt głównych Intela do ultrabooków.

tom-sapletta-com commented 5 years ago

Dla Ciekawych poszukiwania pracy polecam https://www.glassdoor.de/Job/firmware-entwickler-jobs-SRCH_KO0,19.htm

Z tego co widzialem zarobki nizsze niz typowego programisty. https://www.glassdoor.de/Job/firmware-entwickler-jobs-SRCH_KO0,19.htm

Tez jestem ciekaw dlaczego ludzie z papierami zarabiaja mniej, w dodatku faktyczna wiedza musi byc znacznie obszerniejsza niz typowego Software Dev.

20 lat temu bardzo chcialem byc Embedded-Software-Entwickler ale w PL bylo malo ofert w ogole, a pracy dla elektronikow konstruktorow bylo niewiele, bo tylko duze firmy pozwalaly sobie na taki dzial konstruktorski, np: w Gdyni: http://www.radmor.com.pl/ https://www.vector.net/en/home/

Na przelomie 2000 roku byl kierunek chiny nieliczni jak potentant w Alarmach - Satel ciagle utrzymywal linie produkcyjna w Gdansku.

Szkoda, bo gdyby nie brak miejsc pracy, to bym dzis mial troche inna profesje i placil podatki w Polsce - dobrze tez przypomniec troche historie, by zrozumiec to co dzieje sie dzis. Mimo wszystko Polska nadal nie daje takiej szansy na rozwoj, chociaz wolalbym sie mylic, byc moze gosc rzuci pozytywnym swiatlem?

tom-sapletta-com commented 5 years ago

przepraszam za lawine postow, jednak zalezy mi na przekazaniu prawdy o tej osobie, gosc jest jeszcze mlody i nie na wszystko musi znac odpowiedzi, wiec bede wyrozumialy po emisji audycji. Ma zaledwie kilka lat doswiadczenia i nie jest przeciez nauczycielem elektroniki, wiec w zasadzie moze lepiej gdyby opisal te spraw z perspektywy swoich historii a nie "eksperta" Nie ma tez doswiadczenia miedzynarodowego, wiec moze warto zawezic audycje do pewnego wycinka Polskiej - Gdanskiej rzeczywistosci.

Moze Gosc by powiedzial cos o dzialalnosci poza praca, czy udziela sie w jakis spolecznosciach i dzieli wiedza, albo cos poleci z trojmiasta? Czy gosc zna jakies startupy z Embedded Systems poza praca ? Czy jesli Gosc ma wiedze i doswiadczenie to moglby cos powiedziec o tym jak to wyglada od srodka?

GKotfis commented 5 years ago

Dziękuje bardzo za zadane pytania! Publikacja już się ukazała: devsession.pl/japrogramista-3

tom-sapletta-com commented 5 years ago

Dzieki, przesluchalem na dwa razy, bo dosc duzo informacji opakowanych w jeden odcinek, mam nadzieje, ze niedlugo nastepny. Gratuluje Wam dobrego wstepu, do bogatego swiata Hardware-owego.

Z odcinka wysnulem wniosek, ze sama definicja Embedded jest dosc trudna do zdefiniowania i sprecyzowana.

Na elektrodzie ktos to ladnie napisal na przykladzie: "Embedded software to najprościej mówiąc oprogramowanie sterujące pracą jakiegoś urządzenia od wewnątrz, czyli gdy urządzenie zawiera w sobie kontroler. "

https://www.elektroda.pl/rtvforum/topic312178.html

System wbudowany musi spełniać określone wymagania ściśle zdefiniowane do zadań, które ma wykonywać. Nie można więc nim nazywać typowego wielofunkcyjnego komputera osobistego. Każdy system wbudowany oparty jest na mikroprocesorze (lub mikrokontrolerze) zaprogramowanym do wykonywania ograniczonej liczby zadań lub nawet wyłącznie do jednego.

Zależnie od przeznaczenia może zawierać oprogramowanie dedykowane jedynie temu urządzeniu (firmware) lub system operacyjny wraz ze specjalizowanym oprogramowaniem. Zwykle decyduje o tym stopień niezawodności, jaki ma oferować dany system wbudowany. Ogólną zasadą jest, że im mniej złożone i specjalizowane jest oprogramowanie, tym bardziej system jest niezawodny i pozwala szybciej reagować na zdarzenia krytyczne. https://pl.wikipedia.org/wiki/System_wbudowany