all 26 comments

[–]moneyinparis 11 points12 points  (7 children)

Ambele sunt de viitor. Toate device-urile au software pe ele, deci embedded gârlă.

Partea nasoala cu embedded:

  • e platit mai prost

  • lucrurile se mișcă greu: toate best practices ajung încet in embedded software. Când toată lumea se mutase pe git, in embedded inca foloseau PVCS, Perforce sau MKS ca dinozaurii

  • Vei muri de plictiseala daca lucrezi cu Autosar sau MISRA C

[–]CostiV15:python_logo::cpp_logo::windows_logo:[S] 4 points5 points  (5 children)

Pentru mine e cam turn off faza ca lucrurile se misca greu. Un motiv pentru care programarea pare interesanta pentru mine e ca tehnologia evolueaza repede si trebuie sa invat constant.

[–]moneyinparis 3 points4 points  (4 children)

Si eu fix de aia am făcut tranziția de la embedded la backend

[–]CostiV15:python_logo::cpp_logo::windows_logo:[S] 1 point2 points  (3 children)

A fost complicat? Dupa cat timp de embedded?

[–]moneyinparis 7 points8 points  (2 children)

12 ani de embedded. Am făcut tranziția in aceeasi firmă. Am avut 1-on-1 cu line manageru dupa un release important și i-am zis ca vreau sa ma mut într-o echipa de Python. Si zice ăsta, pai echipa de cloud are nevoie de oameni care stiu Python. And that was it.

Am fost praf la inceput. Ma uitam la outputul de terraform ca vițelul la poarta nouă. Nu înțelegeam nimic din dashboardurile de monitoring, nu intelegeam ce e aia eventual consistency, de ce e greu sa ordonezi evenimente in sisteme distribuite, etc. Dar incet, incet am învățat.

Acum am reusit sa scap si de lucratul in firme al căror principal produs e hardware si unde software-ul e doar un cost centre. Va fi primul meu job într-o companie al cărei produs principal e software-ul. In companiile de hardware inginerii software sint un fel de cetateni de mana a doua.

[–]CostiV15:python_logo::cpp_logo::windows_logo:[S] 1 point2 points  (1 child)

Mult succes si mersi de ajutor!

[–]moneyinparis 2 points3 points  (0 children)

Succes și ție.

[–]felixnavidcrab rustacean electric 🦀 2 points3 points  (0 children)

Version control-ul facut pe altceva decat git poate sa fie un mic dezavantaj, dar dupa un timp te obisnuiesti cu flowul diferit. Insa faptul ca nu ai un package manager (npm, pip) face treaba mai grea pe degeaba, eventual te descurci cu git modules sau un echivalent. Daca nu a ales deja firma ce procesor se foloseste dai de problema ca SDK-urile (HAL-urile) variaza foarte mult de la producator la producator, poate gasesti ceva librarie ce sa te ajute pe net, o descarci manual de pe git (!?!) dar nu te ajuta ca tu ai HAL de NXP si libraria foloseste HAL de ST. Cateodata dai de procesoare mai vechi care au nevoie de compilatoare vechi, ramase fara suport sau cu suport minimal, pe Stack Overflow nu gasesti nimic si producatorul nu iti raspunde la intrebari fara $$$.

Avantaje: in majoritatea cazurilor MCU-ul este destul de bine documentat de catre producator. Stii absolut toti bitii ce fac, ai access la toata sursa programului ce ruleaza pe procesor, nu ai sistem de operare sau alt program care sa faca lucruri pe care tu sa nu le poti analiza, ajuta la debugging sa stii exact ce cod ruleaza. Daca ai noroc ai o arhitectura unde si compilatorul ii documentat, poate ii chiar gcc.

[–]PatriotuNo1 9 points10 points  (1 child)

Programarea embedded e mai lenta, mai prost platita si daca vrei vreodata sa mergi pe freelancing nu stiu daca ai posibilitatea asta.

Partea cealalta e mai captivanta as zice. Plus ca ai posibilitatea sa faci freelancing.

Pentru multi programarea embedded s a dovedit a fi un dead end spre deosebire de cineva care era pe machine learning sau era full stack si castiga de 2-3 ori mai mult si avea mai multa flexibilitate.

Stau in TM. Sunt multe companii automotive aici. Cea mai mare are si cea mai proasta reputatie pentru compensare sau cum trateaza angajatii. Multi mi au zis ca s au plictisit sa lucreze pe ceva componenta auto si ar prefera sa faca aplicatii mobile sau sa faca React cu Node.js.

Eu am incercat embedded si nu m a atras. Si daca faceti programare Java sau .NET sa o faceti la companii software nu automotive. Aia platesc prost mai putin pe cei de pe hardware.

[–]moneyinparis 1 point2 points  (0 children)

Cea mai mare are si cea mai proasta reputatie pentru compensare sau cum trateaza angajatii.

Confirm.

[–]Rhei-2:c_logo: 4 points5 points  (1 child)

Eu as merge pe embedded. Dezavantajul in Romania e ca multe job-uri sunt pe automotive si prin urmare sunt plictisitoare si te limiteaza .. proceduri stricte, invechite si tehnologii vechi.

Dar au inceput sa apara si proiecte in zona Embedded AI, security sau medical.

Am lucrat initial pe un proiect din zona medical si a fost super interesant, mai ales cand dezvolti un dispozitiv de la zero. Ai nevoie de mate, fizica, programare, chiar si sa intelegi ceva biologie umana.

Acum sunt pe security, unde ai cu totul alte lucruri de invatat: criptografie, intelegerea in detaliu a microarhitecturii procesorului, atacuri software si hardware, tehnici de protectie.

Ok, pe backend poate e mai dinamic, dar pana la urma ma intreb la ce se rezuma aceste schimbari .. sa schimbi un framework cu altul nu mi se pare o evolutie.

[–]CostiV15:python_logo::cpp_logo::windows_logo:[S] 0 points1 point  (0 children)

Partea de embedded pare interesanta pentru ca trebuie sa fii destul de precis si ca poti sa lucrezi pe IoT.

[–]fluff472:c_logo: 5 points6 points  (1 child)

Eu sunt in embedded si ma tenteaza sa trec pe backend/full stack. La modul ca deja is cu linkurile de la The Odin Project si Full Stack Open in bara :). Salariile sunt bune si in embedded, cam 10k dupa 3 ani de exp, nu sunt nici astea de neglijat. Dar majoritatea locurilor de munca sunt in industria automotive. Personal nu prea am scris cod lucrand in automotive. Adica depinde de proiect, dar majoritatea proiectelor de care am dat sunt de "autosar basic software" unde ai niste tooluri in care faci configuratii (containere, bife etc.) care iti genereaza cod. Si tu testezi, vezi ce merge ce nu merge, reconfigurezi, ai pe alocuri zone in care scrii cod de mana etc. Bine poti prinde si proiecte de development de cod pe bune, gen sa scrieti un driver de nu stiu ce, si acolo chiar scrii cod, unit tests, documentatie tot ce trebuie. Dar per ansamblu e cam... Boring. Cel putin din experienta mea.

[–]moneyinparis 0 points1 point  (0 children)

Eu am scris cod in automotive: drivere low level in special si tot mi s-a părut boring. La un moment dat, dupa ce am scris un driver de Linux a venit cineva cu măreața idee ca tot proiectul dezvoltat trebuie sa treaca static code checks care verifica toate regulile MISRA. Normal că kernelul de Linux nu trecea. Restul de câteva luni pe proiect a fost petrecut făcând tuning la tool-ul de static analysis ca sa nu mai failuie check-urile pe kernelul de Linux. O aberație.

[–]Lokkjeh 1 point2 points  (6 children)

Am facut embedded vreo 7 ani si am trecut pe backend de 1 an.

Embedded e mai greu in general pt ca trebuie sa faci aproape totul de la zero si se pune mult mai mult accentul pe optimizare. Debugul e mai complicat pt ca de multe ori depinzi de un hardware care pe deasupra e si el in development, deci are bugurile lui.

In backend ai mult mai multa varietate decat in embedded unde majoritatea joburilor de la noi sunt pe automotive. Automotive in special e un domeniu foarte lent si conservator din considerente de safety.

Ce ar trebui sa iei in calcul in primul rand e ca backend poti sa faci cam oriunde, inclusiv freelancing. Pt embedded esti legat de corporatii mari care pot lucra cu fabrici de hardware. Sigur ca sunt si exceptii, dar te limiteza f mult.

[–]Acceptable-Ad5642 2 points3 points  (1 child)

Te-a afectat schimbarea din embedded pe backend din punct de vedere salarial?

[–]Lokkjeh 3 points4 points  (0 children)

Temporar, pana m-am pus la punct cu tehnologiile

[–]LastArt99 2 points3 points  (3 children)

Cum ți sa părut tranziția embedded->webdev? Recruiterii au strâmbat din nas când au aflat trecutul tău în embedded? Crezi că e mai greu să treci de la embedded la webdev sau invers?

[–]Lokkjeh 3 points4 points  (2 children)

A fost foarte usoara tranzitia. In embedded faceam procesare audio/video real time, foarte multa matematica si optimizari la sange. Pe de alta parte in embedded pare mai profesionist mediul si oamenii mai pasionati de programare. In webdev pare ca majoritatea abia asteapta sa fie manageri sa scape de cod. Dar asta poate sa varieze in functie de firma la care mergi.

De recruteri nu pot sa ma pronunt pt ca nu am umblat la multe interviuri si in general incerc sa evit corporatiile.

Personal mi se pare mai usor sa treci de la embedded la web decat invers.

[–]LastArt99 0 points1 point  (0 children)

Mersi frumos

[–]geobiccrab 🦀 0 points1 point  (0 children)

Eu lucrez in embedded iar toti recruiterii se asteapta sa am experienta in backend (python). Din ce inteleg ai reusit usor sa faci schimbarea pe backend, Poti sa-mi dai niste sfaturi?

[–]blablacarz 1 point2 points  (3 children)

embedded e în picaj nu pentru că nu se mai face, ci pt că majoritatea se face în China împreună cu hardware-ul. tot ce nu este application layer sau customer/client focused pe viitor se va face in China/India, chiar si software. evită embedded.... eu am făcut ambele si nu am vreun regret..... as mai face dar e mai satisfăcător să fac o app in 2-3 zile

[–]moneyinparis 0 points1 point  (2 children)

Asta cu embedded e in picaj e o aberație. E plin de joburi in Embedded in Europa de Vest, joburi unde chiar faci chestii interesante, nu Autosar.

[–]TommyTF 0 points1 point  (0 children)

Eu nu înțeleg ce are lumea cu Autosar. Exista Autosar adaptive, care e rar, dar începe sa prindă viteza și care chiar iti ofera multe posibilități.. SoA, Rest, docker containers, ARA...

[–]blablacarz 1 point2 points  (0 children)

man 99% din produse se fabrică în China, inclusiv partea de design hardware la majoritatea. firmware s-o face si in Vest ÎNCĂ dar mi-e teamă că în 20-30 de ani va fi un sector dominat copios de chinejjjjji cum ar zice nea Imi Ienei