Engineering at a startup

It’s my second month being an engineer at a seed-stage startup now, and our team is starting to scale up our engineering team. We’re adding many different functions and hiring more engineers, and along with that comes a change in the philosophy of how we’re writing code.

A lot of times, startups need to move fast, so we often pull hacky solutions, leading to poor code quality that needs massive refactoring. This hackyness is great—it’s a characteristic at a startup because startups need to move at speed, and engineering things means you’re taking time to think about different designs and architecture, and the time between you getting a feature request to releasing that feature is longer compared to when you don’t engineer it and just push it out, knowing that it’s a partial solution that works but might have unironed edge cases that breaks the feature. But I believe that it is possible to build with quality without sacrificing speed; you just need to embrace a great engineering mindset in the beginning; at the end of the day, it’s about balancing between speed and accuracy. We are striving for that equilibrium, which will reward us with liquid gold once attained.

But achieving this balance alone is not enough; a startup is a company, and a company is a collection of people who came together working towards one shared goal. To have that shared goal among all people in that company is hard, and hiring the wrong people is often a common mistake when you build a startup and that can be deadly. A startup has less people compared to big tech, and every individual’s impact is bigger since they’re a bigger slice in this pie that is the company. Hiring the wrong person doesn’t only mean that the one slice they own is rotten, but as it rots it also affects the other slices, because that collective of people we call a company is ultimately a team who works with each others, and a misalignment in the vision of the company or, more importantly, misfit in the vibe of the company is a problem to both the company’s mission as well as the teammates they work with.

I personally see off-vibe as a bigger problem; even if an engineer has the right mindset and the right qualities fit for a startup but their technical skills are not up to par, it can always be trained on the job. I also see this misfit often in engineers who are switching from a very big company to a smaller one with <=10 engineers. At bigger companies, engineers might be used to perfecting a system, while for startups that matters less because we need to ship and iterating is better than holding and delaying. Engineers in bigger companies might also be used to sticking to a stack that might be outdated, and stop focusing on iterating on their own speed; when the company introduces a new technology, they might be less open to embracing change if they’re unsure of its effectiveness, while at startups, netting delta is one of our characteristics. Engineers from big companies might also never build the front-facing product because there are so many functions in big companies created and so many layers to the product that you might not even get to build anything that makes a huge impact to the user, so you end up thinking more on engineering than thinking on the product, while we need to build with laser-focus on what people want.

So if you are planning to build at a startup:

  1. Embrace change: if you’re oldschool and don’t like changing things up for the better, don’t do it.
  2. Be purpose-driven: your pay might be much lower than big-tech, so you need a purpose to drive forward (but probably not to the point ramen is your diet)
  3. Have a bias for action: bigger than engineering, we need a contagious energy from the individuals that can propel the team forward. You should internalize this idea of being fast, and you should do more than you talk. If you’re a stubborn perfectionist, don’t go for startups — you’re just gonna waste their time as well as wasting your own efforts.

Hope what I wrote is helpful for you, either if you’re an engineer considering joining a startup or if you’re a founder planning to get people into your rocketship.