Differences between Software Developer and Embedded Software Engineer

Image result for embedded programmer

 

We get this question all the time. What is the difference between embedded software engineers and IT Software developers. So here are the Top 5 Differences according to me. Well there is always a debate – who is the better of the two?

1. Knowledge of Hardware

An embedded software developer should know the hardware he is working on. More often than not the embedded software engineer would be writing some code to control or use the hardware in the best possible way. He would have to interact with the hardware more closely though he may not speak the 1s and 0s directly.

A software developer works on applications that is totally shielded from the hardware it runs on and the software developer does not have to know much or in fact anything about the hardware his program would execute on. The team that worked on developing firefox or MS Word may not have to know the hardware completely to develop their software.

2. Lines of code vs Making things work

When developer try to explain a complicated embedded software work, a software programmer would ask, “OK! How many lines of code is that ?”
Well in embedded software the complexity is not in the lines of code, most of the times. Configuring an interrupt handler to respond to your button push and balancing the priority between a button push and a temperature sensor input might have taken a whole day to work on. At the end of the day, the embedded software developer would have written 50 lines of code.

A software developer generally writes more lines of code almost always. The reason is that a software developers builds a product just with his lines of code, out of thin air. An embedded guy makes a physical hardware device work with his software

3. Algorithm & Data Processing Vs System Control

A software program generally revolves around 2 aspects, ALGORITHM and DATA. Take any program, it would either be computing something (numerically or logically), which is what i refer as Algorithm or it would be working on data. It could be storing data, moving data, processing data or simply presenting or deleting data. Any software .. right from banking, insurance, retail, logistics to simple PC based software like Word, PowerPoint, etc., all of them work on the aforementioned principles.

An embedded software is more focused towards controlling and managing the system (or hardware). It is developed to exploit the full potential of the hardware and manage it for the benefit of the user. Though there would be data and algorithm in embedded software, it would be there only to control and manage the hardware in a better fashion.

4. PC vs PCB

Though embedded developers work on PC they are not writing software for PCs. They use the PC to build their software which eventually runs on another platform (a Printed Circuit Board with a Micro controller). Embedded software engineers develop software for these BOARDS and move the executable binary from the PC to the board using debugging tools or specific connectivity options.

Software developers develop software that run on PCs or PC equivalents (like servers). Whether the software runs in a bank, shipyard, your Fedex store, Airport or Grocery store it runs on a computer. May be nowadays they run on Mobile phones and tablets too. From an embedded perspective today’s tablets and mobiles don’t differ much from PCs as they are all are more “General Purpose

5. Oscilloscopes vs Breakpoints

Debugging embedded software is different from debugging application software just like development. You can see embedded developers use Oscilloscopes, Logic Analyzers and multimeter while debugging a HANG!! than using break points.

Software Developers more often use the debugging break points and debug options that their IDE provides to debug the code, profile the code, etc.

Today, there has been a great amount of work being done to simplify embedded software development and make it easy and more comparable to normal application software development. The many community boards like Raspberry PI, Arduino, etc. are targeting this area. Even with limited hardware knowledge you should be able to make a device – that’s where its moving

Related posts

Leave a Comment