Disclaimer: Not all startups are created equal. This article is based on my work at Signal, which is the only startup I have worked at. However, I have read many articles and have had many conversations with others who work at a startup, and I’ve found that much of what I’ve listed here applies to those startups as well. In addition, many of these points may very well apply to small companies that aren’t necessarily startups.
After graduating from college I immediately started work at a very large, multi-national communications technology company. At the time, I liked the idea of working for a large company. I thought that it would provide room to grow, job security, and the ability to switch roles easily without leaving the company. Over the past 10 years, I have moved from a company with about 100,000 employees, to a company with about 2,000 employees, and then to a company with 4 employees. Every time I moved to a company with substantially less employees, I noticed that my job satisfaction increased.
I have never been more happy with a job that I am at Signal. And, there are several reasons for this.
The ability to wear all hats
When I started at Signal there were only 2 other engineers (3 if you include the technical co-founder who was looking to focus less on technology and more on growing the business). With only three people on the engineering team, you need to be able to work on any part of the system, at any time. Application design and development, user interface design and development, database administration, system administration, IT, etc. In an environment like this there are many opportunities to learn something new. Database administration and user interface design were not strong areas of mine, but working at a startup gave me the opportunity to develop those skills. Much more so than at company where teams are segmented based on the functional areas of the application. And, even after a year and a half, I’m still learning new stuff like crazy.
This isn’t to say that some engineers aren’t stronger than others in certain areas, and you can’t play to those strengths. You’d be foolish not too. But at this size, it’s simply not practical to have one engineer do all the UI work, one do all of the database work, and one do all of the application development.
The chance to make a really big impact
I was hired as Signal’s fifth overall employee. When there are only five people in the entire company, everybody has the chance to make a really big impact. The harder you work, the bigger contribution you get to make. And contributions can take many forms, like a newly implemented feature, providing awesome support to a customer, a new idea for a product, or a new way of resolving a problem that has been facing the company. There is no product group or customer service team at a very small startup, but the needs traditionally serviced by those roles still exist. In addition, you are able to see the impact of your contribution immediately, be it positive or negative.
You also have the opportunity to play a bigger role in how your product or service develops. If you see an area that needs improvement, a bug that needs fixing, or a gaping hole in the product that could be addressed by a new feature, it’s up to you to address it. There is no committee or change board that needs to approve the change, and no need to line up resources from the database and UI teams to help with the work. You are expected to drive the change. This, for me, is a major source of inspiration and motivation.
The ability to choose your tools
One of the things a software engineer likes to complain about the most are the tools they are forced to use at their company. And with good reason. Using tools that you are comfortable with can make you more productive, and quite frankly, happier. Little is more frustrating than being forced to solve a problem one way when you know you can solve it quicker, and better, another way. This is generally not a problem at startups. While you rarely have the ability to choose all of your tools (programming language for example), you will generally have the ability to choose your work machine, operating system, editor/IDE, web browser, mail client, etc. And, since you are your own IT department, there is no question that you will have root access to your work machine. These may sound like minor details to most people, but any geek will assure you how important this actually is.
The ability to choose the right technology for the job
Many companies standardize on technologies. There are many valid reasons for this. However, sometimes the standardized option makes little sense for the task at hand, and you are forced trying to fit a square peg through a round hole. This generally doesn’t happen at startups. One of the best things about my job is that the engineering team gets to decide which technologies to use after evaluating the technical details of the problem it is trying to address. One might think that a stance like this would lead to an explosion of tools and technologies in our stack, but this is hardly the case. Being responsible and professional developers, we understand that we will have to live with and support the decisions we make. So, we carefully evaluate any significant new technology before bringing it into the stack.
A voice in choosing your teammates
When working on a small team, everybody needs to pull their weight in order for the company to be successful. Bringing new people onto the team is a big deal. A single bad team member can be a cancer to an otherwise strong and healthy team. Therefore, people interviewing for the company talk with everybody. This may be a bit overwhelming for candidates, but I think most appreciate how closely we protect our team dynamic. Now, this isn’t to say that everybody “interviews” each candidate. Our VP of marketing isn’t going to ask a candidate for an engineering position to solve a coding problem on the whiteboard. Instead, a few people will determine if the candidate is qualified for the position, and the rest will determine if the candidate would be a good fit, personality wise, on the team. As an engineer, I think this is great. When hiring a new engineer, we all get to ensure that the candidate is smart, loves technology, knows how to solve problems, and will get along with the rest of the team. And when hiring for a non engineering position, we get to ensure that the person we’re bringing onto the team isn’t a jerk.
A great work culture
Startup culture is great. I’m not talking about $1,000 desk chairs or having a company masseuse. Hell, two other engineers and I were coding around what the CEO called a “nerd campfire” the other day (can’t say that I disagree with that terminology) because we currently have no desks. I’m talking about the camaraderie; eating lunch together, getting to meet each others spouses and children, chilling out and having a few drinks with each other. I think this is very hard to find outside of small company. It seems to me that most startups have a casual, relaxed, and fun work environment. Flexible hours. No dress code to speak of. Signal even has a kegerator in the office which is always fully loaded with great beer. They do pretty much anything they can to make their employees feel comfortable so they be productive.
Flexible work options
Flexible work hours are very popular now-a-days. Even at the larger companies where I have worked, it wasn’t uncommon for some people to come in at 11am and stay until 7pm or 8pm. Having the ability to fit work around your personal schedule is a big plus, and I feel it makes for a much happier employee.
Even more important to me is the ability to work from home. I live about 30 miles from the office, which takes about 90 minutes to travel during rush hour by car or train. I’ve tried not too complain too much about my commute, because nobody forced me to live where I do. It was my choice, and I’d make the same choice again. But, when I was given the opportunity to work from home, I jumped on it. Working from home saves me 3 hours a day. That is huge for me, as it always feels like there are not enough hours in the day. Working from home 4 days a week has given me the ability to see my wife and kids more often, start running, and to spend a little more time on some side projects to improve and expand my skills as a developer. Seeing my kids more often is by far the biggest benefit of working from home. Now that my oldest is in school, I barely see him when I go into the office. Our schedules only overlap for about 30 minutes in the morning, and 30 minutes at night. This is not the case when I work from home.
No bullshit politics
When there are only 13 people in the entire company, there are no politics. There is no jockeying for position. There is no posturing to give the impression that you are an all star employee when you’re really just a leech. There is no room to hide. If you’re not contributing, everybody knows it. If you are trying to exploit others for personal gain, everybody sees it.
Your opinion matters
It’s hard to make a decision that impacts the company in complete isolation at a startup. The founders at Signal always consult the team when it comes to making a big decision. Make no mistake, they have the final say. But they value the opinions of the team and constantly request feedback. This gives the employees a sense of ownership, which is great for morale and can be very motivational.
I think many of these points are the product of a few major differences between a big company and a startup. First, productivity is paramount, and anything that can be done to increase productivity is done. If employees aren’t producing at their highest level, it greatly increases the risk of the startup folding (delaying time to market or being surpassed by a competitor). Second, startups run on the bare minimum. There is no extra weight to carry around. There are no employees that need to justify their existence by adding unnecessary overhead. Everybody has more than enough “real work” to do in order to move the company forward.
Working for a startup does have some drawbacks as well, but the positives far outweigh the negatives. The comparison is not even close as far as I’m concerned. As I mentioned at the beginning of the post, each company I have worked at has been substantially smaller than the previous one, and my job satisfaction has increased with each move. While some large companies can have some really interesting problems to solve (especially when it comes to problems of scale), I’m not sure I could ever go back to working for a large company.
Yo Ho, it’s a startup’s life for me.