I've run across so many of the same problems at various unicorn/FAANG companies and as I've become more experienced I'm curious if there's a way to leverage this experience other than continuing to be a "staff+ engineer" at another Facebook/Uber/Snap/etc.
Thanks in advance for any advice/comments.
* Yes, many companies need the help.
* However, they typically (not necessarily unfairly) have a dim view of consulting/consultants.
* They can't (or won't) prioritize stopping or slowing down feature development to make the infrastructure changes that will lead to significant improvement. Often the potential solutions are actually either known or obvious already.
* In systems of appreciable complexity, it can take a significant amount of time for a consultant to examine all the moving parts to come up with a good/reasonable set of recommendations.
* So, as a result, consultants are often only brought in when things have deteriorated to an extent where it really hard to help. One other case is upon change of control (company is sold or acquired); this might be a better point to implement change.
* Lastly, knowing what needs to be done is one thing; actually implementing the necessary changes "on the fly" is actually the hard(er) thing. Often the company's team just don't have the skills to do that. Accordingly the best results are often when you can bring in a team to both consult and help the team through the implementation/changes.