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?