In a decade of software engineering, I’ve been fortunate enough to join 3 startups in my career. Unfortunately, none of them became unicorns, but there were invaluable lessons learned along the way. I’ve heard some companies with around 100 employees call themselves startups, but what I’ll be discussing here are startups with fewer than 10 people (usually crammed into a small room).
When joining a startup, you’re likely to wear multiple hats out of necessity since founders generally only hire critical personnel due to financial constraints. This means that you might find yourself managing infrastructure, cloud, frontend, backend, and even weekends. But this also means you have significant influence on technical decisions. I have used startups as a platform to hone my skills in various technologies. It’s usually easy to convince a small non-technical team about the potential payoff of a technical decision. Larger companies often have plenty of bureaucracy. Changes have to be approved all the way to top management, and this process could take months or even years. In a startup, you could potentially introduce all kinds of new technology you want to learn and play around with like Sveltekit, a new programming language that lets you do more with less code, you could be having a conversation about this technology one day and it will be a one of your production systems by the following week (provided of course, you can also build it yourself).
The opportunity to introduce new technologies, coupled with the tendency of founders to overpromise to their customers, forces you to learn plenty in a short amount of time. In a traditional company that uses Agile methodologies, features are usually delivered in bi-monthly sprints, depending on how complex each feature is. However, in a startup, founders might come up with an idea one morning and expect it to be executed by day’s end. There is an implicit (and often explicit) pressure to satisfy whatever commitments have been made to potential stakeholders or customers. This forces you to adapt and learn quickly to deliver on these requests.
The relationships you build while working at a startup will undoubtedly be unique, extending beyond the borders of work. You may develop strong bonds and make lifelong friends, or you may end up burning bridges once you leave. If you are at a point in your life where you don’t have too many commitments or if you are actively seeking potential lifelong connections, working at a startup may be the unlikely place you unexpectedly find them.
Every once in a while, a startup hits the jackpot and goes public. Although the chances are slim, it’s not impossible. As an employee of a large company, your chances of becoming a multimillionaire from your employment alone are virtually zero. But with startups, you own stock — a piece of the company. It may not happen immediately, or even at all, but if it does happen and your company goes public and you still hold those stocks, the payout could be substantial enough that you might never have to work again.
Absolutely, yes. Although the cons of joining a startup — long hours, crossed boundaries, delayed paychecks, underwhelming company events, and pizza being one form of compensation — can stack up, the knowledge, experience, and opportunities for growth gained from working in a startup far outweigh the downsides. For instance, I’ve heard of engineering teams in large organizations who would work on a single feature for an entire year. In startups, you experience the end-to-end process every day. The non-technical knowledge and business acumen you naturally acquire in such an environment can ignite entrepreneurial zeal within you. Finally, the unpredictability of startup life forces you to keep growing as a person and always be prepared to manage crises — a skill everyone should possess, irrespective of their profession.