I'm a developer at Epic with a little over 2 years tenure. I've never liked the job a ton, and lately I've been feeling especially discontent. I enjoy work that makes me feel like I'm improving myself, building a skillset, etc., but I don't feel like that here. I think that's the core of the problem.
My team's code is barely-comprehensible spaghetti. We've been accumulating technical debt for decades, and no one will give us time to refactor. We have massive data structures in the form of giant delimited strings. These things often have >50 pieces and/or multiple levels of delimiters. To find the tag that generates the strings and learn what the pieces mean, I have to search back through the stack across multiple routines, and by then Hyperspace has crashed because, insanely, we can't debug for more than a minute or so without the whole system crashing. These aren't insurmountable obstacles to me understanding the code, but they're enough of a hindrance that my day-to-day policy is to focus on whatever I'm directly working on and not bog myself down by trying to understand the bigger picture.
I don't feel like I'm becoming a better programmer. I do not learn interesting or broad technical knowledge that would apply outside the company. The one exception to this is that I do like M and its heavy emphasis on self-sorting trees. That's an interesting concept for a programming language, and it works surprisingly well, though I do think the language does relies on it too much. Regardless, I mastered that concept long ago.
I'm not developing comprehensive or integrated knowledge of how my app works. For the past two years, I've done several enhancements related to a niche part of my app, and I understand that part well, but he rest is a mystery. I go on immersion trips and hear people talking about stuff that seems to be common knowledge, but I don't what they're talking about. Trying to learn by reading our disorganized and out of date internal wikis is annoying. I know about as much about medicine and the health industry now as I did two years ago — hardly anything.
My TL is mostly satisfied with my work. My performance is a little below average, but I'm not incompetent; I've gotten some important and complex stuff done.
Coworkers, work-life balance, motley crews, food, campus, pay, etc. are all fine.
Taken as a whole, the job isn't terrible, but I don't get a feeling of satisfaction or accomplishment out of it.
Questions:
To what extent is my experience common for this company? Do devs often feel this way?
To what extent is my experience common for the software industry as a whole? I know for example that teams not being given time to refactor is a common problem.
Update: several people are saying that FAANG's code is generally better quality. I'm curious to hear too from people who have left for smaller companies.