Embedded Developer, a day in the life…

A common question on programmer forums is “what’s it like to be an embedded developer?” or “what would I do day to day?“. That is a good question. What are you going to be doing with most of your time?

Embedded.com just published the latest embedded survey.¬†We can talk in big generalizations, and use the survey to back up our assumptions. What would an embedded developer be doing most days? If you’re at all like me, the ideal setup is to write code, and ship, unfortunately that is not the complete job description.

As a new, fresher, green embedded programmer, what will it be like?

Bug or small?

You will work at a small company, 47% of us work at companies with less than 100 people. 68% are in companies under 1,000 people. Is this good or bad? Depends on your point of view. Personally large companies have been… well honestly boring. Smaller companies fit me better. You get to know people in other roles, your project is usually the life blood of the company. Why work on a project if it is not central to the company?

Most of your time is spent debugging software. Yes, you are writing a lot of code, then it has to work. Time spent debugging should go down over time. It never does.

The amount of time spent in architecture selection from the survey seems really huge. Could the question have been mistaken to be working on architecture, versus actually choosing a software architecture. It contradicts a later statistic that most project are continuing and extending existing code. Time spent architecting the code and designing is time well spent. Choosing an architecture is a different activity. Pick one and get coding, there is no better way to see if it works.

Consumer or industrial?

What will you be working on? Something cool like cutting edge audio equipment, or video processing? No, odds are it will be industrial. A device for the factory floor. I’ve done that and it is still cool. There are more “smart” devices in a factory that will ever exist in a home.

Having done both industrial and consumer designs, I prefer industrial. Building a high volume and low cost, and low margin device to be sold to consumers is tough. The deadlines are tight, the margins are low, and the processor is usually the smallest possible. There is a sweet spot where an industrial device for a niche is expensive, high margin, and has a long life. If the niche needs the device, and your company has the best solution, very little marketing is required.

The internet of things is a real thing, especially for industrial systems. The survey says it is growing fast. You may be working on adding communications, and networking. Everyone needs to worry about security. Once any device is connected in any way, it can be hacked. We have a responsibility to do as much as possible to secure devices.

You and I can not hide behind the idea our device is too obscure, small, or unimportant to hack. Even for a CAN bus in an automobile, or Industrial HART, they can be connected. Zigbee, and Bluetooth mesh can be exposed to the big bad internet through a cell phone. Maybe your device is just the gateway to the real target. The whole industry has to take security more seriously, especially if 63.5% of us have projects dedicated to the IoT.

You will be adding software features to an existing project. The code will be sensitive to real time constraints, so be careful!

If you are writing the code, you are in the majority. There will be more software than hardware people on your team. My experience matches that assessment. In fact most places there are 5 or 6 to 1 software to hardware people, at least where I have worked. The survey says 60/40, and I think that is off the mark.

Of course it is late…

Now we get to the difficult part. Your project, it’s behind schedule. Sorry, but it will be. Luckily the project is scheduled for less than a year.

That will be a year of C code. Yep, good old C code. The vast majority of embedded projects are in C. And your next project? C.

From all of this what is the usual day like?

Write C, debug C, and go to a design and planning meeting a few times a week, get some flack from marketing and management for being behind schedule. I sincerely hope you are also doing code reviews and writing tests at the same time.

The bottom line

But, is that the real question? Let’s drop to the bottom line. How much? Show me the money!!!

This survey leaves out the salary question. But I won’t leave you hanging. The data is a few years old, but Jack Ganssle has a 2014 Salary Survey. Jack asked the subscribers to his newsletter for salary information. You should subscribe, and the people who respond probably make more than average, because they read the newsletter. He says in the the post, this is not scientific. The embedded survey was more rigorous.

There are also numbers in Payscale.com.

Of course with salary it all depends. The first thing is based on location. With the assumption from the beginning, as a new engineer, in the USA, you can be making over $60,000. That is not too bad, right out of school. It could help with those student loans. As a veteran you can expect to double that amount. I think that is pretty good for working on fun and interesting projects, mostly indoors, and they usually give you free coffee.

I’ll take it.

 

2 thoughts on “Embedded Developer, a day in the life…”

  1. Interesting post! I would want to read more about what kind of embedded industrial devices you work on! For example, what kind of devices for the factory floor etc.

Leave a Reply

Your email address will not be published. Required fields are marked *