Take the 2-minute tour ×
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.

I'm looking to steer my career of Computer Scientist a little more into robotics. I've been analyzing and junior embedded positions might be a good opportunity to start. However, searching through I've seen other similar titles. My questions are:

  1. Is Embedded Engineer and Firmware Engineer pretty much the same role? Please give quick examples of each if not.

  2. Which other titles/positions would allow me to get started on Robotics as a developer? I could be more specific if I had the knowledge, but for now I want to get closer to the field so anything as a developer would help greatly.

share|improve this question
    
How do the salaries compare? Where are the jobs mainly located? –  James Aug 20 '12 at 0:20
add comment

4 Answers

up vote 7 down vote accepted

No, I would not say embedded engineer and firmware engineer are interchangeable titles. There may be similarities, and even some degree of overlap, as someone who writes firmware is probably considered an embedded engineer, but the converse is not necessarily true.

For example, at one of my previous jobs, I was an embedded developer. I wrote C code that ran on a Motorola 68k class processor, that was embedded in a small radio-frequency device that was mounted on a vehicle. The firmware came pre-loaded on the processor, and what we did essentially was to write software that runs on top of that. I would not have considered myself a firmware engineer based on my role.

share|improve this answer
    
Great insight, thank you –  mikiemorales Aug 18 '12 at 18:27
add comment

I wouldnt get into specific terms like that, as you search around you will find that the definitions for either of those terms changes from company to company. For example an embedded engineer could be an embedded software engineer that writes software for embedded systems. Where a firmware engineer can be considered a vhdl/verilog (hdl) engineer that creates the rtl for programmable devices (cpld/fpga). Although soft and although a programming language not considered a software engineer.

You have to look at the context and job requirements around the titles in question to understand how that term is used by that company or hr department.

share|improve this answer
    
I totally disagree that a firmware engineer is one that designs the "circuits" for FPGAs. That is the job of a hardware engineer (EE). Nowhere in this definition of firmware does it mention VHDL or Verilog. –  tcrosley Aug 20 '12 at 1:39
    
You clearly didnt read my answer then. Like the word embedded itself the word firmware is quite vague, can be code, can be the bytes an eeprom based state machine uses, can be the bytes that determine how a pld is configured on boot. You will see it defined by some companies associated with software engineers, and you will see it defined by some companies associated with hardware engineers, and by some companies both disciplines. You have to look at more than the term embedded firmware to figure out what that company means. –  dwelch Aug 20 '12 at 5:05
    
Yes, I read your answer, I just didn't agree with it. –  tcrosley Aug 20 '12 at 5:21
    
You understand how (many/most modern) fpgas work yes? A prom full of bits feeds the main part? Just like an embedded processor has a prom full of bits that feeds the main part. In both cases the bits in the prom are called firmware. –  dwelch Aug 20 '12 at 6:12
    
Yes I understand how FPGAs work. In fact I have a Xilinx FPGA board right in front of me. I understand how you want to use the term firmware to refer to the programming of the FPGAs, but if I wanted to hire someone to design hardware using FPGAs, I would not use the term firmware engineer as I would get a bunch of resumes from embedded software programmers. I would look for digital hardware engineers / logic designers instead. The original question was about what a firmware engineer does, not the definition of what firmware is. Hardware engineers programming FPGA are not firmware engineers. –  tcrosley Aug 20 '12 at 7:40
show 4 more comments

Embedded engineer is a more general term than firmware engineer.

firmware engineer is ,in my opinion, coding for a micro-controller(8051 series) or the code in the device part.

But embedded engineer may also be a firmware engineer or usually more than that, because most of the work are done outside the device firmware(on chip) part, but on host(SoC, like TI OMAP SoC) parts, which you may need to communicate with the device firmware with GPIO/I2C/SPI bus drivers and host operating system work is usually a much more complex work than firmware jobs.

share|improve this answer
    
A firmware engineer codes on 8051 microcontrollers? Ouch, then there will soon be no firmware engineers left in the world, since 8051 is finally made completely obsolete. –  user29079 Aug 22 '12 at 12:44
add comment

If I would have known, well,

  1. Same thing I guess. I develop firmware for my company but I and my teams are called, Embedded Developers.

  2. Robotics as a developer? Don't really understand but try to be a good learner first and companies will give you a title. Personally, I don't really care about this, just try my best to be a good and excellent developer.

share|improve this answer
    
Robotics as a developer since robotics seems to be composed of at least 3 major careers; EE, CS and Mechanical. Not much looking for a title but for positions that would allow me gain the knowledge that is also valuable in robotics. E.g.: Embedded Engineers do a lot of low level programming and Assembly, C. That kind of stuff is what I'm looking for. –  mikiemorales Aug 18 '12 at 15:08
    
BTW, why do you start with "If I would have known"... intriguing. :) –  mikiemorales Aug 18 '12 at 15:09
    
A ground knowledge of Electrical Engineering, some of Mechanical with a little enough programming skill. Though I don't learn and major them in school, but spend some free time to dig into it, I still make some entertaining bots at home :D (Android w/ Arduino). You can start with many simple tutorials on instructables.com or letsmakerobots.com. You can receive help from community as far as you can try. Have fun! –  xjaphx Aug 18 '12 at 15:24
    
Thank you for your answer! –  mikiemorales Aug 18 '12 at 18:25
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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