Tweet Follow @jack_ganssle
The results are in. Go to for the latest salary survey. Thanks to all of you who took the time to fill out the form, and to the many and insightful comments.

A quick summary of the results:
- We’re aging.
- But mostly in the West; the developing world’s
engineers are generally in their 20s and 30s.
- Though many, many respondents haven’t gotten a raise in
in some time, on average engineers’ wages are going up.
- Most engineers are unhappier with their careers than 3 years ago.
- Money DOES buy happiness... in some parts of the world.
For example, the highest paid engineers in India and Europe are
happier than those making less. The correlation is strongest in
Australia/New Zealand.
- Despite all of the published doom and gloom, we’re quite
optimistic about the future demand for engineers.
- Despite all of the optimism, a lot of engineers are unhappy,
unemployed, and would not recommend the career to their children.

Embedded Muse 186 Copyright 2009 TGG December 7, 2009

You may redistribute this newsletter for noncommercial purposes. For commercial use contact To subscribe or unsubscribe go to or drop Jack an email at

EDITOR: Jack Ganssle,

- Editor’s Notes
- Quotes and Thoughts
- Book Review
- Corrosion and Switches
- Tools and Tips
- Jobs!
- Joke for the Week
- About The Embedded Muse

Editor’s Notes

Did you know it IS possible to create accurate schedules? Or that most projects consume 50% of the development time in debug and test, and that it’s not hard to slash that number drastically? Or that we know how to manage the quantitative relationship between complexity and bugs? Learn this and far more at my Better Firmware Faster class, presented at your facility. See .

Joern Tietjen had an amusing question for Muse readers: “In my latest code review we happened to discuss the origin of the 'hang loose' handsign which surfers use to greet each others.

“I'm deeply convinced that the real source of it is one of the code reading sessions in Southern California in the early 60's of the last century when they were developing the first versions of BSD Unix.

“When it came to the file permission attributes the inventor of the sticky bit showed with his right hand how to mask the LSB and MSB simultaneously from the file attributes.

“Due to the fact that the coders in California surely recovered on the beautiful beaches after these annoying code reading sessions, I assume that the hang loose sign was 'leaking' into the surfers scene.

“However, I can't find any proof for my theory in the web. Can you or any of your readers give me a hint?”

Quotes and Thoughts

Gary Bergstrom sent in this: "Programming is the art of thinking clear and perfect thoughts."

Book Review

Most book reviewers only tackle only new release. Not me; one of these days I want to review De Architectura by Marcus Vitruvius Pollio. Published around 25 BC it’s possibly the oldest book about engineering. My Latin is pretty rusty but thankfully it’s available in English from Project Gutenberg.

Debugging, by David Agans, is a bit more recent, having been published in 2002. In it, he extols his nine rules of troubleshooting anything, though the focus is really on hardware and software. The rules are:

- Understand the System
- Make it fail
- Quit thinking and look
- Divide and conquer
- Change one thing a time
- Keep an audit trail
- Check the plug
- Get a fresh view
- If you didn’t fix it, it ain’t fixed

Dave devotes a chapter to each rule, adding a couple of bonus sections at the end, including a very helpful “View from the help desk.” Diagnosing problems over the phone is especially challenging.

The book is well-written, folksy, and a very quick read. It’s packed – packed – with war stories, most of which do a great job of illustrating a point.

Mostly I found myself nodding in agreement with his thoughts. However, he advocates reading the manual/databooks from cover to cover when looking for problems. That’s great advice… but given today’s 500 page datasheets and the deadline’s screaming demands it’s impractical in many cases.

He also believes in “knowing your tools.” Great advice. As an ex-tool vendor I was always frustrated by so many customers who mastered 5% of the product’s capabilities, when other features would be so helpful. Alas, that problem probably ties into the 500 page datasheet/screaming deadline challenge. But so many tools offer so much capability that it makes sense to learn more than the minimum needed to set a breakpoint or to scope a signal.

He asks: “Did you fix it or did you get lucky?” And then says: “It never goes away by itself.” Absolutely. A problem that mysteriously disappears inevitably mysteriously reappears, usually at the worst possible time.

Though 7 years old the book remains very topical, with just a tiny bit of dated material (like advice to be wary or in-circuit emulators, which are far less common now than of yore).

Reading this brought back many memories. His aphorisms, like “use a rifle, not a shotgun” were driven into us young engineers long ago and are still valid. Another oldie that’s a favorite: “The shortest pencil is longer than the longest memory” (i.e., take notes). So anyone with experience will say “sure, I know all this stuff – why read the book?” The answer is that we may know it all, but it’s too-often disorganized knowledge not used with discipline. Just as a tent revival meeting doesn’t teach anyone anything they don’t know, the book takes the known and organizes that knowledge, driving the message in deeply.

For newbies the book is even more important. Every new grad should read this.

It’s interesting and fun. Recommended.

Corrosion and Switches

Stephan Beer read my article about debouncing ( and had some very interesting comments about corrosion and how it effects contacts.

“You might have seen typical rubber dome switches: a round structure on the PCB and a snapping rubber dome with a gold or carbon pill on top. Very simple and robust as long as the game is dry.

“But if humidity or water comes into the play (IP67 per IEC 60529 environmentally sealed unit), maybe with salt, a switch will fail within seconds.

“Some will say: "My Housing is water proof - I have a silicon mat, therefore no direct water intrusion." But Silicon or rubber is highly permeable for humidity. Therefore OEMs like BMW say: If a electronic can't be protected from humidity intrusion, then do the dewing test WITHOUT the housing (BMWGroupStandard Dewing Test GS95011--42005--12). After the test the specimen has to work fully and must have no visible corrosion.

“Most of the software guys would use an internal pullup (20k...60k) to feed the switch with supply voltage. The voltage is then divided between this pullup and the external switch resistance to GND.

“In my opinion a couple of measures are necessary to make this more robust:

“1. A lower-value external pullup (~5k) is necessary, in order to have more chances against a dirt resistance of the (open) switch to GND.

“2. A change of the software to a cyclic measurement: switch the key input to low most of the time to avoid electrolysis and corrosion and reduce measurement time to a minimum

“3. Use two switches, each connected separately to the uC for redundancy. If one is toggling, but the other one not, it can be used as a pre-key-error.

“4. A more hardware-intensive solution: alternate the voltage on each key - no fixed GND on one side. This will minimize the corrosion.

“5. Minimize the measuring voltage on the keys.

“A capacitor in parallel of a switch like this will cause high current spikes, that leads to destruction of the contact material - you mentioned it already in the debouncing report. My experience is that a capacitor lower than 100pF does not hurt.”

Tools and Tips

David Strip suggests: “Under the PrettyPrinter category,
Highlight Code Converter from . Syntax and keyword color highlighting, indenting, etc. Supports 140 languages, 40 pre-defined color schemes. Supports user defined color schemes and language definition files. Output in TeX/LaTeX, RTF, HTML, XML, SVG, XHTML. Windows and Linux versions. The price? FREE.”

Charlie Wallace had a couple of suggestions: "I didn't see IDA on the list, if you're not an engineer but instead a reverse engineer. It's about the most useful tool out there.

“Putty is also good for lightweight serial/ssh/telnet /scp/ftp etc. .”


Joke for the Week

A room temperature superconductor walks into a bar. The bartender says “we don’t serve your kind here.” The room-temperature superconductor leaves with no resistance.