Background: About 1 year of experience doing full-stack development plus some cloud/devops work
Current Setup: Working with 7 React applications connected to 1 Node.js/Express server. Everything uses plain JavaScript without TypeScript.
The Situation: My company bought this product from a startup that had crazy turnover - they were hiring and firing developers from freelance platforms constantly.
Now we need to add features and scale this mess of codebases. The inconsistency is wild - even though all 7 apps do similar things, they use 3 different state management approaches (Context API, Zustand, Redux). That’s just one example of how nothing follows the same patterns.
Honestly, I’m starting to dislike JavaScript development. It feels like every basic task needs some overcomplicated, hacky solution. The complexity doesn’t match what we’re trying to accomplish.
I find myself wanting more standardized patterns and clearer syntax. I really enjoy working with SQL, bash, and Python, but I’ve only used those for simpler stuff like AWS CDK work, basic database tasks, and automation scripts.
I know every language has problems and nothing is perfect. But I’m curious - have experienced developers found that other languages actually solve some of these pain points? Does the grass look greener elsewhere?
I want to improve as a developer but it’s hard when you’re always working with messy code instead of learning good practices.
Been working with JavaScript for about 8 years now and honestly, what you’re experiencing is pretty common when dealing with acquired codebases. The inconsistency you’re seeing across those 7 apps isn’t really a JavaScript problem - it’s what happens when you have high developer turnover without proper code reviews or architectural oversight. Regarding your question about other languages being better - each has trade-offs. I’ve worked extensively with C# and found it more opinionated about structure, which can be helpful for preventing the chaos you’re dealing with. Python is great for clarity but has its own ecosystem fragmentation issues. The thing is, messy developers write messy code regardless of the language. Your enjoyment of SQL and Python suggests you prefer explicit, structured approaches. Have you considered pushing for TypeScript adoption? It would give you type safety and better tooling without throwing away your existing React knowledge. Many developers find it bridges that gap between JavaScript’s flexibility and the structure of statically typed languages. The real issue here seems to be learning good practices while swimming in bad code. Consider setting up side projects with proper patterns to develop your skills outside this inherited mess.
What you’re describing sounds like a classic case of technical debt meeting developer fatigue. I’ve been through similar situations where inherited codebases feel like archaeological digs rather than software projects. Regarding your JavaScript concerns - many of those pain points you’re experiencing aren’t necessarily language-specific but rather consequences of poor architectural decisions and lack of governance. The fact that you have three different state management patterns across similar applications screams process issues more than JavaScript issues. That said, your instinct about standardization isn’t wrong. Languages like C# or Java do enforce more structure through their type systems and conventions, which can prevent some of the wild west scenarios you’re dealing with. TypeScript would actually address many of your current pain points without requiring a complete platform shift. Before jumping ship entirely, consider that every ecosystem has its own flavor of chaos. I’ve seen equally messy codebases in other languages. The real question is whether your organization is willing to invest in proper refactoring and establishing coding standards. Sometimes the problem isn’t the tool but how it’s being used.
honestly dude, you’re dealing with startup spaghetti code - thats always gonna be painful regardless of language. ive seen equally messy python and java codebases from rushed projects. the grass isnt really greener, just different shade of brown lol. maybe start refactoring one app at a time instead of trying to fix everything?