I've been a professional programmer for about 10 years, and an academic/researcher who happened to program for about 10 years before that. The dividing line is somewhat arbitrary.
I've worked mostly in university and big, government-run laboratory settings. More recently, I've moved to the private sector. I've been on big projects, small projects, good projects and really bad projects. I've been responsible for architecture, planning, testing, quality standards, IP, and just getting the damn code written.
Most of my work has been for physical simulations of some sort or another. Electromagnetism, hydrology, radiation.
I try to keep up with things going on in Haskell and functional languages, even though I'm strictly a C++ programmer at work.