Slashdot Mirror


Career Path for Embedded Software Developers?

timmgrant asks: "Inspired by a love of technology I have always wanted to develop embedded software for consumer electronics. I have just finished a computer science degree and have now been looking for work in that industry but it seems that every job in this field requires previous professional experience in embedded programming. For those that have made it into this field (or any other specialised field) what path did you take? What steps do you propose would take me closer to my ultimate goal?"

5 of 39 comments (clear)

  1. requires previous professional experience by LarryRiedel · · Score: 3, Insightful

    Maybe in an abstract/theoretical sense "previous professional experience" is required, but in practice I have found there is an open position to be filled and there is a hiring manager and people in the department, and maybe someone in human resources and/or a recruiter, and getting the job requires convincing them I am the best candidate and that I can do the job.

    As far as "professional" experience, I think experience having done something which was real and actually used for something is often close enough to "professional" experience. Nowadays it is nice that there are some relatively high visibility "open source" projects which can be used to get something approaching "professional experience".

    If there is a candidate who appears to be a better "fit" for the "need", they will get the job. Sales is sales. Getting hired for a job is making a sale.

  2. Basic Stamps by Perdo · · Score: 4, Insightful

    Design your own USB coffee maker or animitronic toy. Put a real robot in robot wars instead of a glorified remote control car. Break in by doing not begging

    Other Sources

    --

    If voting were effective, it would be illegal by now.

  3. Getting Embedded by PeteABastard · · Score: 4, Insightful

    I'm currently working writting embedded Forth. My previous jobs were C++ desktop stuff.

    The things that I think helped me getting this job were a good level of hardware knowledge (I was a motherboard tech with IBM for a year) and specific skills relevant to the current position (Forth and good maths as I have a physics degree). It also helped that there are very few Forth programmers in Australia so my employers had few applicants, especially as the R&D office is in a rural area.

    I hope to use this position to gain embedded skills that are transportable to future work, so I dont mind the daily 140km round trip.

    I have friends who do embedded work, and most of them come from an electronic engineeering background. They have a much closer skill fit than pure CS degrees normally do.

    Most of the embedded jobs advertised, when I was last looking, wanted Embedded C & Unix experience or experience with a particular technology (ie networking, phones, etc). They dont ever seem to advertise for graduate programmers.

    From an employers point of view (I used to be R&D manager for a small company) new graduates are a risk. Some complete their degree, but dont really like to code and you only find out once you've hired them. Also there is a lot not taught about professional proggramming in Universities, so there will be a learning curve. For these reasons you try to hire experienced people for the more critical or demanding areas, and let graduates prove themselves elsewhere first.

    With all this in mind you might do best to try and find a position where you can prove your programming skills, and pick up some technology
    skills on the way, so your second job is in the embbeded area.

    Small companies will probably allow you more scope for learning and taking on new duties, so a regular programming job with a small shop that also does embedded work may be good.

    Hope some of this is helpful

    Peter

  4. Find a job that involves it indirectly by Paranoid · · Score: 2, Insightful

    I have no degree. I was hired for my current job because I had taught myself linux and C. They wanted me to do some application writing for an embedded linux box. Later on, some driver writing. True, its wussy as far as "embedded" is concerned, but it was a beginning. From there, simple knowledge of C and assembly fundamentals were all that was necessary to do some programming for 8051 microcontrollers, AD18xx DSPs, and soon I'll start work on some code to run on an ARM core. In the meantime, though, they have me learning more about hardware via soldering together my own ISA board, at my request. =)

    My suggestion is to find a job which involves minor embedded stuff while not being the main focus of the job, so you can ease yourself into it. Knowing linux, java, or other highlevel constructs can get you such a job, but won't be used too much later on when you get to lower level things. I think knowledge of an assembly language or two is far more important. (I still don't know x86 very well, but I learned MOS6510 assembly a long time ago, which I haven't used directly, but the fundamentals have helped)

    --
    Paranoid
    Bwaahahahahaa.
  5. It takes time by jsfetzik · · Score: 2, Insightful

    My education was specifically in embedded micro processor systems and it took me over six months to land a job in the area.

    As mentioned elsewhere, even if they are asking for certain experience send you resume anyway. Many times what is listed in a job posting are what the ideal requirements. Often they will not find anyone that meets all of them. This was true in my case. They told me I didn't get the job offer because of my lack of experience. They ended up calling a month later to offer me the job after the two people ahead of me on the list that they did offer the job to didn't work out. One didn't show up, and the other was found to have 'imbelished' their resume a bit more then they could accept.

    Finally, as mentioned elsewhere as well, embedded systems development is as much hard knowledge as software. You may not be designing the hardware yourself, this was true for my, but you had better have a real good understand of the underlying hardware and how it works. This also includes being able to use scopes and logic analysers.