I've got 13+ YoE and been working in big tech for about 4 years, joined an established start up (10 years old, profitable) a month ago, and wondering if I am out of touch after the meat-grinder that is competing for delivering "impact", stack ranking and so on.
I don't know if I should stay at this company as I feel like I can't really do good work here and it feels like, if I stay, I'll be less experienced at the end of 5 years than when I started.
-----
Soo
I joined an established start up a month ago, they have a legacy app they are incrementally migrating from Angular 1 to React.
Their "good" app is a super custom React implementation that's extremely difficult to understand, including some kind of component middleware and half baked Redux integration that doesn't work with any devtools.
The client is about 20mb of JavaScript shipped to the browser and the local development workflow is quite poor.
90% JavaScript, 10% TypeScript and the team doesn't really want to move to TypeScript, banning porting existing code to TypeScript.
There were some basic errors I noticed when I started, like not committing the package-lock to the repo so I asked about it and raised a PR adding one - which got declined because it was "risky".
The package-lock raised 60 critical vulns in the npm audit, which I raised and was told addressing them was too risky. I suggested that we should at least add a CSP to the app, given some of the vulns are implicated in injection attacks - again, too risky.
During development, hot reload times are 30s so I raised a PR that added `npm run dev:next` which uses Rspack to build the client only for development, which halved the hot reload time, but that was declined.
I noticed they don't have any automated testing (there's an overseas team the does manual QA before every release) and asked if they'd be open to building out an automated testing suite - to which they said no.
They also don't have any CI, all validation happens in a pre-commit hook, which they are also not interested in adding in.
I noticed they don't have any observability on the client - no error rate, no load times. I asked how they know if anything is wrong and apparently, if it's not caught in QA, "customers call us and we fix it". I suggested adopting something like Sentry to start tracking the client to help quantify the impact of features and preempt errors before they escalate and, again, was told no because it was "risky".
My manager had a 1:1 with me this morning and told me that I should not attempt to make contributions outside of the tickets I am assigned, and I am expected to raise 1 PR per day otherwise I will be let go.
I repeated my above concerns and he said that they hired me to do tickets and that was it.
For next time: it's really easy to accidentally ruffle feathers if you come in and start proposing tooling or process changes. People get attached to their project if they've worked on it for a while, and can take observations from an outsider as judgemental or an attack, regardless of how valid those observations are (many of yours seem valid to me). You coming from big tech can make people even more sensitive to this (if you're triggering their latent impostor syndrome or whatever as someone from a prestigious company). The way you summarize your manager's feedback makes me think that you either rubbed him the wrong way or offended some more tenured people who complained. Kind of hard to undo that now, but helpful to keep in mind for the future. If you demonstrate that you can hack it on tickets as you ramp up and establish some trust with your teammates over a few months, you'll typically have an easier time with this type of stuff.
(I would normally add a caveat that another good reason to wait a bit before bringing stuff up is that you might be missing the bigger picture, and that can help you ensure that you're actually arguing for useful change. I omit it for you because "we should have any observability at all for our production application" seems pretty uncontroversial to me and doesn't make me think you're out of touch or focused on unimportant things)
One colleague whom I have worked with in a previous role and has a similar mindset to me said that he just does the 1 PR a day and spends the rest of his time on OSS for satisfaction.
I took that onboard and have been ramping up my PR count over the last week without making suggestions - but I suspect the reputational damage has been done and I have soured relationships as, contrary to the 1 PR a day metric, my manager quizzed me on what I was doing after submitting my PRs in our 1:1.
Appreciate it and will certainly keep that advice in mind for the next role
Some startups are run by cowboys/cowgirls. They don't care about anything other than features until everything falls apart or they rebuild in a nightmare sprint.
I've been at one of these. You will fail to change them even if you stay for 3 years. You risk getting fired if the CEO realizes the mess and hires in someone to fix it. Your manager is already thinking about firing you.
Apply for new jobs immediately. In the meantime do 1 pr a day.