Is it frustrating to work in the embedded industry?

Don’t get me wrong I am not frustrated …

… it is just because I find this topic more challenging than frustrating. I always wondered myself how difficult could be to work in the embedded industry compared to working into PC-desktop applications industry. At a first glance when comparing the job requirements for an embedded engineer position they may look not so diverse (it is just a personal/subjective opinion) as the ones for a database programmer of for a PC-desktop software developer. Actually the only “piece of software” that you’ll have to know and to use it in your embedded applications is the C language. More or less if you know the C language you are suitable for becoming a software engineer, it is not like you would be a programmer and you have to always learn new technologies or programming languages.

Since always there was a kind of  “rivalry” between the hardware engineers and the software ones. Before going further  I would to clarify what I understand, or what I will consider, as being HW engineer and SW engineer.

I would say that a SW engineer is the one that is completely decoupled from the hardware, to be more precise, it is a PC-desktop applications programmer.  The question is: could you call a embedded SW developer – a programmer? Taking into account the distinction that I’ve made few lines above, it doesn’t seem so …

Actually the point is (or I think it is) that the software written for embedded system is very hardware dependent.  In the “embedded world” you cannot write software without completely taking into account on which HW will be this deployed. Everyone that had something to do with this industry branch knows how much emphasize is put on compiler optimization for a certain type of processor, how important is to choose the right tools for your hardware architecture … and so on. Pushing the things a little bit farther we may say that hardware requirements dictate the way software has to be written.

As far as I know the management of a company developing embedded solutions first looks how to minimize the hardware costs and then adapts the software to the new HW platform. Anyhow there is no direct relationship between the number of parts sold and the software budget. For the above- quoted “management” it is the same thing if the software will be deployed on 1000 or on 1 million parts. Th software costs are not higher in the latter case, just the hardware matters in this equations, because … yes indeed … if the company will find a solution to reduce the cost for one hardware part with 1$, then when producing 1 million parts, will mean 1 million$ savings, compared to only 🙂 1 thousand.

I would say another drawback of writing embedded software, compared to writing PC-desktop software, is that the developer is more decoupled from the client and more dependent on the production phase. You cannot leave completely on your own as a embedded software writer, either you’ll have to buy the hardware ( … and in this case we return to the discussion before, in which you’ll have to be very careful when choosing the hardware) either you’ll have to work in a company that produces the hardware … as far as I know there are not so many embedded software developers working as freelancers, or in any case they are far less than those writing higher level applications for PCs.

I have not ever written application software so, for sure, by thoughts and the opinions exposed here are subjective. In any case I think it is like that “I know it, I am sick of it” syndrome. Whenever someone is doing something for a quite long period of time, he starts to become aware how many difficulties and problems he may encounter and he won’t recommend someone else start doing the same things. I remember how was it after I graduated the Electronics Faculty, I didn’t recommend anyone starting same studies. 

But let’s just not loose the main matter of this topic, whichis about frustrantions 🙂 Which could be those “frustrations“, I will just go through them once again, even some of them were exposed before:

1. software is not the main matter in the embedded  

 

Advertisements

6 Responses to Is it frustrating to work in the embedded industry?

  1. kellogs says:

    What ?? You get frustrated ’cause software is not the main matter in embedded ?

    I have been offended by “a SW engineer is the one that is completely decoupled from the hardware, to be more precise, it is a PC-desktop applications programmer”

    PHP script kiddie != C++ developer able to write a full blown server taking in TCP clients (x 100) and mediating their access to some 8 RS232 ports in such a multithreaded manner that a template was used to set up a framework for the server. Having code used by a burst of ~100 or more threads is never easy to bring up as a reusable component.

    Mind you, how many PHP jokers ever heard of a socket or a thread ? Oh, wait… I see their answer coming: “I plug into the wall socket my laptop in the morning then see if my thread on how to make an array of arrays got any attention”. Don’t take a SW engineer for a web developer.

    • It is not exactly that I am frustrated that “SW is not the main matter” in embedded, btu it is more that I have the feeling that while working in the embedded world a get farther from things like classes, code reuse, inheritance, algorithms, multi-threading (that guy, C++ developer, as long as he writes C++ multi-threading code, he’s programming at a quite high level, C++ is far less used in embedded than C)
      I get the felling that while writing embedded code I will end-up in knowing one single compiled-language, C, and hopefuly one single scripting language
      I will also end-up in being at the beginning or in the middle of the chain, developer – end-user (as I know many embedded systems fit into a larger system, which on its turn is deployed to the customer, you rarely arrive to supply your embedded SW directly to the end-user) and yes, indeed … SW will not be the main matter in terms of profit and money, it won’t matter the number of systems sold, my SW will cost the same

      I will have to adapt permanently my SW to new HW (cheaper, more cost-effective)
      I am not mistakening a PC-desktop SW programer with a web developer 🙂 why on Earth everybody that heards about PC-desktop SW, first time thinks to web applications?

  2. kellogs says:

    >>why on Earth everybody that heards about PC-desktop SW, first time thinks to web applications?

    Maybe because you draw the line to close. There are no such big differences between what you call SW engineer and PC desktop applications programmer. Think of them as black and white human races. Still human both. web devs are the chimps here ^^

    Back to the main issue, having experimented both embedded SW and ‘made for end-user’ SW I can see where you are getting at. I agree making the software for the end user is more thrilling while just monologue-ing to the embedded piece of electronics can be more depressing, but there are downsides at ‘user SW’ as well. Client no like the animation you have put sleepless nights into ? No problem, you just make another one. Awesome. Oh and embedded SW pays higher also.

    Cheers

  3. Bogdan Gradinaru says:

    ” I agree making the software for the end user is more thrilling while just monologue-ing to the embedded piece of electronics can be more depressing ”

    I think you got exactly to the point with this. It is indeed true that many times, while working in embedded, you have a deja-vu feeling and can be, indeed, depressing … some old stuff again … and again.
    I think that the words that conclude the best what I wanted to say with all this post are that:
    “embedded is not as chalenging as desktop SW”

    And besides the fact it is depressing, you don’t have the “privilege” the really see how does it behave what you’ve made. Well, automotive companies are buying/or are building themselves tools for debugging or for HW-in-the-loop-simulation just for softening those “pains” (or depressions :)) but it is still quite common the case in which what you’re testing is different than what the customer reports you (in many cases in the “wrong” way).
    All those things summed-up make you feel like monologue-ing on the same story, and on the other side, you get frustrated, because of the afore-mentioned things.

  4. Richard says:

    how much control knowledge or theory do you think is needed in embedded system?

    Thanks

    • Richard, this is really a general question … I could not give you a frank answer, in fact is quite hard to measure the quantity or the amount of knowledge needed in one domain or another.
      In fact I would say is needed roughly the same control knowledge or theory that in any other domain from Electrical Engineering or from IT, but what I found frustrating is exactly how it was pointed above … that you may get the feeling of monologuing on the same story or indefinitely playing the same song …
      Anyhow don’t take very seriously this matter, there were just opinions and more than this I do not know, let’s say, the dark face of the moon … I never did “SW for end-user application”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: