I would like to note here that any time I spend working on this instead of taking phone calls reflects on my call statistics, and how those look affects everything from the schedules I am allowed to work to the opportunities I am offered. I talked to a few colleagues about how I could begin to step away from this, and was told that doing so would result in some kind of retaliation; that even if I wasn't fired, I would essentially have no mobility within this company.
At the start of this year, I had a meeting with my VP and expressed that I wanted to step away from it. I asked what functionality would be needed so that he could perform the maintenance himself, and we planned for me to work on it two days out of the month until May. The time I would be spending on it would be scheduled appropriately, and as a result wouldn't affect my statistics.
However, multiple times a week he would reach out and ask that I draft a new report, or perform some other kind of maintenance. He would sometimes ask for some kind of change that was literally impossible without a redesign of the entire project.
I persevered and by May I had added a form that would allow just about anyone to perform the necessary maintenance. It was slow, and would sometimes crash and break everything, but I would just need to port it over to an access form and all would be fine. I went on medical leave for a month, and when I returned, my VP had decided he wanted another change, and had already promised everyone that we would make said change, and it was a change that would require the entire database to be redesigned.
I was already stressed and burnt out. Because while all of this is happening, I also needed to be taking phone calls, and nothing will leave you burnt out more than spending 3-4 hours writing SQL in the worst database imaginable, writing a front-end in a pretty awful language, and then having to take back to back phone calls in which you are asked the most basic, simple questions, and then yelled at because someone doesn't like the answer you give them.
4 weeks ago, I hit a breaking point and I went to HR.
I wasn't expecting anything. At best, I figured they would move me to a different team to avoid retaliation. Instead, after about a week or so, HR called me back and asked if I wanted to just be moved to a software engineering/IT/Admin role in a different department. I said yes, I asked if she had already cleared that with the head of the call centre and the head of the department I would be moving to, and she said yes.
For the last two weeks, I haven't heard much. I reached out to ask what I should be working on in the meantime, and was told to just go about Business as usual. Today, the EVP of the call center reached out to me, told me how impressed he was, and that they would be taking the database and moving it over to the other department, and I would just be going back to taking calls.
This was what I was kind of expecting in the first place, but now it just hurts. I don't really know where to go from here. I'm a good engineer, but money is too tight to justify getting any certifications, and I only got halfway through my computer science degree before I wasn't able to afford it. Also, I really like the company I currently work for, but it really feels like I have zero upwards or lateral mobility. Especially after this.
Yes, it's good to be a "team player", go "over and above", all that stuff. A little bit. Put in an extra 10%, but don't do an entire extra job for free.
The reality is, you can't really change your job, or the company, by doing a side-project to solve a problem. I know... because I've tried too.
The company has a structure, and policies, and probably stuff about job levels, corporate titles, time in a position before moving, etc... that you can't change. If they wanted a VBA scheduling and reporting application, they could have created a dedicated position to do that, hired a contractor, bought it off the shelf, etc. That's what they do for all the applications and projects that they _really_ care about. Yes, they're happy that you're doing it for free, without any of that administrative and financial headache for them. That doesn't mean that they care about it enough to make it worth your while, though.
As others have said... work on the resume, apply for jobs. The real opportunity for advancement is on the open market, you really can't expect to get hired as an X, but do Y, and morph it into a better job in a different department at a better pay. Sometimes that might happen, but in general it's not realistic, if they wanted to hire in the Y department, they would.
As for your current employer, you can be professional, and transparent, tell them you're looking for a career in software development, if they have openings you would be interested, if they want to create a position for your scheduling application then you will apply, you appreciate that they will be a good reference for you... but you understand that they may not have budget to continue developing your application, your software development aspirations may not be realistic inside their organization (hint hint) etc.
Given the story above, I'd say you have a great career as a software developer ahead of you.
Are you in the US or elsewhere? I wonder if there's a cultural difference at play?
From what I can see from your post, your managers are totally just stringing you along. I wouldn't trust them at all after that, much less work hard and try to impress them.
Find a better job if you can, when you can, where people actually treat you with respect instead of just toying with your emotions and career. Your current place sounds straight up abusive.
* What is the worst that can happen? They can fire you.
* What is the best that can happen? They can promote you.
If you have 2 days per week allotted for programming then make those the last two days of the week. If they ask you to do anything ad hoc involving the application during the first three days of the week that time should be deducted from time in the last two days of the week. This also means accounting for your time in a ledger or time tracking tool that you can show them later.
While doing that send one email per day about the status of your transfer. Send it to HR and CC your boss and the VP that keeps robbing you of your time. If after two weeks (10 emails) there is no a status update include the HR department head on the email as well.
Be clear in these emails you are thrilled to be a team player and help out the company, however the time spent on these efforts lowers your potential compensation compared to your peers and deprives the employer of your talents to perform that application work full time. In my experience leadership is powerless to retain employees from lateral transfer when compensation and promotion are negatively impacted.
If the stress of that job is impacting your health simultaneously be looking for other jobs outside of work hours. This takes time, maybe 3-6 months, so start on this immediately.
It also sounds like what you wanted was to move to an IT role at your current company -- and that HR initially said it was going to happen. This might be a good time to... go back and talk to HR again. (If nothing else, to get clarity on exactly what happened this time -- and what your prospects will be for moving to IT at some future point.) It also seems like whatever department has your app now would really like to also have the guy who built it...
If you feel like you need more certifications, there's cheap online courses you could take, just to beef up your resume. But with your work on this app, it sounds like you have real work experience already. As long as you can convince a future employer of that, that could help you land an IT job.
once a date is set there is sense of relief and looking forward to that date
then go within to find what it is that gives you energy as you envision what that would look like
once you find that energy or inspiration start to look for jobs in that area immediately
do the minimal at your current job as you do not owe anything beyond what they had originally hired you to do
do enjoy zooming out of the current content or experience you are currently experiencing and see the context of it all :)
You will either get burned out and never work in banking again, start hopping between banks to get an actual good raise while risk can never be pinned on you or be like most bankers with just doing nothing and repeat the cult like banking mantras because you have to constantly convince yourself of these things that are so at odd with reality.
The sooner you can get out of banking the better.
If you want to chat, feel free to reach out:contactme at myusername.com
Your current role is (or has included) being a software engineer, so make sure your cv/resume describes it as such. :)
Book 2 weeks off if possible.
Relax for 2 weeks.
Then do 9-5 "work to rule", grind leetcode in the evenings for 3-12mths, get a $200k+ job for a proper company.
Based on everything you’ve written, including “it really feels like I have zero upwards or lateral mobility,” the question I ask is, why exactly do you really like them?
The only reliable path to promotion is working for a new company
You’ve got an amazing use case to share
Entry level? you have sooo much freedom to move. Away and beyond. Pick your battles.. elsewhere.
btw: HR are there to defend the company from employees. Not other way around.
There are a handful of sad cliches here - the only reward for doing extra work is more work, hr isn't your friend, and you'll never get promoted out of a job you're underpaid for.
From your story I think you need to find work at a different company. Your boss knows he has a free developer at his command and isn't going to give that up. I don't know him but if he is as big of an asshole as your story makes him sound like I expect he is the reason your move to the other department fizzled and I would be very wary of him sabotaging your attempts to get a new job.
Building software professionally can be fun but it can also feel a lot like this. If you're enjoying the creativity and problem solving part I suggest you start interviewing for entry level coding jobs at different companies. You need to with more senior engineers to set the right boundaries and to help you learn (eventually you'll look back at your first real project and laugh at the bad decisions while marveling that you got it working at all). Use a friend for references not your current boss.
The flip side of this abusive relationship is you can probably phone in your work for a while as you recover mentally and find your next job.
tl;dr - you have to take action in order to fix this and you probably can't fix this and stay at your current company. You also have problem-solving mindset that will help you find a career that pays much better than answering phones.
Companies have zero loyalty to you. Show them the same.