My job: senior software engineer.
Currently I'm responsible for some open source software and proprietary software, pretty much start to finish. My work spans some low level C programming, some C++ and some Java programming on very large computer systems. What I do from day to day is all over the place but includes the following
- Work with my research division contacts to turn their prototypes into marketable software
- Plan work for the next year and divide into smaller cycles
- Allocate work to myself and rest of my team, some of which is local and some offshore
- Design work for current work cycle
- Write and debug pieces of the software
- Answer questions from the rest of my team about how the software is supposed to work, what they should be doing and helping them debug their work
- Figure out what needs to be tested and how it should be tested
- Write the user documentation for the software
- Tech support for customers who have problems with the software, including fixing the bugs
- Coordinate work with related teams and work with project management to make sure everything stays on track
- Work with other members of an open source team I'm part of
- Work with company lawyers to make sure my company doesn't get sued over copyrights and patents and that we don't give away important technology
- Meet with customers to talk about product plans and make sure what we are doing is useful to them
- Deal with random requests from people in the company who are interested in our software
- Whatever random request my manager decides to toss my way