TL; DR;
How to diplomatically decline a new role of tech lead given to me, because the project related to that role is a total mess? I'd like to go back to a regular programmer role.
About me and company
I'm a back end programmer, with a few years of commercial experience and a decent foundation of skills. All that makes me a solid regular developer. I feel best in a role of creator of web applications, particularly the back end logic that runs behind the scenes, usually encapsulated in a form of a Web API.
I'm currently working in an average size software house, about one hundred people in total. When I joined, I've been thrown right away to a fairly complex project that was about to start. I was the only back end developer for the first two months. The deadlines for the project were unrealistic. It was a bit of hassle, but at least there was no unproductive waiting for tasks. In the end, we still managed to deliver a working system, of which I couldn't be more proud, as I made most of the architectural decisions. The project was created from scratch and given the non-template technological requirements, tight deadlines, constant changes in business requirements in the middle of development... it was a job well done.
Then, I've been asked to help colleagues in other project, as the amount of work to do in my first project was declining. I've agreed and for the last six months I've been part of several projects, usually for about a month. I had to help a little, then I was moved on to the next one.
The penultimate project I've been part of was a complete disarray. Luckily, the client wanted to migrate some part of it to a new version, so my task was to create something new. It was back end logic, I didn't have to continue the development of the old one, so it wasn't tragic. Yes, I was alone and being outsourced for two months, but the client had a calm attitude and I did what I wanted, so it was okay.
Two months has passed, and this project also had to end. After that time I had hoped for something internal, something similar to my first project (with exception to unrealistic deadlines). But as it turned out, there was another external project, with the possibility for me to be a tech lead, advising other developers and being the first contact person for the client. Me, tech lead? Yeah! A little early for my experience I'd say, but doesn't that sound good, does it? I won't find out until I try, right? I gave it the green light.
The current problem
I've been introduced to the client's system. It's huge, in a process of migrating from older code, but the actual "new" code doesn't look better at all. There is a general lack of competent employees, and that results in dozens of projects I've been shown... that are a mess. Once again. I won't dive in details, but it is one big mud hut. And problem is, this mud hut is live and in production. So there is no option for tearing down the hut, as the client obviously doesn't want that. What he wants is to keep developing it, add a kitchen on the second floor and build a garage next to it. And I am not complaining only about the quality of the code here, but also about the lack of security, especially since the system is quite frequently visited. It's just nothing an ordinary programmer would like to touch or be part of.
I've been a member of such projects previously, but usually I'm lucky to just visit the hut from time to time, only to have a look and then go back to building a concrete house with a correct layout following best practices, just like in the previous project I was in for two months. But what I've been tasked here is to keep developing the mud hut, that involves front end stuff and oversee/advise it development as a "tech lead".
My salary hasn't changed with my new role as tech lead, although I've been just getting started. It has been two weeks.
What I'd like to do
I'd like to go back to being a mere back end developer, minding my own business, not lipsticking a corpse someone else made. An internal project would be best. Being outsourced to others doesn't feel great, especially since the company I work for is a software house, not an outsourcing company.
What I tried so far
I've scheduled a meeting with a trusted project manager with whom I can speak freely. I shared my thoughts and concerns with him. Furthermore, I've used several arguments:
- not my role, I'm back end programmer doing full stack stuff
- not the job I've been recruited - back end programmer
- often tasks are basically really simple, making me do it feels like downgrade
- half of work time, I'm waiting for tasks or more detailed requirements
- code base is a mess with inability to change
- no prospects for situation improvement
He then talked to the company co-funder and delivery manger that keeps the whole outsourcing thing going.
The results? I've been moved to other part of client's system where was supposed to be more back end tasks. There were some at the start, but in the end I'm again doing some full stack stuff intertwined with back end. For example, right now, I'm creating an infrastructure for integration with a third-party lookup API, but nobody knows yet what kind of API... So, slightly better than the initial part of client's system, but still the same development approach, still molding the hut.
Question
How to diplomatically (yet, firmly) tell my employer that I do not want to be the "tech lead" for a project that looks like this? I honestly just want to run away from it and be back doing what I like to do and what I know how to do. In the first project I described in the introduction, I was kind of a tech lead for my fellow back end developers, but that was something totally different.
I consider quitting, and would not be the first person to do so because of this project. Some front end guy did not stand it and resigned after being tasked with tweaking over configuration files entire days for two months. Also, quitting seems like the right step, because I have the impression that the concerns I convey are not actually addressed, instead are just replied with "yes" yet nothing changes. The co-founder keeps saying "nothing is forced here, let's just give the client more time", but I do not believe this. I just think he is focused on making more profit, as the client is foreign.
Rumors say that the company I'm outsourced to is also struggling with employment, as supposedly there is a high rotation present. They say people leave pretty often, and I already met a few that have just joined, so that really could be true.
So, is leaving the company inevitable? If I threaten my employer that I will quit if he doesn't give me a normal project where I will be in my actual role, I worry that from that moment I will be seen as the employee that is uncertain, that could leave when things get nasty. I'm worried that such label given to me could lead to even more hopeless projects that are given to me. Aside from the last few not-so-great projects, I like the company I work for. Though, my patience for poor projects is running out.
On the other hand... my trusted project manager joked far too many times about me resigning, so I feel a vibe there that they also worry about me and other people resigning, so resignation could be a good trade card.