Software Engineers and Startups - Finding Your Perfect Fit
Startups are fundamental to any thriving tech ecosystem. One of the beauties of the tech industry is that most of the FAANG companies started off as a startup in someone's college dorm room or garage! Working at a startup can be an exciting experience for an engineer at any stage of their career.
However, startups are quite unique, and your experience at one may vary depending on various factors (that we'll be looking at in this post). You should consider these factors before joining and see if the company fits for you.
Factors you should consider
Stage of the Startup
Startups come in all shapes and sizes, and the stage of the startup can have a huge impact on your experience as an engineer.
In general, startups can be broadly categorized into 3 stages:
- Early Stage Startup
Startups early in their lifecycle can provide a much more raw perspective on software development, as well as running a company. You get to wear many hats across the engineering stack, and even get to do things beyond engineering such as helping out with design and product decisions.
In early stage startups, it is also quite common for the founders to be highly experienced (and talented!) Software Engineers, which can provide excellent exposure at any stage of your career.
On the flip side to this raw experience, early stage startups are unlikely to have the coveted Product Market Fit, so pivoting and constantly rebuilding is quite likely. This is great if you enjoy iterating over and over on a product. At an early stage startup you really do get to “move fast and break things”.
In this video Rahul provides a great example on joining an early stage startup and how beneficial it can be for your career (I recommend watching the full video in tandem with this blog).
- Growth Focused Startup
Companies between the Growth and Late Stage are generally a lot more well structured, they usually have a head count of around ~100 people. This is great because while there is still a lot of potential to move around, things are a bit more structured and they’re highly unlikely to pivot.
However, as companies reach these stages they’re likely to be slower with their decisions, and you’re unlikely to get as much of a raw experience.
Unicorns are tech startups with a valuation over $1 billion, you’ve probably heard of a few of them! Companies like Canva, Reddit, Stripe, Spotify and Docker.
They generally operate almost identically to Big Tech companies, all the way from the interview process, who they hire, and the day to day life of a Software Engineer. Working at a unicorn company has great potential because you can potentially get pre-IPO shares which can be valued really high. Additionally, you get quite a bit of prestige on the resume.
Given the scale of unicorns you’ll likely have to specialize in a particular area of the stack, and work with extremely large technical systems.
When joining any company it’s a good idea to evaluate the team you’ll be working with and the culture they’ve set out. This is especially true in a startup with less than 25 employees, because of how closely you’ll be working with everyone.
We all know by now that Software Engineering is a team sport and in a lot of interviews you are open to meet other members of the team, and you should leverage this and ask some key questions about the culture and environment.
- How does the company handle personal development for employees?
- How does the company handle difficult/turbulent situations? Ask for an example of such a time
- Ask questions about flexibility, and remote work (if that is of interest to you).
- How open is management/leadership to suggestions & change? This comes in handy later
At the end of the day, the code is all that matters!
As a Software Engineer, when joining a startup you should ask questions and gain a clear idea of the following
- What technology stack are they using? Does it fit your needs as an Engineer? Will they have multiple products (such as Mobile & Web) so you can build more things?
- What is their current DevOps practice? Do they have one? Can you assist in building it out and scaling it?
- What is their current Testing Practice? Can you assist in building that as well?
- What is their development style? Although Agile has become the de-facto methodology, there are many other styles of development (such as Extreme Programming).
This section is actually quite closely tied with the "Culture" section we discussed earlier. If the company is in an early stage and has a culture that is open to ideas and suggestions, you can very well influence a lot of the technical decision making process (and learn a ton along the way).
Which one is the best for you?
Having worked in many startups and on the other end for a VC, the answer is a lot more nuanced than I would like it to be. Here's my recommendation across the spectrum of engineering seniority
- Junior Engineers (0 - 3 YOE)
Recommendation: Late Stage & Unicorns
Early on in your career, you should be aiming to join a bigger company.
This is because larger organizations have more resources to appropriately train you. Additionally, at larger companies you get learn about large scale systems, and obtaining that exposure early on in your career is invaluable.
Also, in the early stages of your career you should be focusing on "depth first" learning, which is something only larger companies can provide.
The following snippet from Rahul and Alex on Taro explains why
- Mid-Level to Staff ( >3 YOE)
Recommendation: It depends!
If you've spent most of your career at big tech, switching over to an early stage startup later in your career is invaluable experience, because you get to deal with so much more than just engineering.
On the flip side, if you've spent a lot of time at smaller companies, unicorns are a great way to transition into Big Tech and gain coveted exposure on how large scale systems are developed and maintained.
There are other factors to consider as well, such as compensation, work-life balance, the industry, financials, the list can go on. However, this guide is meant to be very specific to startups, just because they operate so distinctly.
Irrespective of engineering experience level, working at a startup is a rewarding, fun experience, and a fantastic way to make some great memories as well as gain a broad array of skills!
Connect with Kazi on LinkedIn here. Checkout Taro for more content like this (e.g. "Why You Should Initially Work In Big Tech")