Hardware Engineers are from Planet Gonzo

Hardware engineers are . . . different.

Okay, I’ve done my share of soldering stuff together, then applying power in a burst of enthusiasm and seeing expensive smoke go curling up because I’d been a little hasty. (Best show: A poor little 555 timer that had been socketed backwards; it gave a “pop!” as it blew the top of its plastic case off, which shot across the room and bonked my office mate in the back). Frankly, the out-of-pocket expense of my hardware mistakes are what drove me to prefer writing software over screwing chips together. Also, if you think about it, you can do a lot more damage with software.

But a lot of my interactions with hardware engineers follow the three steps: (A) agreeing on a set of registers and functionality, (B) waiting around for the hardware (occasionally checking in to see that what we’d agreed on hasn’t changed), and (C) finally getting the stupid thing and having to figure out what the heck it that Joe Hardware Guy actually designed.

“Uh, Joe? This thing doesn’t have any interrupts.”

“Well, I thought you could poll it for completion.”

“No, we were all agreed on interrupt mask registers, resets and enables, all that stuff, right?”

“Well, it’s all finished, so I’ll have to go tell my boss you need interrupts now and the schedule is going to slip and turning the chip again is going to cost…”

And now you know the real reason that hardware guys all hang out together in a lab, surrounded by hot soldering irons, heavy desks, and many, many sharp tools, it’s because when the software guys scream and leap, the hardware team can mount a defense.

“Christ, it’s the OS guys again. They must have found out what the memory system latency really was.  Joe, see if you can make it to the parts drawers; I’ll cover you.”


“Fibgy! Get that smoke generator working again!”


“Everybody, I want your scopes on Auto, and prepare to fix high impedance probes. Now MOVE!”

I’ve only seen one hardware lab that didn’t have a back way out. The bastards, the poor, unlucky bastards had to raise the white flag and give us an error status register after all.

This entry was posted in Rantage. Bookmark the permalink.

0 Responses to Hardware Engineers are from Planet Gonzo

  1. Eric says:

    This is completely correct.

    My favorite is when hardware people mix multiple functions in a register, with bits that perform different functions for read and write. So you’d never know if you were supposed to write back the other bits when you, say, reset an interrupt, or if you were supposed to mask them off to avoid triggering “system reset”.

    It also works in the other direction, too. I’m convinced that most software engineers can’t be trusted to to write device drivers, because they just never understand all the weird corner cases and races involved. Plus, they’re completely incapable of debugging anything that locks the machine. Every driver I’ve ever written seems to contain almost as much “self-debugging and self-un-wedging” code than actual driver-y stuff.

    As far as labs go, this is why I still haven’t sent back the rented 50kV hipot tester…

  2. Grant Freese says:

    You’re the only other person i’ve heard of that has managed to blow up a 555 timer. Everyone looks at me all crazy like when I tell them I managed to blow a hole clean through a 555. I think the key to hardware design is the realization that smoke is what makes things run; when it’s let out, they don’t seem to work anymore.

  3. Jay Vaughan says:

    Hoo boy .. and to think that, in the case of places like the whatever-part of MetaLab (http://metalab.at), there are even new generations of Gonzoids in the works .. 😉

  4. Rob says:

    Thanks for that post, I got a good laugh out of it 🙂 So true.

  5. Reed says:

    Now that you mention it, they keep adding doors (with locks) to the hardware lab where I work (in the software side). They say it’s to move equipment in and out, but maybe they’re just adding escape routes…

  6. Grego says:

    I wonder how much hardware tinkering is down nowadays that components have shrunk beyond human soldering ability? I still remember the days when the only way to get a new font to your matrix printer was to flash the eeprom. Luckily those were mounted on sockets, not soldered on….

  7. MiWi says:

    Goodness, I love your posts xDDDD
    The evil thing is, I’m studying both hardware and software. It’s hard to decide at which side I will stand…
    Both are scary, thought :p

  8. SDC says:

    These days guys who slide servers into racks and turn them on sometimes refer to themselves as ‘hardware guys’ (to be fair, it’s also the case that these days guys who cut-n-paste sample code from the web together so it does job X refer to themselves as ‘software guys’). Things have changed to be sure.

  9. Peter says:

    Ha! Software – it’s not as though it has to work…

  10. Hardware Engineer says:

    Grego: I can assure you that plenty of tinkering still goes on. The components may be too small to work on unaided, but I regularly solder 0201 and even 01005 components under a microscope.

    01005 (0402 metric) : 0.016″ × 0.008″ (0.4 mm × 0.2 mm)


    Small stuff is difficult, but not impossible to work on.

  11. Ric says:

    Not to make Grant feel bad, but how much power does it take to blow the top off of a 555?!? Holy Crap!

  12. landon says:

    I’m guessing an amp or two. I’ve not had the opportunity to be scientific about it, not really wanting to buy a bin of them to sacrifice to the altar of science, no matter how noble the cause would be.

    Would PETS get upset (People for the Ethical Treatment of Semiconductors)?

    There’s probably a Mil Spec for this, a graph of applied power (amps) and minimum Top Trajectory (millimeters), along with Man Rating specifications.

  13. Ric says:

    Y’know…. at $0.50 a piece, we could come up with a milspec for power vs trajectory (at what temperature can be phase two). How many would we need? 50? $25? That might be cool!

Leave a Reply

Your email address will not be published. Required fields are marked *