We are building a separate product with in a product based company most of the features are crafted just to impress the managers.
During the demo hacks are used to adjust the situation. Though I've recently realised even the API design and system design is not scalable. They are just build so that the current UX is displayed, too much hard coupling and meaningless design.
The HTTP response is dynamic as the demos were build on web and the back -end developers are not understanding that it is difficult to handle in a strictly typed languages.
I get by saying today, I'll write clean code and do my work neatly no matter what others are doing. Though I want to know how do I communicate well with them and build solid products, so that we make something re-suable and independent and sell it not just part of the current product but in terms of public APIs like Twitter, Reddit.
Lately I feel like simply discussing in these lines creates friction, but I have to speak in gentler way to get the job done effectively :)
I resonate with this a lot - People at Meta were constantly trying to get cut corners π
Here's my some of my tactics for dealing with this:
To help with all this, I highly recommend my communication series: Alex's Guide To Effective Communication. There's even a video which covers how to communicate in a disagreement scenario.
Every software engineer does things a little differently - It's very tempting to be a stick in the mud when you're confident you're right and you see things being done in a sub-optimally. However, this isn't productive, so it's best to suppress those instincts and genuinely act in an empathetic, bridge-building way. π
Perhaps a dumb question, but may I ask why you want to build solid products?
What is the impact of the shoddy engineering work? If the incentive structure is created by the managers, are they aware of the situation, and why are they not concerned?
Before creating friction with your fellow engineers, I'd spend time understanding the mindset and priorities of the management team. Perhaps they're deliberately making the choice to cut corners for expediency, in which case, you will lose any code quality battle you try to take on :)