Instead of working on actual, long-term projects that a person could get excited about, they’re relegated to working on atomized, feature-level “user stories” and often disallowed to work on improvements that can’t be related to short-term, immediate business needs (often delivered from on-high).
And when you do find those engineers who are a fit? Cherish them, because “every engineering hire is a miracle.”
I just don’t care about Yelp’s problems, any more than I care about Uber’s problems or Yo’s problems or anyone else’s problems. They’re interesting for a while, but they’re also the same self-inflicted wounds everyone seems to deal with — why is this slow? why is this broken? how can we keep this old code limping along indefinitely without having to rewrite it? how does this thing a former employee wrote even work? They’re cute puzzles, and I can get into solving them for a while, but I don’t care about them. Because they aren’t my problems; they were just dumped in my lap, along with a canvas sack with a dollar sign on it. 💰
So I just need to split my simple CRUD app into 12 microservices, each with their own APIs which call each others’ APIs but handle failure resiliently, put them into Docker containers, launch a fleet of 8 machines which are Docker hosts running CoreOS, “orchestrate” them using a small Kubernetes cluster running etcd, figure out the “open questions” of networking and storage, and then I continuously deliver multiple redundant copies of each microservice to my fleet. Is that it?
The web has no gatekeepers. The web has no quality control. The web is a mess. The web is for everyone.