I just switched from a startup to a unicorn and became a better engineer
I started my first job during college. During the summer break, one of my professors asked me if I wanted to join a small company as a developer. I had no experience and minimal practical knowledge. I accepted. It was a perfect opportunity to learn. There were less than 10 of us, and we were working in the same room. My supervisor sat right beside me, and we all felt like we were working from home.
Fast forward two years, and I was just starting my own company. Did you think ten people was a modest headcount? How about three?
If I wanted to talk with one of my teammates, I just needed to say it aloud (or shout if there were headphones at play). Everything we did, we did together. The whole company was in a few square meters.
Small company, simple solutions
My next job finally included people who worked from different cities, countries, and time zones. Still, there were fewer than 30 of us, and most were in the same office. You get the gist by now. All of these included some recurring themes:
- Do you want to talk to someone from a different department? Stand up from your seat and walk to them.
- Need to discuss something with your team? There are two of you (if you’re lucky). Just talk it out.
- There is a requirement you need to fulfill; you find a solution and code it. You do some manual tests by yourself (or with the client). Everybody seems happy, so you deliver the solution.
- You are focused on getting things done efficiently; there is no time (or need) for writing tests. Who cares about accessibility?
- Should we first sit down and talk with the designer? Wait, there is no designer!? What matters most is that you have it by the deadline.
If you’re lucky enough and things don’t burn because of your (lack of) process, you get a new project, and everything starts from the beginning. You think you have it all figured out…
Expectations of a big company
As life often likes to show, you actually don’t.
I got an opportunity to apply for a job at a new company. The difference?
This one has thousands of employees. There are offices around the world. What about the customers? I could take the greatest number of users of the products I previously worked on, multiply it by 100, and there would still be more.
Exciting as it was, I didn’t expect that much of a change at all.
There is an office in my hometown. Sure, there will be more teams, but they are self-contained. I will have a manager who will take my boss’s role, and that’s it.
I will continue to work with the same technology as before, and the level of skill that I acquired will allow me to tackle any new problem without sweat. If anything, everything will be easier, since I won’t have to do all that stuff which shouldn’t be a part of my job…
And it seemed as if I was right. I met the team. There were only a few of us. During onboarding, you notice that many people are involved in the process, but you take no special notion of that. That’s how it’s supposed to be. You solve some tasks enclosed in your team and confirm your initial thoughts. This is in no way much different than before.
Except it is.
You start working on some real tasks. You begin to notice the complexity of the project. The sheer number of people that work/worked on this.
Your changes now impact hundreds of other developers and are not just limited to you and your team. Furthermore, you need to collaborate with people, most of whom are in a different country. You can’t just do everything your way. You depend on more departments and teams than you even knew existed.
Your work now affects thousands of customers
You also can’t utilize your time the way you’re used to. Need some information from a colleague in a different time zone? Wait for a few hours. Need to merge your PR? Wait for a few days.
You’re also faced with some new circumstances. One of your changes introduced a bug. The way you used to work, no big deal. The client raises a flag, you solve it in a few days, and barely anyone notices. However, you now affect thousands of your customers. Your mistake is now company-wide, visible, and acknowledged. You need to learn from it and draw conclusions.
Was all this necessary? Would it be better to stay at your old company, where everything was familiar Was it a mistake? Faced with a mindset shock, you need to adapt…
Becoming a better engineer
Now that you are out of your comfort zone, there is nothing better you can do than to use it and grow. You realize how much insight and knowledge you get from working with many experienced colleagues.
You’re starting to learn new things. You’re not expected to run half the company by yourself anymore, so you can focus on increasing your expertise in the chosen field. You are now directly involved in building your company’s product. Your input matters. Not to mention that you are finally free of all those daily client meetings.
That bug you introduced? Now is the time to set action points for the team to improve. Missing automated tests? Write them. Is your website not accessible? Improve it. There is a weak link in your process? Strengthen it.
At one point, you were at a crossroads. Overwhelmed by the unexpected changes, you can back off and return to the old way of working that you’re used to. Or you can see that these “regressions” were exactly what was needed in your career. You can learn. You can grow. You can become a better engineer. I know I did.