Writing

Feed Software, technology, sysadmin war stories, and more.

Saturday, February 8, 2020

The tools you'd miss if you left a company

For those people who have worked at multiple companies and thus have left a couple of jobs over the years, do you ever think about stuff you miss? These are the internal systems, build environments, tools, features, or other neato things that you had which made your job easier, better, faster, or maybe even possible... but which didn't exist on the outside world.

This seems to come up every so often when I hang out with friends from certain places. For example, if you talk to anyone who worked at Facebook for any amount of time on relatively mainstream parts of the business, they'll probably tell you they miss Scuba and ODS. People from Google probably miss Borg (and lament the whole Kubernetes thing) or BigTable.

I got to thinking about this some more, and realized there's more you can learn from the general case here. Think about any place you've worked, and try to figure out if you'd actually miss anything from it if you left. You're not allowed to include things you or your friends built. It has to be the sort of thing that you didn't touch and yet made your life better to the point that you'd maybe try to build it again somewhere else.

If you can't come up with anything, it's possible you're just beyond repair and too snarky to think reasonably, but if you then ask more people and they also can't come up with something, then you might have a problem. This might mean that you work at a place that doesn't have nice tooling, and that's probably because nobody's built anything good. That in turn might be because nobody builds anything, period.

Companies that decide to further the Silicon Valley pyramid scheme and funnel all their money into vendors to rent (NOT buy) services can create situations like this. They end up with a bunch of 80% (at best) solutions which cost a lot of money, are poorly understood, and can never really be improved.

The "engineers" at those companies tend to be reduced to writing glue. That is, they probably write a bunch of wrappers, proxies, and other things that don't do much work in and of themselves. They might even find themselves creating the stuff that lets vendor A talk to vendor B through their own little proxy, because A and B can't be trusted to talk to each other directly without screwing something up.

It doesn't take too long for people to realize that all they are ever going to do is write glue -- badly, I might add -- and run away. They find other gigs that actually let them build neat things for other people.

This becomes a self-reinforcing situation, naturally. If you join a place and find nothing but people who are just happy with glue and who react badly to actually building stuff, you'll probably have a bad time. Granted, the whole place probably isn't like this, but the other folks like you have already learned their lesson and are keeping their heads down lest they get chopped off.

If this is your life, I'm sorry to say, but you're actually in the bad place. Not every company works that way. Some of them actually build things that make sense for the business instead of deciding to rent everything they can find a vendor for. They do engineering work.

Really think about it. What would you miss enough to build it again?