“So… what is it you do, again?”
How many times have you been asked that question? How many times explaining your career choice to family and friends? To impress your date with your mad job skills? To fill out a simple form, straining for words that will fit in the box labeled “profession?”
About halfway into the conversation do most people hear, “computer engineer” and ask you to fix their PC? This must be what it’s like being a doctor at a cocktail party. Every casual conversation quickly devolves into a plea for free technical support. “It does this funny thing when I click the thing.” Either that or they ask you for investment advice on Intel stock, Microsoft, or Google. You must know everyone at Google, right? Can you get them to fix image search? It sucks now.
In reality, we’re embedded engineers. Developers of things that aren’t PCs. Users of operating systems they don’t stock at Best Buy; creators of applications you can’t download from the App Store for $0.99. And no, I can’t fix your frickin’ PC.
Statistically speaking, virtually all electronics engineering is embedded engineering. After all, how many people really design PCs and Macs? Maybe ten companies, and maybe 20-40 guys in each of those companies? That’s a pretty small job pool, and besides, what do those guys have to think about, anyway? You just plug in the latest Intel or AMD processor, the latest core-logic chipset, and the latest graphics controller. How hard can it be? To paraphrase Truman Capote, that’s not designing, that’s typing. If you can put Tab A in Slot B you can design a PC.
No, real engineers develop embedded systems. So why don’t people at large—and our in-laws in particular—understand that? They hear “electronics” and instantly think “PC.”
Even amongst ourselves, there’s disagreement over what constitutes an embedded system. Personally, I’ve always defined it as anything that isn’t a computer. I know, that’s an inherently exclusionary definition; it’s a bit like defining the population of the world as “people who aren’t astronauts.” It’s also intrinsically vague: what constitutes a computer, so we know what not to include? Well, let’s see… a Windows PC is a computer, a Mac is a computer, a Linux box might be a computer, and, uh, after that I don’t know…
Like the judicial definition of pornography, we know it when we see it.
Which doesn’t leave us with much to talk about with our friends. “I don’t make PCs” isn’t much of a job description. “I don’t make porn” or “I’m not an astronaut” would be as useful.
Is an iPhone a computer or an embedded system? How about a PlayStation 3 or the navigation system in your car? These all seem like embedded systems (to me, at least), yet they’ve all got more CPU horsepower, RAM, and nonvolatile storage than the first dozen “real computers” I worked on. They even have keyboards, high-resolution displays, and network interfaces, the razor blade by which one could formerly separate the computers from the embedded systems.
They all have operating systems, too, and run multiple applications at once. And they crash—surely a sign of computer-hood.
So what does separate embedded systems from PCs? Performance level? Resources? Consumer acceptance (if it’s awkward to use, it’s a computer; otherwise it’s an embedded system)?
A colleague of mine once defined embedded systems as “closed” boxes that didn’t accept third-party software. Embedded systems, he felt, always shipped with all the software they’d ever have. There might be the occasional factory upgrade of the firmware, but nobody would install apps or run programs.
Another coworker sniffed that embedded systems were reliable, as opposed to computers, which require constant maintenance. Naturally, any time his prototypes failed in the lab we dealt him the ultimate insult by calling them PCs.
Finally, some insist that embedded systems are always hidden and usually invisible. They’re “embedded,” after all; implanted inside some other product. That makes sense and it’s even lexicographically correct, but what happens when there is no outer-wrapper product and the embedded technology is all there is? The electronics inside a missile is clearly embedded; the electronics in a PlayStation is the whole product.
So in the end we wind up describing our current projects. “I’m working on a new network router” or “I work for Cisco” is about as accurate as it gets. Never mind that two years ago you were designing robot controllers, and two years before that writing firmware for animated toys. In short, you’re an embedded designer.
What do you think is the definition of an embedded system, and how do you describe your career to the unwashed? Fill up our forum pages. I’d be interested in what works (and what doesn’t) in getting the point across.
In the meantime, I gotta go backup my phone’s applications before the next OS upgrade.