I'm a web developer that has been working for my current employer for just over one year now. The company sells desktop based project management software, and they hired me because they needed a web developer to basically write a web based version of their software as they want to move away from desktop based applications to web based applications. Currently, all clients get a custom desktop application written from the ground up using our framework however during the interview my boss said that the plan was to also create a standard non-customisable web application for small clients. so, I was hired because of my web experience to work on web projects.
We are a small team of 4 developers, and there is only one other developer who has any web experience (we will talk about this guy after).
So I started last April, and about a month or so in they asked me to work on their only web application that needed finishing. After starting on this project, I soon realised that the other developers who wrote this application had absolutely no experience writing web applications (or were very bad developers) as there were issues everywhere with the code and none of the standard practices had been followed. It took me a good few months to fix all the issues with the code. My boss got very angry one day before my probation (3 months in) and shouted at me in front of my colleagues and said we need a meeting urgently. The next day he said he wasn't happy because I was always reporting problems (the code was horrific) and he couldn't understand why I was taking so long to finish the project, and that he was going to extend my probation. I agreed to the extension because by this point I was so angry I was happy not to have a 3-month notice period stopping me from looking for a job and leaving in the near future.
The day after I spoke with one of my colleagues who I get on well with, and he basically said that even though it's not the right thing to do, I should drop my standards and do things the quick and dirty way because that is basically what my boss wants. He needs things out the door ASAP. I took his advice on board and began doing things the quickest way possible even though I felt bad about knowingly dropping my standards because I always want to better myself and the codebase and improve standards where I can, so this was difficult to swallow.
About 4 months in they put me to work on their desktop based projects. I got to work assuming that the web work would come soon. Around this time my boss then asked my colleague with the web experience (alleged experience because he is one of the devs who built the app from hell mentioned above) to build a POC for the web based framework I was hired to build. I was quite annoyed by this because I was the one who had been hired to do this work, instead they have me working building desktop apps, which isn't where my experience is. Months go by because he is told to only work on it when he has spare time. We get to about November and he finishes. My boss asks me to look at it, and yet again I see no end of issues with it. I don't want another re-run of the first project (wasting months of my time fixing it). I say that I will fix any issues.
So, I am not really given any time to do this at work but by this time I am just fed up of writing desktop apps. I wasn't hired for that, so I spend my evenings and weekends writing it using standard practices (e.g. applying SOLID principals).
In January, I show my boss and the other developers my work. The only other web developer starts kicking up a fuss saying that it is too complicated, our other developers won't understand it, that our interns won't be able to work on it, that we don't unit test here etc. I argue my case that this is the proper way to write a web application yet he continues to argue that it is too complicated, that we don't have time etc. At this point my boss asks all developers to build a small POC project using both mine and his versions of the web frameworks and then give him the pros and cons of each. A week or so goes by and we have another meeting. The other devs basically say his version is closer to what we currently do (e.g. quick and dirty) and that mine while more complicated seemed to be of a much higher standard and more maintainable.
Anyway, a long story short a few more meetings like this, my boss ends up choosing this other developer's version. Even though he knows it is not the proper way to do things. So now I have been here a best part of a year, basically working only on desktop applications wasting my time not gaining any valuable experience. I try to help and get things built properly but clearly nobody is interested.
It is now July (7 months later) and we still haven't started a web project with this guy’s subpar framework. They keep mentioning projects coming up that will be web based, but they never are. I feel like we are never going to start.
Now we have just landed a giant client and this project will take until October to complete. This is also desktop based so clearly, we are all going to be working on this project and not on anything web based.
I think the answer is to leave, however the reason I joined this company is because the software they sell is being sold to NGOs and the charitable sector. I love knowing that what I am working on is helping the world out and that I am not just working for some huge faceless company that's only looking out for its own best interests.
I really feel like I have valuable experience and knowledge to help this company out, yet I feel really limited by them.
Is there a way I can turn things around there or should I just move on?