How to Evaluate Management at a Technology Company
Evaluating companies from the perspective of a software developer.
Evaluating companies from the perspective of a software developer.
This is the first in a series of posts looking at how to evaluate your current or future employer as a company.
I work as a senior engineer/architect at a cloud software company, which means I conduct or participate in a lot of interviews for software developers. When the interviews are wrapping up we always give candidates the opportunity to ask us questions about the job. One thing that has struck me lately is that it is very rare for anyone to ask insightful questions about our company.
Marc Andreessen and his fellow VC’s aren’t the only people who should be evaluating technology companies with a critical eye. As a software developer you should be evaluating more than just the current tech stack or your current/future manager. You should be paying attention to the company.
How much does the company really matter?
Unless you are planning on becoming a run-and-gun mercenary for hire in the consulting space, you are probably one of the many Average Joe Coders who is looking for a steady paycheck and a nice place to work. Despite the articles you read on Hacker News about founders, equity and unicorns, many developers outside the valley work at normal 9 to 5's with typical salaries and benefits.
Sometimes the benefit of having a 9 to 5 is that you can work at the same place for many years without great upheaval in your family or social life. The downside to looking for this type of work is you need to find a place that is going to stick around for a while… and if you’re lucky, one that will keep you happy.
In my early years I was much less concerned about the company than I was the technology I would be working with or the people who I would be directly interacting with. When I look back on why I left some of those companies, most of the time it wasn’t because of who I was working with or what I was working on. It was because I didn’t believe in what I was doing anymore.
What makes a great company?
For the next few posts, I’m going to sketch out a handy series of questions you should ask yourself on your next recruiting trip. These questions will deal with the trifecta that make a great technology company: management, engineering, and product management.
Ideally, this trifecta works together to create a great technology company. Being great is subjective and there are very few companies who will check all of the boxes I outline, but a great place to work should check as many of these boxes as possible.
For the first part of this series, let’s talk about what you should be looking for from management.
When I say management, I mean true C-level management (or in larger companies, possibly VP level). These are the people who make decisions from up in the clouds… people who you may seldom interact with on a daily basis.
Does management have a vision? — Do the people at the top truly have a vision for the company? And perhaps, more importantly, are they clearly communicating it to the people in the lower ranks?
The reason you see a lot of “rah rah” value statements and propaganda in a corporate environment is typically a clumsy attempt by upper management to communicate to you, the lowly employee, what everyone at the company should be working to do. Typically, those corny “Is this good for the company?” banners are an indication of poor communication from leadership.
To find out how well management is doing at communicating vision you don’t need to talk to an executive (in fact, you shouldn’t). You simply need to ask a lower level employee, “so what are you, as a company, trying to do?”
They should be able to give you a simple and concise answer. Let’s look at a couple of examples:
Mailchimp — Send better email.
Uber — Make getting/giving a ride easier.
Zappos — Sell stuff with great service.
If you can’t get an answer like that, then upper level management is doing a poor job of communicating and refining the vision. If everyone isn’t rowing in the right direction, you are probably headed for the rocks.
Does management hold employees accountable? — Do employees worry about their own personal success, or does management hold them accountable for the success of the company?
I like to think of accountability as a sliding scale. An ideal company is in the middle of the scale and at either end are the extremes:
On one end, you can have a management team that holds every employee accountable for everything. Typically you might find these in smaller companies and startups. These are the tyrants: managers who get things done by fear and fiat. They dictate terms and rule with an iron fist.
This type of management team will not create the best environment to work in but it can be successful. To work in an environment like this you need to value success over autonomy, though even then the burnout rate can be high.
How do you spot this type of management style? Here are a few things to watch out for:
Hands-on Executives — C-Level executives involved in day to day operational decisions usually indicates a lack of trust in employees.
Overbearing Managers — Managers usually take their cues from the top. If the executives operate as tyrants, it’s likely that managers in this environment will operate the same way.
Rapid Direction Changes — This isn’t always the case, but companies who rapidly change focus and scrap projects often do so because one executive holds the reigns and has ordered a change.
On the other side of the spectrum, a management team who doesn’t hold employees accountable is almost guaranteed to get nothing done. This type of team usually ends up making every decision by committee because no one wants to bear the brunt of responsibility. Often times you see these types of cultures at larger companies.
How can you spot a management team that doesn’t hold employees accountable?
Meeting Culture —You can bet there will be a lot of meetings where little is decided and responsibility is vaguely assigned but never delegated to a specific person.
Mid-Level Fiefdoms — Managers will sometimes build up their own areas of influence where they hold their own employees accountable to their agenda, but are not necessarily accountable to the company.
Pet Projects — Technical staff will, in the absence of direction, invest in building their own technical skill-set. This can manifest itself in projects that involve a lot of research or solve a technical problem with little benefit to the business. Many times this involves technology choices that don’t match the existing technology stack (“we are going to use the alpha version of Angular 2.0”, “we started our new project in X even though everything else is written with Y”).
In this type of culture no one is being held accountable for the success of the company; they are looking out for themselves.
Ideally you want to find a company that has a management team that does two things:
Clearly communicates a focused vision.
Holds employees accountable for success without making them miserable.
Next time I will address what you should be looking for from the engineering team.