Firmware developer's essential reading list
Plenty of great sources exist for information on firmware design. Here are some of the best.
Magazines (online and otherwise)
Embedded.com--You're reading it now. It's the most important publication dedicated to embedded systems.
EDN--Yes, this is a hardware publication, but hardware is never far from the software.
EE Times--EE Times is the source of information about what technologies are coming, where the jobs are, and what companies are up to.
Circuit Cellar Ink --Sort of a dream embedded magazine, it covers projects that include both hardware and software. Though aimed at hobbyists, professionals can learn a lot from it.
Crosstalk --An Air Force site, two out of three issues are dreadfully about big process. But one of three are gold.
Peopleware, Tom DeMarco and Timothy Lister. This is the most important book on productivity in the software engineering environment around. The key takeaway: interruptions destroy productivity. Cubicles--and, worse, open offices--ensure everyone is operating at the nadir of performance.
A Discipline for Software Engineering, by Watts S. Humphrey. This is the single most important book ever written about software engineering. In it Humphrey takes the reader through the Personal Software Process. The net is huge gains in productivity, lower defect rates, and shorter schedules. But it's not for the faint of heart; there's a lot of homework and math, and if you don't do that, you'll get nothing from the book. This is one for grown-ups: developers who really care about their profession and are willing to work hard at the problems to get tremendous benefits.
Guidelines for the Use of the C Language in Vehicle Based Software, by MISRA. This PDF is a compilation of about 140 rules for the safer use of C. It is not, by itself, enough to define an entire software standard, but it's a good first step. And it's pretty industry standard now.
Structured Testing: A Testing Methodology Using the Cyclomatic Complexity Metric, by Arthur H. Watson and Thomas J. McCabe. Testing can be done somewhat scientifically. This method is useful and important.
Peer Reviews in Software by Karl E. Wiegers. This is the all-around best book on the subject. Wiegers looks at the entire spectrum of inspections from informal pass-around reviews to the most formal of processes. The book gives a complete description of the entire review process, from start to finish, in about 80 pages. And the rest of it fills in the details.
Best Kept Secrets of Peer Code Review. This free book from SmartBear Software does a good job at avoiding promoting their products while digging into reviews of three million lines of code at Cisco. Great reference for doing distributed reviews.