Over 40 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 tiny machines that make big things work correctly.
Most of my work these days is with embedded systems, primarily ARM cores in the larger sizes, like i.MX6.
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.