How do jobs look in the embedded world?

I am in love with embedded design and working with micro controllers and RTOS's, but I have no idea what the "real world" is like since I am in Uni still.

How do jobs look for embedded system engineers? Are the salaries good?

Attached: .jpg (3840x2400, 943K)

Embedded is getting really big. Nowadays the frameworks to build embedded apps and systems are getting a lot better, and the whole give-this-coffee-mug-internet process is starting to industrialize. IOT is not a meme, even if it is botnet.

>C89
>no version control
>IDEs
>Windows only toolchains
>$5000 per seat
>F7 is my build script
>debugging timing issues with oscilloscope
>no unit tests
>test by having a human being go through a checklist
>be really autistic about code portability
>read article by embedded guru about some implementation detail, people in the comments point out it's actually undefined behavior
>make less money than the webshit code artisan fresh out of code camp

Do you even know how companies are run? All the embedded companies I have talked to have

> Version control
> Unit tests (either mocks or a harness like unity)
> Timing issues are done with logic analyzers and working with EE's
> Good designs will be portable, and only the lowest layer of the API will have to be replaced

There are plenty of jobs out there. I think the industry is low on embedded programmers in proportion to their supply.

I bet it's a bitch to get your foot in the door for the first time, though.

my experience:
>GCC toolchain C11 support
>unfortunate migration to C++
>gitlab server with docket test runners
>attempt to make more of the software hardware-independent
>thus better testing
>thus better IDE-agnosting development setup
>ARM Cortex-M everything thus easy portability
last two lines are tru though. plus I live in shit country where average salary is 1/4 of murica average. not even comparing to san francisco salaries.

I'm the sole developer at a small company and I do both the hardware and software and I absolutely love it, dream job.
Spend my days alternating between hardware design and programming - mostly low to medium speed type designs (although lately some bluetooth and ethernet support has started to be requested, but typically sub 100MHz stuff, either Cortex M0 or M4s, so hardly any complicated PCB layouts, majority I get away with 2-layers, so far never beyond 4 layers.

Work on the schematc, look for suitable components, work out the designs, some back and forth with colleagues.
Once the hardware is done and the first prototype board arrive I build it by hand (some handsoldering + reflow soldering) and I usually have some basic code up and running (i.e code that I reuse from previou projects) and spend the next days/weeks on the code.
If nothing needs to change on the pcb, I send off an order for the pcb + components and prep the pick & place shop we use.

Altium Designer for the pcb layout.
Segger tools (JLink, Ozone) with gcc + C99 for the code, and lots of custom tools, testing programs, test rigs, etc.

My experience as IoT dev.
>C++
>cross-compiling everything and its dependencies.
>write my own build system with a ton of build scripts and makefiles (there's Meson and Ninja but I prefer the old fashioned way)
>frying dev boards while using oscilloscope probes because fat fingers
>programming for microcontrollers is easier.
>household consumer products usually don't need RTOS

>There are plenty of jobs out there. I think the industry is low on embedded programmers in proportion to their supply.
I have the exact opposite experience. Employers can pretty much dictate terms entirely.

t. embedded developer with 5 year experience in the industry

Prepare to encounter electrical engineer with Pajeet-levels of programming skills.

I’ve seen shit like the following:
- Project manager not “trusting” git, he copies from repo out of branch and then copies back in when he does, leading to a bunch of build files and config files and test stuff being checked in all the time.
- He also spends most of the time getting his self-written text editor that he made in college 20 years ago to work and forces everyone to adopt the only code style (indendation, bracket positions, etc) it supports
- CTO believing that EEs and physicists are so smart that they can learn software development on the job if they lack programming experience. I’ve fixed bugs where people have hard coded their workstation IP addresses because they don’t understand how networking and client/server works.
- Another symptom of not understanding networks: we have a web GUI for configuring our hardware, some of our customers even run these public facing. Password validation was, until very recently, done in the JavaScript running on the front end alone.
- CTO (original developer of the code base) learned C++ while making the original code, but didn’t trust the standard library so he reimplemented his own string and vector class and prefixed these with his own initials.
- html for the configuration gui is generated manually through appending on strings and nesting tables and iframes. We had one client who had an issue with one of the reporting pages, turned out the ui for that particular page had over 4000 nested frames which caused the browser to run out of memory before the page was loaded
- sending two integer values to other probes was done in the following fashion: convert both numbers to string, append them to each other using a decimal point as separator. The receiver would parse the string as a float, floor it to get the first number and multiply it with 100 and subtract the first number to get the second number.

holy shit
and I thought some of my colleagues are bad, I can't top this not even close

The worst thing is that I went from a comfy and well-paying webdev gig to this for less salary. But it was a foot in the door for me, I quit after six months and went back to do a PhD. I'm now working at another company, which has its fair share of boomer electrical engineers, who among some things refuse to use git and any other build system than autoconf, but at least we have set up git-svn and we use CI with automated building and testing and our test coverage is increasing. But it is a hard time convincing these dinosaurs to adopt methods and approaches the rest of the programming world has done for the last 15 years.

>>make less money than the webshit code artisan fresh out of code camp
this

Attached: 1552005564175.jpg (944x978, 99K)

wait, Jow Forums always said embedded paid well??

>wait, Jow Forums always said embedded paid well??
all the good paying jobs went to Asia

Most of Jow Forums has never had a programming job. 90% of this board is just a bunch of insecure faggots desperately trying to justify their life choices such as choice of college and major (or deciding to drop out).

It's because instead of competing with just software engineers, you're also competing with EEs and CEs. Plus, outsourcing efforts by upper management have been more successful in hardware than they've been in software.

I don't talk to embedded companies, I work in them. Also I am the EE

Not to mention the decline in demand for embedded developers in general, since fewer and fewer are doing dedicated ICs from ground up. They just have a single HW developer putting together dedicated SoCs from third-party vendors and then some FPGA programming, before shipping it off to get manufactured somewhere else. MCs are either able to run Linux or have SDKs that allow you to program in Python and JavaScript.

I guess Qualcomm has a few, in San Diego.

Embedded is in an interesting place right now. Seeing babby "web devs" pull 300k+ has driven me to consider switching industries, but I think embedded is getting better now that the market is super hot and IoT is a buzzword.

Pay-wise, I think the ranges swing wildly. I'm pulling $200k+ and pretty good perks in Los Angeles at the moment. This is not typical, but it can be done.

That said, this is with a somewhat "hot" company and I'm fairly up-to-date with GNU tools, scripting, etc.

I'd be more than happy to talk and exchange notes.

>200k+
>any type of engineering
If you are speaking the truth, you are nowhere near the average (or median) for software devs. Embedded and systems programming salaries range between 80k and 150k in SV and in Austin, TX.

I agree I am nowhere near the "median" (though, where are you getting that figure? I find sites like Glassdoor can't be trusted). If you would've asked me a year ago I would've thought I was bullshitting, too. That said, I don't get mad RSUs or anything that you see on sites like levels.fyi

I think the line is getting blurred between "software engineering" and "firmware guy". Chip makers are creating pretty good HALs and open source tools and whatnot make it pretty easy to crank out functional, somewhat "safe" embedded code quickly. That said, you gotta be "with it" and not some greybeard who fucks around all day reinventing the wheel and twiddling with registers just to bring up an IC. I'm not talking about Arduino/RPi shit, either. Fuck that.

Anyway, I'd love to hear what "embedded folks" at places like Apple are pulling.

>I think the line is getting blurred between "software engineering" and "firmware guy"
The "firmware guy" at my company is basically a config monkey responsible for flashing configs onto STMs, and is getting paid way less than I am, because we are basically just putting together ICs from third-party vendors and slapping an FPGA on top of it.

I've seen this a lot. Plenty of places with a resident firmware "guy/team" are just slapping together some simple shit as opposed to engineering a real product. Those type of positions really drag the average salaries lower.

There is a big difference between being the guy that "toggles some GPIO to make a 'smart' trashcan blink an LED" and one that "builds an embedded architecture/system".

>Plenty of places with a resident firmware "guy/team" are just slapping together some simple shit as opposed to engineering a real product.
The thing is, we're primarily a software company that builds interconnect host adapter cards and switches. Our hardware is comprised of standard components from Broadcom and Microsemi, but it is our software that makes us stand out.

What is a "good" starting salary for embedded?

I would love to chat with either of you about your jobs,what is the best way to get in contact?

Realistic? $80k to $110k depending on where (in the US) you live. Maybe upwards to $135k if you graduated from Ivy League and work in SV.

This sounds so fake to me because I cannot comprehend that level of idiocy, but I know deep down in my heart it is real and that terrifies me.

Let me put it this way, it's a major reason why I quit before 6 months. I was desperate to get into embedded, since the number of positions aren't exactly abundant and most jobs go to people from EE because there is this preconception that EEs know how to program C and people tend to hire people who went to the same college/uni as themselves.

Reply in this thread. Sorry, I really don't want to divulge any personal info.

Haha I totally understand not wanting to give out your personal info to Jow Forums.

I just want to be the best embedded systems engineer that I can possibly be. So any recommendations on

> books to read
> webinars
> topics to study
> projects to try
> places to try and work
> skills to hone
> general advice on how to be better than everyone else

painfully accurate