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.

  • 3
    So you want to find a position that more closely matches what you are looking for but you can't quantify what you are looking for. – paparazzo Oct 23 '15 at 1:12
  • How do you know that Business Analysis, Server Administration and Tech Support aren't part of what is under "Software Engineer"? Definitions can vary and I may well have worn these hats and more as a Software Design Engineer and don't quite understand your question. – JB King Oct 23 '15 at 2:30
  • 2
    If you go and do some "software engineering", I guess the concept of creating software comes into mind, but even that is a very, very broad scope. You'll need to be way more specific, because the question in its current form is basically "I'm not getting what I want but I don't know what I want." – Nelson Oct 23 '15 at 6:06
  • 2
    Look at some job postings and read the descriptions of what is expected of you from the role. You might then be able to narrow down what interests you and either apply for a different job, or try and focus your current role towards those things. Generally in smaller companies you are expected to wear many hats, so perhaps look at larger companies where roles tend to be more specific. – user29055 Oct 23 '15 at 8:58
  • 1
    So it sounds like you're tasked with administering your companies servers (for example). After you've done a particular administration task for the 2nd time, a software developer would write a program that automates this. After your program matures you introduce it as part of the standard process to do that task in a repeatable way. – Brandin Oct 23 '15 at 11:48

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

I don't doubt that at all, if you ask the right people in the right way.

When I interview for a job, I ask if I can talk to a peer. Then I ask pretty much that exact question - "What does a actually do around here on a day-to-day basis?"

Once I have gotten the answer, I probe a bit more to find out what a typical day is like, what a day under deadline is like, how many days are usually in each category, etc, etc.

I almost always come out with a far clearer picture.

If you are working with a good agent, they can give you a very clear picture of the company culture, the extent of the work, etc, as well.

  • Also - read the job description and responsibilities listed in the advert, and make sure your agreement includes the same things before you sign up for the job. – HorusKol Jan 6 '16 at 1:28

One of the things people often forget is that companies hire employees to do the work they need done, not to provide the work employee want to do.

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.

You actually want to be a software developer / programmer which is a subset of software engineering. Once you realize that, things become a little easy.

To develop software, you need to be proficient in at least one programming language. Given your job history, it appears that your current company does not consider you a programmer. Your post also doesn't mention that you have any proficiency in any of the programming languages.

So, if you want to develop software; try to become good in at least one language you want to develop software in. Then try to move into some development project by showcasing your development skills. This will take time as you have to probably learn on your own, after doing the work your company wants you to do.

The other option would be leave the current job and join some small software development outfit. Small companies have very few support projects and are generally involved in new development only. The downside may be a lower pay (they might not give any weightage to your experience).

The important thing is to something fast. The more time you spend in random software engineering stuff away from development, more difficult it will be to switch on a later date.

Not the answer you're looking for? Browse other questions tagged or ask your own question.