Over 30 years in the software business primarily in the field of operating system internals and security (NSA, TCSEC, CC, etc), spending my time these days working on renewable energy systems monitoring and management software, as well as firmware for power conversion hardware.
Most of my work these days is with embedded systems, primarily AMD Geode with the occasional Via processor or ATmega. I've started looking at ARM and PIC parts as well. Communications is mostly RS485 or PLC, and protocols are Modbus (RTU and TCP) or proprietary.
I've also been doing a fair bit of circuit design and PCB layout of late, which I actually started doing long before I ever wrote a lick of software. Apparently I'm regressing. I'm back to thinking that 2KB RAM is "a lot". I expect to be playing with Legos and milk carton building blocks in another 10 or 15 years.