Tell me more ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

This question already has an answer here:

How should I go about making a switch from doing help desk type work to embedded software development or any type of development that is done at a lower level?

I will finally finish my degree in December and really want to get started building systems. My degree is an Applied Computer Science degree. I have taken classes in Assembly, C++, VB.NET, and Java but have not been able to use any of these to a great extent in any of my jobs.

If anyone has advice on how to go about getting into the embedded development field that would be great.

share|improve this question
6  
As a new graduate, it won't really matter what your previous jobs were. Just start applying to entry-level embedded jobs. – Anna Lear Nov 8 '11 at 16:29

marked as duplicate by MichaelT, Bart van Ingen Schenau, gnat, Martijn Pieters, MadKeithV May 6 at 8:50

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

5 Answers

It all depends on the expectations your potential employer has on you in near term and long term.

It appears that its' been long time that you have done coding on lower level languages and you are relatively new. There is nothing wrong with that - it just implies that there is learning curve involved in your case. If your employer is willing to give you that time and you enjoy and learn things that might be great. If you run into a project which is already in hot demands - that might just put you in so much pressure or affect your performance.

share|improve this answer
For the two of you that have already posted responses, Thank You! I really didn't expect any responses this quickly. – Lance Nov 8 '11 at 16:47

Yeah being that you graduated and have some technical experience already you have high chance of landing a gig,. I would emphasize your technical system knowledge in the interview. Also I would start some small Netduino and projects as well. I think a perfect project would be a small web application that runs of a small webserver off a small embedded device. (JSONP) Then you can have mini apps on embedded devices" that do random stuff like sensor arrays that collect tempeture or some other small and random task.."windspeed-inside outside". Then all this data could be recorded in the program then pushed to the mini webserver for tracking. I'm just throwing random ideas that would get the interviewers attention. These type of projects to not have to be perfector pretty.. It just shows you understand the abstaction and have passion for it.. plus there are a thousand small projects you can go on..

share|improve this answer
I have 25 years embedded systems experiance - you are spot on, the guy that can show me a pet project (doesn't even have to work), and knows the difference between a scope probe and soldering iron will get the job. – mattnz Nov 9 '11 at 8:09
Mattnz.. Are you serious cause I have tooled with the idea of going embedded myself. Currently, I have been involved in full-stack .net web development for 6 mos along with my education in BSSE. I was thinking of taking this approach myself once I get a year of web under my belt. I have a few (Texas Instrument)Launch Pad's and was thinking doing a project. Is there any more tips? – MiB Nov 10 '11 at 18:47
Learn about memory management, you should be able to instinctively tell me (roughly) how big a stack frame is for any routine. You need to understand that it takes a million of instructions to get to int main(...) in a C program, and many more in C++, if you can describe why, you are a long way there. – mattnz Nov 13 '11 at 20:50

I wouldn't think there are lots of positions in this particular field for software development. I would try to find out about the market, how many jobs are available, typical required skillsets, etc...

Also, I would go look for someone that has already done what you are trying to do, successfully, of course. Opinions may or may not help, but heading down a path based on a false assumption leads to frustration!

Here is a link that address this in detail from a developer that has done it and offers some practical advice on how to get into the field and what he feels is required.

http://www.ganssle.com/startinges.htm

share|improve this answer
-1 for the comment about number of jobs - reasons, its very geographic, and mainly because it's incorrect and it does not answer the question. – mattnz Nov 9 '11 at 8:06
I removed it. It is geographic, doesn't answer the question, but why is it incorrect? – James Drinkard Nov 9 '11 at 14:05
It's incorrect because there is a lot of work in embedded systems. It's not like Apple, Android and the Web stuff, it has a lower profile. Where do you think the software that runs just about every appliance in you house, you car, factories etc comes from. Next time you go out, look at any box with electricity going into it, and I bet 99% have some form of embedded micro requiring software.... If it is has a battery, it probably has a micro requiring software. Someone has to program each and every one of these things. – mattnz Nov 9 '11 at 21:15

I was an embedded developer for the first half of my career.

Embedded development is really one of those "chicken and egg" fields. You need actual experience to be considered for a position, but you can't get a position without some experience. A good firmware developer has a totally different skillset and mindset from other types of developers.

A good embedded developer will also have a grasp of hardware, at least from a system level perspective. You didn't explicitly mention it, but I would expect you to know about how memory works, know about interrupts, registers, address spaces, etc. I would also expect you to know how to read a datasheet and how to wield an oscilloscope and a logic analyzer.

I landed my first gig this way via an internship. At the internship I went out of my way to learn and demonstrate what I was learning. This meant putting in extra time in addition to the tasks I was given, before then would let me do real embedded work.

If an internship isn't an option, then learning and becoming proficient with one of the various DIY microcontrollers (or similar) would be a good start.

share|improve this answer

Take some hardware courses. Digital logic, computer architecture, control systems, signal processing. Get a cheap embedded processor development board or robotics kit, connect it to some sensor, and make it do something interesting. Write some small but non-trivial iPhone or Android apps.

Your ability to talk about any of the above will give you a big advantage when applying or interviewing for an entry level embedded systems job.

share|improve this answer
"Write some small but non-trivial iPhone or Android apps." - embedded is now distinct from mobile. – mattnz Nov 9 '11 at 8:11

Not the answer you're looking for? Browse other questions tagged or ask your own question.