3

I'm currently working as a software engineer for a small company in the entertainment industry. I graduated from university last August and have been working with the company since during my degree when I did an internship with them and then worked part time during the final year of my degree. The atmosphere in the company is quite friendly and I get on pretty well with most of my colleagues.

The trouble is that I don't want to be a software engineer, I don't particularly enjoy it and would rather transition into something in the same industry (entertainment) but much more practical. This mainly stems from the work that I'm doing, most of my tasks can fit into two main categories:

  • Working on one of two large pre-existing product lines to maintain and extend them
  • Creating new products either from scratch or using a library of code I've created since joining the company.

The two existing product lines are reasonably complex, one of them was written and been maintained up to this point by a single person. The other is more complex, has been worked on by a number of different people and is a dreadful mess of spaghetti code which is a nightmare to work on. Both of these projects I have to make small changes here and there, every time I work on them I feel as though I have to start from scratch with understanding and working out where I need to start looking to make the changes that have been requested. I'm under a lot of pressure to get up to speed with these products but every time I make progress it's interrupted by having to move to another project or by hitting a blocker that I can't get past on my own.

When working on new projects I find that I am able to do the majority of what's needed but as soon as it gets past a certain point of complexity I start feeling out of my depth, doubting whether I'll be able to complete the necessary tasks and generally in need of some assistance/mentoring.

The main issue is that I am the only software engineer in the company, there are a couple of external contractors that I've found myself managing while they work on some small specific projects but internally I am the only person who has any real understanding of the work that I do. Working alongside the contractors has helped a bit but due to the nature of their relationship with the company it's been mainly focusing on the tasks they need to perform and not on more general assistance with other tasks I need to do. I have asked and talked about the benefits of getting a second software engineer in the company but there isn't enough money going around to get someone on the same level as me, let alone someone more experienced. I find this lack of support quite draining and I'm always second guessing myself about my work to the point where I have started to avoid doing any unnecessary work because I feel like every time I make a change to one of the existing projects something else breaks.

While my manager and the other person in my department try to help where they can a lot of the time as soon as I start trying to explain a particular problem I'm having they get a glazed over look and aren't able to make any meaningful suggestions, which then ends up with everyone getting frustrated with each other. (they are both electronics engineers with very limited software knowledge)

I don't enjoy my work, while I'm not terrible at it, I don't want to be doing it long term and have been looking at other jobs that I'm more interested in doing (same industry, different area) however I'm tied into working for the company for another 18 months (the company sponsored me during the final year of my degree, if I quit before September 2018 I would have to pay back the value of the sponsorship) which means I can't afford to quit sooner, and my wife and I are aiming to start having children soon which means that if I stay in this job I won't be able to leave (for financial/practical reasons) for probably another 12 months. Because of all this I'm looking at working here for another 30 months, possibly more.

What can I do to try and improve my current situation? Are there ways I can get the mentoring/assistance I need without the company having to hire a second engineer alongside me? Are there any other avenues that I haven't thought about?

11
  • 2
    What you need is a network of folks with a similar skillset that you can bounce ideas off of... I have non-work friends with a similar skillset, we discuss our technical issues. Maybe I'm weird like that...
    – JohnHC
    Jun 28 '17 at 15:13
  • 2
    @JohnHC I think you will have a lot of us weird folks in your group....I do the same thing.
    – Neo
    Jun 28 '17 at 15:16
  • What kind of mentoring do you need? If it's company specific, it sounds like you're out of luck (or, at the very least, you probably need to go looking for someone who knows what's going on yourself). If it's more general coding or design problems, you can probably request to receive some training, and there's always the internet. Jun 28 '17 at 15:39
  • Everything you describe is completely normal in software. You will never find a job any different. Best bet is to change jobs this month (to get a raise).
    – Fattie
    Jun 28 '17 at 16:00
  • 1
    You say you are the only developer, where are the developers that built the two systems?
    – cdkMoose
    Jun 28 '17 at 16:11
7

Accept that your situation is normal, for now.

It sounds like you're a junior software engineer, on a solo gig. Your employer likes you, you get along with your co-workers, and you have financial reasons to stick around another 3+ years or so.

The difficulty is that (because you're so new) you run into technical challenges and have no one to talk to about them.

In 3 years you probably won't be a newbie anymore. You will have solved a lot of the technical issues that cause you so much pain now and you'll have a pretty good story to tell if you decide to look for a new job.

In the mean time, think of your current situation as just another form of school - it's hard work, you have a ton to learn, the teachers aren't fair, and you'll come out of the experience a much more capable person than you are now.

In short, don't worry.

For the short term, there are 3 things you can do:

  1. As @JohnHC and @Mister Positive suggested in the comments, find some friends with your skillsets that you can bounce ideas off of. They don't have to work for your employer.
  2. Always code as if the person who ends up maintaining your code is a violent psychopath who knows where you live.
  3. Get yourself a duck
3
  • All true. I'd be interested to hear about the oddball "18 month" thing.
    – Fattie
    Jun 28 '17 at 16:12
  • a pretty good story to tell if you decide to look for a new job. OP wants to change fields altogether, so the development experience will probably not be useful for him. Jun 28 '17 at 19:35
  • +1 For the duck note. I find that talking out a problem, literally out loud (preferably in a conference room or private office), helps tremendously in solving problems. This could be a wise avenue for overcoming technical hurdles.
    – G.T.D.
    Jun 28 '17 at 22:24

Not the answer you're looking for? Browse other questions tagged .