Content
Learning by moving fast Learning by talking to others who just learned Learning by having visibility Learning by reinventing the wheel Learning by making mistakes Learning by necessity Closing thoughts

Jessica Campos embarked on a wild ride at Instabase as a software engineer in 2018 and is now an engineering manager. Previously, she studied computer science at MIT and worked at Bain as a consultant and HubSpot as a software engineer. She lives in Bend, Oregon and spends her free time trail running and skiing with her husband and beagle.

Startups are scary. There’s so much you don’t know, so much to do, and so many things that could go wrong. Sounds like a recipe for disaster, right? If you’re anything like me, you may be having a hard time getting up the courage to jump to a startup, especially when it’s so important to pick the right one. For me, it was a tough but exciting decision to go to a startup, even one as low risk and high potential as Instabase (at the time, Instabase was a 14-person company with a $115M valuation). I took the leap for two reasons:

  1. Opportunities to join startups like Instabase usually only come around once in a lifetime, and I wasn’t missing mine.
  2. Being at the right startup can massively accelerate your learning, especially near the beginning of your career.

Only time will tell if my first reason was a valid one (and it’s sure looking like it was!), but I can solidly confirm now that the second reason has proven to be true. In my almost 3 years at Instabase, I’ve learned more than I could ever have imagined. Startups create the perfect environment for it: lots of things you need to learn, lots of things you need to do, and lots of chances to make mistakes. I’m going to go over several ways that learning happens at startups. A lot of the examples will be specific to my experience as a software engineer but can be generalized to any role.

Learning by moving fast

It’s amazing to look back at what I wrote at the beginning versus more recently, and see how far I’ve come as an engineer.

This is probably the most obvious one on the list. At startups, there is a lot of work to be done, not a lot of time, and not many people to do it. This means that people need to move faster and do more, which is made possible by empowering people to make their own decisions.

Moving faster and doing more also means learning more, especially when you haven’t gotten to operate like this before in your career. When I started at Instabase, I was the only frontend engineer, and there was a ton of frontend work to be done. I wrote tons of code. It’s amazing to look back at what I wrote at the beginning versus more recently, and see how far I’ve come as an engineer.

I’ve also gotten to watch Instabase’s engineering processes change as we’ve grown; different methods work best at different stages, and what works for a 15-person startup does not work for a 150-person one. In order to keep moving fast, we have to keep evolving our processes. My own engineering processes have changed with them and as I’ve become a better engineer: I don’t get to make 10k line PRs anymore and merge them in after someone’s taken a cursory glance, and that’s a good thing. But even though things have slowed down since those early days, we still move very fast relative to larger companies, with a high code-to-engineer ratio.

Learning by talking to others who just learned

It’s always useful to go to people with a lot more experience than you for advice, but there’s also incredible value to be gained from going to people with a little more experience. They just went through what you’re going through – it’s fresh on their mind, and they can relate better to where you’re at while still providing perspective.

All of the engineering managers at Instabase were originally individual contributors who grew into managerial roles. I made the transition myself about 6 months ago, and it wasn’t easy – another steep learning curve! Talking to the engineering managers who recently made the same transition made my transition much smoother. They had just faced the same challenges I was facing and had practical, empathetic advice. Four of our five U.S.-based engineering leads are also women, and I’ve especially loved that I’ve gotten their unique insight and to learn from them.

Learning by having visibility

When you’ve been at a large company for a while, you likely have a lot of context on your team or department, but not a lot on other teams, departments, or the company as a whole. On the other hand, if you’ve been at a small company for a while, you have a high level of visibility into every function – a result of this having been much easier to get when the company was much smaller.

Having this foundation of knowledge allows you to continue learning outside of your silos. Since I’ve seen most of our apps being built and all of our engineering teams form, I can more easily ramp up on the new projects they’re working on. Since I remember the questions I was asked while demoing to potential customers, I can see how we got to our current sales strategy. Since I’ve interviewed every single frontend engineering candidate that’s come through, I can work with our recruiters to continue to make our interview loop more effective.

If you understand how the pieces work, it’s easier to make decisions about the whole and to continue to build on that foundation.

Learning by reinventing the wheel

At larger, more established companies, you get to see things done the right way, but you don’t get to understand why they’re right and why the alternatives weren’t chosen. You often don’t get to see all the iteration that went into getting them there.

Reinventing the wheel has a bad reputation, so this one may seem counterintuitive. But think back to your classes in school: which one was more helpful for your learning – your teacher giving you the answer, or having to figure it out for yourself the first time? I always found that even though it took longer, I learned much better when I had to figure it out myself.

At larger, more established companies, you get to see things done the right way, but you don’t get to understand why they’re right and why the alternatives weren’t chosen. You often don’t get to see all the iteration that went into getting them there.

When we started working on our design system, we’d all used design systems before, but none of us had ever built one. We had an idea of where we wanted to end up, but we didn’t know how to get there. Every little decision we made was painstaking – I redid just our color variables probably 4 times. Could we have gone faster if any of us had built a design system before? Definitely! But by reinventing the wheel here, by going through that process of making those decisions, we understand why we had to make the ones we did. The learnings were much greater than if we’d had someone telling us how to set it up.

Our documentation for the Button component in our design system, Pollen. Want to help us build out new components and features? Apply here!

When you have to start from basic principles and have to do all your own research to come up with a solution, you actually understand why the solution you’ve come to is the best one. That’s not to say you’re always going to be right, and that’s where the next item on our list comes in.

Learning by making mistakes

This is a personal favorite of mine. I always tell people that one of my favorite things about Instabase has been that I am allowed to make mistakes and learn from them – and I’ve made my fair share of them. Sometimes when you’re doing something for the first time you get it right, and sometimes you get it wrong. People make mistakes, so startups make mistakes. The learning happens in the recovery and reflection process. A big part of being successful at a startup is seeing mistakes as opportunities to learn and taking the feedback that will enable you to not make a mistake the next time.

There are some mistakes that are harsher on startups than on large companies – for example, hiring mistakes. But there are just as many that are easier to bounce back from – for example, getting everyone using a project management tool and then realizing it’s the wrong one. A big difference though is in the volume of opportunities to make mistakes. At startups, there are more decisions distributed among fewer people, so each individual gets to make more decisions and thus make more mistakes from which to learn.

Learning by necessity

There is no coasting at startups. Everyone’s busy, and if you don’t do the thing that needs to be done, no one will. That new role you’re hiring for? No one’s given that interview before. That mysterious bug that popped up? No one else can fix it either. That logo your founder created in 5 minutes? No one’s ever rebranded a company.

I’ve prepared and given interviews for roles I could never do myself. I’ve fixed bugs I would usually just pass onto the next, more qualified engineer. I’ve even managed a huge rebranding project without knowing anything about marketing. Someone with the actual requisite knowledge to do these things could’ve done a much better, faster job, but I sure learned a lot while doing them.

Learning happens when you’re pushed beyond your comfort zone. It happens in those times you take a deep breath and confront that uncomfortable situation where you’re unsure of yourself, because you have to. And gradually, you become more sure of yourself – not just in situations like that one, but other uncomfortable situations too, because you know you’ve overcome them before and can do it again.

Closing thoughts

People overestimate what they can do in a year, and underestimate what they can do in five years. I’ve certainly underestimated what I could do and learn in just three years at Instabase. Deciding to go to a startup is a deeply personal decision, but if you’re at a point in your life where you want to learn the startup way, there’s no time like the present to make the jump.

As for picking the right startup… you could always start by heading over to Instabase’s career page