I work on a product where the code and best practices are given very little thought. The architecture is bad and so the implementation. The tech leads are unqualified and do more of a managerial kind of stuff. There is no clear boundary between roles. The director of engineering never discusses how to improve the system. Everyone knows the system is bad but no one does anything. There is no culture of brainstorming or discussions. Everyone works almost individually. The devs are willing to do all of those things but get demotivated very easily due to the ignorance of upper-level management. The blame game goes on continuously. Bugs get fixed and cause more bugs to get opened. There is no scope of software engineering left. The product sells because there are not good alternatives out there and if there are any, they cost way more. Everyone is still there because they are getting paid quite well for an absolute shitty work.
So, is there any scope of improvement in this kind of environment or the only way is to set an example by working relentlessly?
Money aside - Do you think you are improving in both personal and professional levels by working at the said company? Do you enjoy working with your peers and managers? If money was no constraint, would you still work there and do the kind of job you are doing? Ask yourself these questions and you will be able to take the right decision.
Since the product is already bringing in revenue and the upper management seems to be content with it, I doubt they are going to change things. I suggest that you do some deep thinking and see if your skills can be better utilized somewhere else. BUT if you believe in the product/team and you think you can change things, it's definitely worth a shot.
My impression from your post is that you should leave/find a new job; but I think you should reflect on Sandeep's questions before you decide your course of action.
If you are stuck there for some reason, or if you love working with the people and you are really passionate about changing the way things are, "working relentlessly" isn't the way to go. You don't have a technical problem, you have a people problem. You can't code your way out of it. Instead you should start by reading up on popular change leadership techniques. But look after yourself. Don't burn yourself out.
I worked for one of the biggest worldwide companies and managed to scrape at 2.5 years, don't me wrong loved what i done but when it came to new ideas and solutions, because they are corporate, they are so reluctant to change there ways, not because they can't its because they're not open and also not willing to learn something new.
Eventually I left and it was the best decision I made, as well as leaving the logistics market.
Silly thing is if they only opened their eyes, they could reduce costs..
The market has changed so much the last ten years that some of the biggest corporations are slowly changing their ways because they have realised one they will loose their staff as well as the customers and social branding if they can't provide a good company culture and work culture but still in some cases it's still not fast enough.
The last few months I've been speaking to agencies and what they have mentioned is, its interesting to find that when they have corp contracts developers are turning them down because they want to work for the next awesome startup, not because its just getting its grip but you have more of a chance with a good work culture, these types of managers a lot more open and suggestive and team members they recruit.
They're not afraid of getting dirty and becoming together to brainstorm new ideas or put in nest practices and even will provide as much training as possible for you.
If they're not willing to adapt or open there eyes, I wouldn't spend another minute there. You have a much brighter future, somewhere you'll love working :)