Just a bit of input from a former PM turned developer, and consider that we don't REALLY have much info to go on from what you've said, but your 4th and 6th paragraphs lead me to this concept.<p>You may be right that you created the correct technical solution, but not every consideration should be a technical one. From a business perspective there are MANY other considerations.
You created an 'unconventional solution'. That may be a problem for many businesses, and rightly so. If they were to bring other devs in, what is the lead time needed for a dev familiar with the companies systems to be able to update the system you created. There is a cost involved in that. If the solution you came up with is non-core to the business, that is possibly more problematic, as they are dedicating extra time to a non-essential system simply because it was written differently from the way the company normally does things.<p>Much of it could be simply a personality issue, and possibly with the PM, not you. You clearly care about your performance and capabilities, so I'd sit down and have an honest discussion with the PM or CEO about what you're trying to accomplish, and make sure that everything you are doing is for them, and make sure they understand that.<p>In the end, you're developing FOR THEM. I think a few developers could be happier if they realized their job isn't to create the most technically correct/superior code, but to make the business owner happy.<p>The way I think you make them happy is to give them what they want. If they ask for A and you give them G, that isn't what they wanted. But MY SOLUTION IS BETTER you say. Great, but you still need to satisfy the employer, and the best way to do that, and make them want to keep you around, is to make them want G.
I think if you go in with this perspective, and sell them not only on the code you create, but also on your understanding of their business, and ability to make good platform decisions for the business, they'll look at you quite differently.<p>Hope that helps.