Question of the Week: You know you’re an embedded developer when …

Wednesday, March 17th, 2010 by Robert Cravotta

[Editor's Note: This was originally posted on the Embedded Master

Two recent posts reminded me once again of a challenge that I think all embedded developers run up against. In John Sloan’s comment in a LinkedIn discussion asking “Do most embedded software developers also have hardware design experience too,” he volunteers:

“… When people ask me what I do for a living, I seldom say “embedded development” because even I don’t really know what that means. I usually just say “high tech product development”.”

The other recent example of awkwardness in describing embedded development comes from Jack Ganssle’s “The Embedded Muse 190” newsletter:

“… I long ago gave up describing my job at parties, instead telling folks I’m an engineer. Their eyes immediately glaze over for a moment till they turn to talk to someone, anyone, else.”

To the same point, I shared in a different discussion asking is embedded different that

“… One of the first things I had to internalize when transitioning to embedded design was that my software was invisible in the end system. The end user had no idea it was there—nor did they ever need to. I believe this an essential component of what makes something an embedded system. This had a significant impact on how I defined my worth and my ability to tell people what I did for a living. I laughingly adopted the philosophy of “You know you’re an embedded designer when you have to oversimplify your job description for ‘normal’ people”. I found myself just telling people I worked on the Space Shuttle or aircraft because it was too frustrating to try to explain the invisible portion of the system that I actually worked on in those types of systems.”

I will be posting a question each week relevant to embedded developers. One goal of the questions is to uncover those things we have in common with each other. Another goal is to uncover trends and key care-about groupings based around different design considerations or trade-offs, such as power consumption, pricing, and connectivity issues. After a few months of these questions, I plan to produce an article summarizing and commenting on your responses.

I think being able to (or not) succinctly describe what you do as an embedded developer is a testament to our success of delivering results so that (usually) no one is even aware of our contribution to the end-products that people use in their everyday lives.

Please contribute your thoughts on this topic by answering the question “You know you are an embedded developer when …”

Feel free to expand on just completing the sentence. I suspect this community harbors a rich set of answers that will not only amuse and entertain, but that when taken together will help identify the core of what embedded development really is. Who knows, maybe someone has already found the perfect way to describe what we do.

47 Responses to “Question of the Week: You know you’re an embedded developer when …”

  1. S.L. @EM says:

    …when you can’t look at an electronic product in a store without figuring out how you’d design it, and then explaining your design in full, gory detail to some unfortunate bystander like your spouse or your kid. Not that I’ve ever done that.

  2. P.R. @EM says:

    You know you are an embedded developer when “firmware” is the only keyword you need to search for a new job.

  3. J.L. @EM says:

    You know you are an embedded developer when you look at the Windows DDK with disdain and think to yourself “What in the world were they thinking?”

  4. L.A. @EM says:

    You know you are an (old-school) embedded developer when the thing you miss most in Win7 is HyperTerminal. And built-in serial ports… And a Bluetooth SPP profile that survives sleep/hibernation…

  5. D.M. @EM says:

    You know you are an embedded developer when you speculate, that behind the recent Toyota debacle was probably an unfortunate embedded guy who forgot to enable the MISRA C checker! :)

  6. B. @EM says:

    You know you are an embedded developer when no one bothers to expect you at an 8am meeting anymore…

  7. B. @EM says:

    .. and caffeine is considered a basic food group.

  8. D.S. @LI says:

    You know that your an embedded developer when … you switch between Visual basic, Visual C++, GNU C for a microprocessor and Verilog all on the same day.

  9. C. @EM says:

    It is when you are sick of Microsoft’s “super size me” software that requires a quantum computer to run it in realtime…

  10. G. @EM says:

    When you mostly rely only on C language and look for memory, optimisation, run time etc.

  11. J.D. @LI says:

    …when you say “I think inside the box” and others don’t get the joke.

  12. J.C. @EM says:

    …you “think inside the box”

  13. K.S. @EM says:

    You know you are an embedded developer when you are not mesmerised with the features of any gadget but look thro to find what processor(s)/architecture, what OS, what LCD/OLED etc and etc. It is a blood relation!

  14. E. @EM says:

    … when your several months firmware development runs within microseconds in a 3$ microcontroller, the result seems trivial and less bugs means it is more hidden and sooner forgotten that it is running there.

  15. A. @EM says:

    when… no one cares how you do your job, as long as you keep doing it.

  16. P.N. @LI says:

    … when a candy machine steals your change and you put in more money “to see if it will happen again”.

  17. G.S. @LI says:

    When you involuntarily suggest cycling power to the device as a solution that requires no h/w change, s/w change or any investigation efforts to any reported problem!!! The Universal Solution!

  18. G.S. @EM says:

    a) When a bug is reported in your product, you tell the reporter you cant reproduce it

    b) When a bug is reported in your product, you freely suggest cycling power to the device as solution that requires no h/w change, s/w change or any investigation efforts!!! The Universal Solution

  19. T.B. @LI says:

    …when you are trying to decide whether the given application code would be better if you could save one byte of code, or one microsecond of execution time.

  20. P.V. @LI says:

    You are certain that it is the hardware that is at fault :)

  21. J.V. @LI says:

    Your new gadget doesn’t work right any more… and you’re thrilled because now you get to debug it. Extra, bonus points if you can diagnose the problem based on just the external behavior of the failure!

  22. J.C. @LI says:

    You measure your code size in KBytes or Bytes and you know what an EPROM was used for.

  23. D.A. @LI says:

    …you can spell oscilloscope and know what it’s used for. Oh yeah, I guess we should include logic analyzer in there too. Hey, it’s just a fancy digital oscilloscope :-)

  24. D.T. @LI says:

    … or you fix problem in hardware with few lines of code.

  25. S.N. @LI says:

    A microsecond here, a microsecond there, pretty soon you’re talking real time.

  26. M.O. @LI says:

    You buy an expensive mobile phone, while you already have one, just to search for bugs in its firmware.

  27. G.T. @EM says:

    You know you are an embedded developer when you actually think you can give the best answer of this question.

  28. S.P. @LI says:

    …when the hardware, mechanical, optical, RF and production guys come to you three days before shipping asking: “Can you put a workaround in your code?”

  29. S.V. @LI says:

    when people laugh at you when you tell them that you work with ‘C’..”OMG!! Still using C! why don’t u try more modern languages like Java,.Net…”

    lol

  30. J. @EM says:

    You know you are an embedded developer when you spend more time with your new starterkit then with your wife

  31. M. @EM says:

    1. You know you are an embedded developer at heart when you spend late nights at home, designing hardware and software, getting ready to make the big career change from a “generic electrical engineer” to an “embedded systems developer.”

    2. You know you’re an embedded developer when you actually WANT more work…like a design contest..

    3. You know you’re a real embedded developer when you could take the easy way out and forget about fixing that error checking/function that isn’t working, but you choose to do it right anyway.

    4. You (proudly) know you’re an embedded developer when you can discuss firmware with a “software engineer” guy who goes clueless when you ask him about his target hardware!

  32. K.A. @EM says:

    When you find bugs in consumer electronics products, and you know what they are, and you talk about them at lunch.

  33. C. @EM says:

    When, after buying a new gadget, before you first power it on, you open it (and void the warranty) to satisfy your curiosity which target it is running on and if you can hook into it in case you find any bugs.

  34. C. @EM says:

    Your manager introduces you to a visitor with “and this is our group’s software developer” just while you put the soldering iron down after adding a serial interface to your debug target (really happened).

  35. R. @EM says:

    … you become nervous when people talk about a simple, fast solution. There is no such thing.

    … having your code described as “very modular” is a huge compliment.

    … you can debug with an LED.

    … you can step through your firmware in your head.

    … you consider software developers as lazy, with their debuggers, generated code and dynamically sized arrays.

  36. I.I. @EM says:

    if you see electronic product, you mostly imagine that you are asked to develop the next version of it. if you can figure out the following in less than 60 Seonds
    - major BOM elements (more than 30%)
    - total design time (Sw/Hw)
    - required PCB layers and area

    then you are Embedded Developer

  37. I.I. @EM says:

    …or, when asked to develop new system and hear two words of its name, more than 50 questions are appeared to your mind at once, that your talking throughput can not out these questions to the world

  38. A. @EM says:

    ..when you go from being referred to as “Rocket Scientist” to being called “Code Monkey”

  39. A.M. @EM says:

    …when you perform basic octal/hex math functions in your head

    …when you recognize and then read hexadecimal ASCII strings out of memory.

    …when it is easyiest to explain your job as being an pour, slow, over payied typist.

  40. F. @EM says:

    You think Microsoft and Embedded may be an oxymoron.

  41. T. @EM says:

    your garage is full of development kits you’ll probably never use, but can’t bear to throw away because they still work.

  42. M.K. @LI says:

    when your manager says, “Give me an estimate of how long this will take while I go figure out what it’s supposed to do.” (Thank you Dilbert)

  43. Eduardo says:

    when you try to come up with efficient algorithms for everyday stuff like efficient grocery shopping or finding the best path to the bathroom

  44. Mike says:

    When you first realized you can’t complain to the Hardware Designers how their ‘simplified design’ added considerable complexity to your firmware design … since you designed the hardware, too.

  45. funbotix says:

    When you’re the only one who can figure out why some new product is not working, even when the problem had nothing to do with electronics [circuits & code].

  46. [...] Developing embedded systems is different from developing end applications. For one, when done correctly, no one knows or cares about the embedded system when deciding whether to buy the end device. I remember having to adjust my own expectation and method of describing what I did for a living. Saying I worked on the control system for a part of a larger project, I learned to accept telling the slightly less accurate answer to people about what I worked on – “I work on the Space Shuttle, or the Space Station, or a particular aircraft.” I know I am not alone in this sentiment based on the responses from our first question of the week more than a year and a half ago – “You know you’re an embedded developer when …” [...]

Leave a Reply to G. @EM