Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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

marked as duplicate by MichaelT, Bart van Ingen Schenau, gnat, Martijn Pieters, Joris Timmermans May 6 '13 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.

As a new graduate, it won't really matter what your previous jobs were. Just start applying to entry-level embedded jobs. – Adam Lear Nov 8 '11 at 16:29 – Joe Internet Nov 8 '11 at 17:18

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

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

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.