|
I have worked at a BigTechCo for about 3 years and feel like my engineering skills are slowly and steadily deteriorating. Multiple people in my team, org, and other BigTechCos have expressed the same concern. Essentially, everything we do is between other mammoth systems and thus most “work” is actually configuring systems to talk to each other or talking to other teams about guarantees, capacity etc. The actual engineering work is minimal and the development speed is glacial. Previously I worked at a small consultancy, a green field company, and startups. Small teams, full stack, very fast paced, interesting work (dynamic programming, exotic schedulers, path planning, front end/back end, databases, events/streams, native mobile). Now I feel I just slog through esoteric config or some custom DDL, language, or tool nobody else uses. No team can do anything meaningful by themselves, everything requires meetings and infinite Google Docs. The pay is more than 2x what I was making before and the promos keep coming but it all just feels like BS. Does anyone else have this experience? Note: I have definitely improved in cross team communication and collaboration etc. as well as big org politics. So not a total loss. |
My parents are chemical engineers and the work they do seems fundamentally pretty similar to Software Engineering at Big Tech (with different inputs and outputs and constraints), in that it’s less about getting any individual thing done, and more about getting many people to agree to a set of tradeoffs and implementation. Also, the scope for ground up work is pretty much non-existent and it’s a lot more about gluing together existing components with well known tradeoffs and tested characteristics.
Cross-team communication cost and latency can always be improved, but I think some slowness is unavoidable due to the possible impact that changes have.
There are pockets within Big Tech, which work on less critical things and they often have a much more startup mentality and approach to development. However, it’s still difficult for these teams to fully extricate themselves from the overhead imposed by the systems of other teams, since those systems are generally designed for bigger, more important and more critical systems.