Experience Matters
Many of the presentations and tutorials I attended had a common thread: Knowing what you're doing really matters. Perhaps it's better stated as "You can't buy success" or, as Louis Pasteur probably said, "Fortune favors the prepared mind."
David Kalinsky, talking on "The Architectural Design of Device Drivers," noted that it's easy to write a single device driver, but designing an OS driver architecture that works for many different gizmos requires broad and deep experience. In short, your first two or three versions just won't work, simply because each new device requires functions you didn't anticipate.
Jack Ganssle returned from a Singapore trip and reports that their typical developer is 28 years old with 4-5 years of experience. That's in contrast to the U.S., where embedded developers tend to be graybeards with enough experience to know what doesn't work. He notes one reason for the age disparity: The U.S. no longer graduates enough engineers.
Bill Gatliff, who knows more about stuffing Linux into small systems than any one person really should, observes that the kind of company which steals your code also tends to be unable to write it, so you can stay a few features,perhaps whole releases, ahead of them. I infer a business opportunity for anyone willing and able to run with the Red Queen, as a small business can certainly out-innovate larger ones in this arena.
Overall, it seems as though the industry has collided with the fact that skilled developers don't grow on trees. The reports I read indicate that, while the overall quality of Indian and Chinese engineers leaves a lot to be desired, there simply aren't enough U.S. engineering graduates these days. The pipeline that produces college graduates mandates a half-decade lag, no matter what the demand, and all indications show that our undergrads now avoid engineering majors in droves.
You might expect companies to pay a premium for developers and you'd be almost right. While new electrical and computer engineering grads tend to earn 50 percent over the average for all tech fields, Ganssle observed that wage compression limits the premium for additional experience. The average seems to be twice the starting salary during an engineer's entire career, which may grievously understate the value of knowing what works.
I haven't seen a viable solution, let alone a good solution, to this problem. If you have one, you can get rich pretty quickly.