By Chris, 06/29/2016, in Engineering management
If you're a software professional, there are two types of companies you might work for; those whose products are fundamentally software (they make money directly from technology), and those that make their money some other way, but rely on software. Let's call the first Type A, and the second Type B1.
These folks sell software, or otherwise directly monetize their technology.
These guys are enabled by technology, but don't make money from it directly.
Early in my career, one of the things I looked for on resumes was experience at a Type A company. I believed that the best engineers would gravitate away from Type B companies. I thought Type A employees were more likely to be at the top of the talent heap, and more likely to be current with the tools and practices of the trade.
But in the intervening years, two things have become apparent:
I can't stand engineering groups with superior attitudes, that aren't supportive of the rest of the organization. A little competition between departments is healthy, but if we're all building bicycles for the mind, then fundamentally our job is to augment others. It's a service job -- we build tools. A humble, cooperative attitude is invaluable.
There are a few reasons I think Type B companies do a better job fostering this attitude.
Your job is to build awesome technology that customers will pay for.
You are close to the money
It's straightforward to be a technologist at a Type A company. The software you create is very closely tied to revenue, which is ultimately what drives business. The closer you are to the money, the closer you are to the beating heart of a company.
On the income statement, engineering & R&D are a cost centers4, but they are also the golden goose that made the business possible in the first place.
In the words of one engineer I worked with "If it doesn't come out of these fingers, it doesn't happen."
Your job is to support the business goals of the organization.
You are further from the money
In a Type B company, you're a true cost center, and perhaps viewed with a bit of skepticism. Is all this software really necessary?
Money is the central pillar of business, and the further from it you are, the less influence you have.
But working for a Type B company can also be a heck of a lot of fun. Your customers are often the folks sitting down the hall from you. Product feedback is instant. You might get a literal pat on the back for a job well done. Your users have less variance in terms of training and environment, and everyone shares a lot of tribal knowledge.
Good engineering is 20% building product right, and 80% building right product. With the tight feedback loop you get developing internally, you're much more likely to get it right. And with a forgiving customer base, often running on the same infrastructure, you can iterate quickly.
If I never overhear the following at my company, we're doing good work:
Whether engineering is at the top or the bottom of the cultural hierarchy, technology exists to improve the lives of its users. Engineering is a functional group like marketing, or sales, or operations. These teams need to work alongside each other as peers. The cultures in Type B companies are more likely to foster that mind set.
1: This doesn't strictly apply to only software companies. Boeing, for instance, clearly makes money directly from their technology products...which are not strictly software products. I would describe them more as giant flying tubes of metal.
2: I do still believe that bad engineers are more likely to be hiding out at Type B companies, but that has no bearing if you are trying to recruit top performers. You'll spot them right away. The difference between MIT and Virginia Polytech is not at the top of the class; both have some of the world's best. But at the bottom of the class, there's more room to hide in a larger, less focused organization.
3: Popular, influential open-source projects came out of Type B companies all the time. The New York Times alone produces incredible open source projects, from D3 to their Objective-C Style Guide, to Gizmo. And don't forget that Django was created by the Lawrence Journal-World newspaper.
4: Excluding Amazon Web Services, of course. I'm talking about Amazon the retailer.