The last 3 jobs I've worked I've never done what was in the job description. All of them have been labeled "Software Engineer", but (somehow) I've always ended up doing different things. I've been a Business Analyst, a Server Administrator, Tech Support, and other things. While I understand I'm fortunate to have work, good pay, and benefits, I want to do the work I'd supposedly been hired for.
Some speculation as to why it's been this way:
- I don't know what a Software Engineer really does
- It actually means "anything relating to software"
- Software Engineer is too general a term and has different definitions depending upon who you're talking to
Possible solutions for my current job:
- Start doing what I want. As long as my manager doesn't get mad I'll eventually be recognized for the work I'm doing and given more of it.
- Find a new job
- Talk to my manager (again). He's aware of the problem, but we have a lot of old software and apathetic teams to work with. We also work with good teams. Unfortunately the bad take much of our time.
Possible solutions for vetting new jobs:
- Ask them to shadow existing employees? I doubt simply asking "What's a day in the life of a Software Engineer at this company like?" will give me an accurate answer
- Find a company whose employees write publicly a lot and try to figure out what I'd be doing if I worked there
- Find a niche company that very specifically does what I'm interested in
Q: Why didn't I specify my definition of Software Engineering or what I'm looking for in a company?
A: That's not relevant to the question. I'm trying to figure out how to adjust my current situation or find a new one that more closely matches what I'm looking for. I'll think hard about what I want in a job before making any decisions.
The actual question: How can I be a Software Engineer? I understand I can't be doing one thing all the time... however I want to develop software. I understand this process requires multiple roles, and I'm not looking to just code. However I'm tired of administrating servers and wearing all of these other "hats" that companies are either unable or unwilling to fill.
Edit: The first 3 comments missed the meta of this question. I know what I want in a job (at least assume that I do), I'm asking about getting a more focused job, either at my current position or a new one.
Re: automating things: I do have some Software Engineering responsibilities as well, but these keep taking a back seat to the random jobs I'm asked to do. I'll try to do all three going forward.
@Jake: thanks for the response. I'm actually at a large company now. It's not as bad as my last two jobs when it comes to the hats, but it's still not what I'm looking for.
Edit 2: Thanks again for the comments/response. I'm sorry for all the vagueness. I'm still defining what I want in a job, but I think it boils down to building and maintaining good software (for some definition of good). I'm happy to work with production systems for big issues, but I don't want to do support all day. I've found that larger companies usually seem to require fewer hats. My goal going forward will be to understand my manager's motivations, and what will make him look good, then to do the same for other higher-ups, then to try to prove that me writing/maintaining software with a crack team is good for everyone involved. I think specialists get this one step further (don't bother X, because we need X doing ___). That might be nice some day, but for now I don't have those skills, and am not even sure I want to go that deep.
Joe's answer about asking to talk with a peer when interviewing is a good one. I can't accept it, maybe someone can for me? If I do decide to jump ship though I'm still wary of what'll happen when "something comes up" (ohh we just lost our admin, it won't be for long. We'll have you doing what you signed up for in no time!).
@David: I do own both accounts, but don't remember the email for the first, so I bet I can't merge them. Sorry about that.