I am a senior engineer working in IP management for a large telecom company. I've been in my current position for five years. My last promotion to the senior title was 4 years ago in 2013.
I have a unique skill set in that I can write computer code. I am the only person in my group and one of 3 in a department of 70 people who can code. I know several languages and two flavors of SQL. I also have extensive experience with Linux and Unix, which is also uncommon in my group or position.
As my company has moved more towards automated procedures, my group has been given more and more automation/coding tasks, the latest of which is an enterprise-level automated process that is supposed to keep the company in regulatory compliance with an outside agency. It's a big deal.
The work is complex and challenging. This is by far the most overwhelming project I have ever undertaken. Regardless, in the last 4 months I have managed to suss out all of the inter-departmental complexities, figure out what data I needed to complete the task, interfaced with the people needed to provide that information, and designed and developed a working prototype. I have no assistance on my team or in my department.
I recently asked my boss for a promotion to a "level C" engineer which is an engineer who works with little direction at a managerial level. I based my request on the level of work I'm doing on the current project, for which I have had no direction from management. I have developed the project from scratch.
When I asked my boss last week about the promotion, he informed me that he didn't think that my work was "Level C" quality and that he would not be pursuing a promotion. He didn't give me any feedback on why he thought this, just that my work wasn't "Level C" quality.
The problem is, he has no idea what level of work this project has required and no idea of the breadth of knowledge necessary to achieve a working prototype in such a short time. There are some complex software issues coming up (queuing, potential race conditions, etc.) that will have to be resolved before the project can go live. I don't have any first hand coding experience in these issues (I'm familiar enough with the theory, but that's it) so it would take a tremendous amount of research and work to get the queuing and race conditions resolved. When I talk about this stuff, or anything else that's technical or complicated, he blows me off with "just figure it out."
The issue I'm having is that as a senior engineer I am not getting paid to write complex software from inception to live. My boss doesn't believe me when I tell him that this stuff is hard and we have more issues looming on the horizon that will be even more difficult. He also apparently doesn't appreciate that my work is above and beyond senior engineer and definitely is at "Level C". I don't want to kill myself learning all this new stuff for months on end if it's not going to result in some kind of recognition.
What should I do? If I pull myself from this project, it's dead in the water. But if I don't have the personal bandwidth or professional support to master these complex issues, it's dead in the water anyway, because I'm the only person working on it.