Bare Metal Embedded C, w co się przekwalifikować?

0

Było już kilka "grubszych" postów na temat tego jak programista Embedded C rzuca swoją robotę i wyjeżdza w Bieszczady. Potwierdzam wszystko o czym było tam napisane.

Co robię:

  • One Man Army: dział handlowy mówi "takie coś chcemy" i tyle. Mam za zadanie stworzyć produkt od konceptu do gotowego sprzętu na stole
  • wybór części i zrobienie projektu (schemat + pcb)
  • zamówienie płytek+montaż prototypu
  • oprogramowanie tego w C
  • uruchomienie, testy, dokumentacja, poprawki
  • ponad 15 lat doświadczenia w elektronice, prawie 5 lat w projektowaniu i pisaniu softu dla elektroniki komercyjnej (projekty są już na rynku, stała produkcja)
  • własny sprzęt lutowniczo-pomiarowy i soft (pracuję na B2B więc wszystko po mojej stronie)

Niestety nie stać mnie już na to żeby to dłużej ciągnąć. Kasa już się nie zgadza, może w zeszłym roku było jeszcze ok ale w tym już nie (podwyżki cen wszystkiego) i lepiej nie będzie. Brak perspektyw na podwyżkę w obecnej firmie.

"To se pracę zmień", z ludźmi z mojej branży jest jak z programistami Cobola w banku, nowego zatrudnia się tylko gdy stary rzuci pracę lub umrze. Nowa osoba ma umieć wszystko to co poprzedni + coś jeszcze więcej. Tutaj nie ma juniorów, masz wymiatać w konstrukcji Klingońskich łazików zasilanych Elerium-115.

"To się dokształć", no fajnie ale elektronika to produkt fizyczny. Dokładnie tak, niektórzy tego nie pojmują. "Czysty" programista tylko doinstaluje sobie soft, u mnie to nie działa. Każde dokształcenie to kupno zestawu dev, jakieś podstawowe shieldy, nie obędzie się bez zrobienia całkowicie nowego urządzenia-demo bo najlepsza nauka jest na "życiowych" projektach. Nie biorę już tutaj nawet pod uwagę wejścia w soft Altriuma. Spoglądam na oferty pracy dla elektroników-konstruktorów / programistów embedded C, w zasadzie jest tylko kilkanaście ofert. Niestety ale próg wejścia w doszkolenie się dla tych ofert to kilka miesięcy dłubaniny w sprzęcie i sofcie. Do tego totalne zero gwarancji że te oferty pracy jeszcze będą, zarobki ściśle tajne.

Niestety jest to ślepa uliczka, melduję się tutaj jako kolejny poległy żołnierz.

Mam do Was proste pytanie: bare metal embedded c programmer, na jaki język się TERAZ przekwalifikować żeby za jakieś 6mc w Warszawie mieć chociaż 6k na rękę? Chciałem wejść w C++ ale i tutaj z ofertami cienko. Wiem że będę startował z poziomu juniora, mimo że w C siedzę prawie 5 lat. Najbliżej C mam Javę i moje pierwsze przemyślenie to właśnie ten kierunek. Wstępny research dla "juniora" wskazuje mi na podstawowy pakiet Java + Spring + Hibernate + Git.

Wszelkie opinie i Wasze przemyślenia/doświadczenia mile widziane. Lubię to co robię (elektronika), chciałbym to dalej robić ale zapadła decyzja o postawieniu już na tym krzyżyka.

1

@Kabak15: Dlaczego zakładasz, że nie ma szans na podwyżkę w obencnej formie ? One-man-army działa też w drugą stronię - bez Ciebie firma staje się bezbronna. Zakładam też że skoro nie ma juniorów i jest jak z programistami cobola, to raczej to firmy zabijają się o specjalistę a nie na odwrót. Sprawdzałeś jak szybko firma mogłaby znaleźć kogoś na Twoje stanowisko ? Na chwile obecną to raczej zakładałbym że Twoje wypowiedzenie sprawiłoby, ze niejednemu z managementu zrobiłoby się ciepło w dolnej części ciała.

0

@W2K: Jest dokładnie tak jak napisałeś i masz bardzo słuszne spostrzeżenia, doprecyzuję to jednak:

  • Jeśli coś bym teraz dostał (a po sytuacji w firmie widzę że nic z tego nie wyjdzie) to jest to wciąż ślepa uliczka, można powiedzieć że tutaj osiągnąłem już max co da się zarobić w tej firmie, po odliczeniu kosztów B2B zostaje mi tyle co "zwykły programista junior" z np rocznym expem. Tyle że ten "zwykły" jest na samym starcie drabinki, a ja w elektronice już na górnych szczebelkach.
  • Wejście na kolejne szczebelki elektroniki wymaga tyle energii i finansów że jest to mało opłacalne. Musisz się też mocno wyspecjalizować w jakimś szczególnym zagadnieniu. Pozostajesz zblokowany w 1 konkretnej dziedzinie na (w zasadzie) 1 konkretnym hardware w 1 konkretnym software. Bardzo niebezpieczna sytuacja.
  • Produkcja elektroniki jest opłacalna, inwestowanie w R&D już nie, sama licencja VendorID dla urządzenia z modułem Bluetooth to ponad 20k zł, soft Altriuma to już kosmos, mniejsze firmy nie wydadzą na to kasy, czasem trzeba dokupić sprzęt pomiarowy. Tworzysz fizyczny produkt, to nie jest czysty soft "zwykłego" programisty gdzie możesz coś ściągnąć z Git Huba. Duże firmy zagraniczne mają kasę na juniorów, nasze firmy nie. Tutaj nie ma żadnych inwestycji
  • Startupy z elementami elektroniki są fajne, na początku góra kasy od inwestorów i mały chaos w projektach. Potem zostaje już tylko chaos i zgaszenie światła, produkt który powstał to jakiś ulep nie mający nic wspólnego z marketingową prezentacją. W większości przypadków tak to wygląda.
  • Nie ma ludzi do pracy, nie ma nikogo na moje miejsce, nikt za tyle pieniędzy nie przyjdzie, może gdyby to był wieloosobowy zespół ale nie One Man Army. Student który zrobił coś na Arduino jest bardzo w porządku ale urządzenie ulep vs komercyjne to dwie różne sprawy, za duże ryzyko fuckupu. A kto jest ogarnięty to już sobie siedzi na jakimś stanowisku i widocznie płaca mu więcej niż mi skoro go nie zmienia.
  • Moje wypowiedzenie podgrzeje atmosferę. Będzie zapewne propozycja podwyżki ale jak wyżej napisałem, to nie rozwiązuje problemu zarobków, chwilowe ugaszenie pożaru. Chcę się skupić na przebranżowieniu aby permanentnie rozwiązać ten problem i mieć większe pole manewru (np jakaś inna technologia programistyczna, framework, itp)
1
Kabak15 napisał(a):
  • Nie ma ludzi do pracy, nie ma nikogo na moje miejsce, nikt za tyle pieniędzy nie przyjdzie, może gdyby to był wieloosobowy zespół ale nie One Man Army. Student który zrobił coś na Arduino jest bardzo w porządku ale urządzenie ulep vs komercyjne to dwie różne sprawy, za duże ryzyko fuckupu. A kto jest ogarnięty to już sobie siedzi na jakimś stanowisku i widocznie płaca mu więcej niż mi skoro go nie zmienia.

No to dokładnie właśnie argument za tym, żeby postawić szefom ultimatum - 50-100% podwyżki albo spadam.

Szkoda, żebyś się przebranżawiał, nadal myślę, że w jakimś korpo od elektroniki by Cię docenili, np w Poznaniu wiem że dużą firmą jest np Kimball Electronics.

Kabak15 napisał(a):

Chciałem wejść w C++ ale i tutaj z ofertami cienko.

Czy ja wiem, może troszkę mniej niż na jave, ale nadal to o wiele więcej niż na embedded C. I zarobki też nie są złe - kumpel w c++ ma porównywalne z korporacyjną webową javą (tak, wiem, ciekawe porównanie :D )

1

Zmień kraj, w Niemczech powinni Ci lepiej płacić a i roboty będzie więcej. W wawie możesz uderzać do firm np. z branży medycznej (Medical Algorithmics, Sonova). Wydaje mi się że we Wrocku łatwiej było by o pracę w takim np. ABB lub innej niemieckiej firmie. W polsce niewiele się hardware'u robi i trend też nie jest wzrostowy...

0

Jak widzisz taki opis, to gdzie sa problemy?
Responsible to support projects/customers in regards to AUTOSAR related topics:

• AUTOSAR Workflow

• AUTOSAR - BSW generation

• Porting basic software to other micro controllers

• Responsible to design, implement and test AUTOSAR -BSW modules

• Responsible for acceptance testing of third part supplied software modules

Qualifications

• Must possess a MS or BS in an engineering discipline (EE, SW) with a minimum of 3 to 5 years of experience in the field of embedded software development.

• A good understanding of C, low level micro controller programming, and of real time software development is mandatory.

• Must have solid understanding of in vehicle communication protocols like CAN, CAN-FD, LIN and automotive Ethernet.

• Must be familiar with in vehicle diagnostics.

• Knowledge of AUTOSAR is highly desirable.

Soft Skills:

• Strong multitasking skills

• Excellent oral and written communication skills in English.

• Excellent team player and skills in interacting with global clients.

• Excellent problem solving skills

0

Mieszkam w Wawie, nie mam możliwości przeprowadzki. Jakakolwiek działalność w elektronice nie działa "zdalnie". Nie trzeba codziennie siedzieć w biurze ale to na odległość nie działa. Stąd zawężam szukanie pracy tylko w Wawie.

Panowie, problem się rozwadnia. Podstawowa sprawa jest taka że gdy drabinka płacowa u mnie jest już dość wysoko, to "zwykły programista" dopiero postawił pierwszy krok. Nie chcę dalej się pchać w coś gdzie znowu utknę. Dalsze etapy specjalizacji w elektronice to coraz węższa droga. Tak jest wszędzie ale tutaj to na prawdę robi się wąsko. Ilość ofert w tej branży jest bardzo mała w porównaniu z taką np Javą. Łatwiej by mi było wystartować od zwykłego "klepacza".

@nowy_kret_2 :

  • totalnie nie miałem styczności z AUTOSAR
  • CAN, LIN, Ethernet, nie robiłem projektów z tymi interfejsami
  • vehicle diagnostics, mam samochód ale w tej sprawie moja wiedza jest na poziomie "blondynki"
  • Excellent oral and written communication skills in English, odpadam, na codzień działam z softem i dokumentacją po angielsku ale w mowie i piśmie jest u mnie słabo
0

Doucz się angielskiego i uderz w embedded linuxy i/lub telco.

Nie chcę brzmieć napastliwie (rozumiem Cię i życzę Ci powodzenia), ale zasadnicze pytanie brzmi czy znasz C i umiesz w nim programować czy jesteś przyuczonym do pisania elektronikiem.
Mówię to jako człowiek, który sam przeszedł podobną drogę kilka lat temu (tylko będąc jeszcze mniej doświadczonym elektronikiem).

Co do rynku w Wawie - niestety nie pomogę.

0

No to co ci w zasadzie zabrania iść na klepacza crudów w Javie? Chcesz od nas lepszej propozycji na język programowania? Fan C# powie że C# jest lepszy. Ja mogę powiedzieć że Scala jest jeszcze lepsza (chociaż ofert pracy jest mniej niż w Javie) i to tyle merytorycznej dyskusji.

No może ewentualnie z języków niskopoziomowych Rust (jeśli nie C++), ale to też trudny język programowania (długo trzeba się go uczyć) a ofert też mało (porównując z Javą)

0

W Warszawie są firmy związane z podpisem elektronicznym ,możesz spróboać , mnie co prawda olali ale może to był takie kobietom dziękujemy
a do nauki jednak radzę C++ i CUDA

0

@alagner programowanie w C jako integralna część powstawania urządzenia. W latach młodości pisałem w Basic, Bascom, teraz czasem drobnostki w C# jeśli potrzebuję "symulator" do którego podpinam nowy hardware, napisałem też soft w czystym assemblerze na AVR z obsługą FAT16 + LCD + transmisja po RS485 customowym protokołem + obsługa zegara LED z wyświetlaczami, PWM, różnymi efektami wizualnymi itp. To z assemblerem to był taki słomiany miś, działało bezbłędnie ale nikt nie wie po co to powstało. Więc... chyba programistycznie potrafię ogarniać problem, podejście do rozwiązania różni się tylko od języka.

1

Nie wiem jak stoisz z tematami takimi jak testowanie, dobre praktyki czy znajomość narzędzi (kontrola wersji np.), bo z tego co widziałem wielu embeddowców z tym ma dość mało styczności.
Niemniej - przejdź się na rozmowę do jakiegoś telco i próbuj, zdalnie to obecnie też żaden problem.

Automotive’u i podobnych z premedytacją nie polecam, ale może Tobie spasują. :)

1

Zanim poddasz się, uderz do tej firmy: https://3mdeb.com/pl/praca/ . Jeśli to co piszesz jest prawdą, myślę, że spokojnie wynegocjujesz sobie swoje 6k z pracą zdalną (nawet jeśli nie ma do końca oferty dla ciebie, „CEO” jest kumatym gościem i będzie wiedział jak użyć twoich umiejętności), ewentualnie raz na jakiś czas będziesz musiał wpaść do Trójmiasta, co raczej nie jest wielkim problemem, bo są dobre połączenia kolejowe z Wawą. Firma zajmuje się kilkoma rzeczami, corową działalnością jest tworzenie firmwareu pod konkretne płytki (brzmi jak coś co umiesz, albo szybko się przyuczysz), ale też mocno ciśnie w stronę firmware-security — rynek góra forsy dla najlepszych, może się sprawdzisz? Też widziałem, że produkują swoje urządzenia, między innymi do zdalnego testowania sprzętu. Myślę, że już jest dojrzałą technologią i będziesz dzięki niej mógł robić zdalnie. Powodzenia.

0

@alagner: staram się tego pilnować. Tak, mam swoje funkcje do testowania swoich funkcji, jakkolwiek egzotycznie to brzmi w embedded to odpalam całość na PC jako aplikację c++ (oczywiście w niektórych miejscach oderwaną od hardware, bo na PC np I2C mi nie ruszy) i puszczam testy. Dest_buff_size=0, Dest_buff_size=1, brak wskaźnika do Dest_buff, za mały Dest_buff, wymyślam każdy wariant na którym mógłbym wywalić daną funkcję. Chwalę to sobie, ogromna oszczędność czasu i komfort pracy. Soft na docelowym urządzeniu odpalam dopiero jak z emulacji na PC więcej nie wyciągnę.
Z Gita mało kto w embedded korzysta bo zazwyczaj siedzi 1 programista "moje, wszystko moje i tylko moje" więc poza backupem aktualnej pracy nie ma dużego ciśnienia na używanie tego. Do tego "środowisko programistyczne" dla embedded obecnie wygląda tak samo jak 30 lat temu, no może kolor ikonek pozmieniali. Debugowanie czegokolwiek na żywo z CPU to już sodomia, "this variable was optimized", no bajer, dopisz volatile to ci łaskawie będzie w końcu wyświetlało co tam jest.
Z dobrych praktyk też staram się korzystać, tzn nazewnictwo stałych, zmiennych, nazwy funkcji, minimalna ilość global variables, używaj tablic zamiast wskaźników jeśli sie da, formatuj kod na bardzo czytelny, itp.

0

@elwis ciekawe, w wolnej chwili odświeżę swoje CV i tam podeślę, nie mogę pokazać komercyjnych projektów ale mam trochę tych ciekawych "pobocznych".

0

C#/Rust/Go/Typescript

3

Kurcze, piszę w PHP. Większość to CRUDY czy poprawianie czcionki itp. Po prostu nuda.
Tobie też się znudzi po roku czy dwóch.
Pod Warszawą jest np. Creotech - Piaseczno. Nie wiem jakie mają warunki co do pracy ale bardzo często są od nich ogłoszenia i teraz zresztą też:
https://www.pracuj.pl/praca/inzynier-elektronik-piaseczno,oferta,1001352080
Spróbuj. Ja na Twoim miejscu dwa razy bym się zastanowił zanim zamiast jakiejś twórczej pracy miałbym robić odtwórczą.
Zobacz ile postów tu jest z cyklu "mam dość CRUDow, co mogę robić innego".

1 użytkowników online, w tym zalogowanych: 0, gości: 1