My 4-year journey from bootcamp attendee to senior software engineer

Written by lilychendances | Published 2019/02/15
Tech Story Tags: startup | startup-lessons | women-in-tech | software-development | hackernoon-top-story

TLDRvia the TL;DR App

A retrospective on lessons learned

I recently got promoted to senior software engineer at Apollo.io. However, a title is just a title. How have I actually grown?

I left my pre-med path at the start of 2015, and I started my first job in tech soon after. Like so many others, I have often questioned my place in this industry.

Am I learning fast enough? Am I growing in my career? Will I get replaced by someone fresh out of college?

These thoughts creep up every once in awhile, and a few weeks ago, I thought to myself I hadn’t grown much in the last year or so. I felt uneasy until I talked to a colleague about my experience in this industry thus far.

“Tell me about each of the places you have worked at. Why did you join? Why did you leave?”

Our conversation revolved around this topic.

After talking to her, I realized I have indeed grown a lot in my career over the last year, and in the 4 years since I walked into the tech industry. My journey from junior to senior engineer isn’t just empty title inflation. There were insights and learning only good experience could have provided.

My first job was at Lumosity. I joined the marketing team as a front-end developer. I had no criteria back then. No knowledge of what I wanted, what I didn’t want. I joined because it was my first offer out of the bootcamp and I just wanted to start making money. The first three months of my job were almost entirely static html pages the marketing team needed.

Luckily for me, the company went through a reorganization. Marketing combined with growth and I joined the engineering team as a result.

There, I had more resources and access to projects outside the scope of marketing emails and webpages.

More-or-less, I felt I was taken under the wings of extremely smart people at the company. With a lot of mentorship and pairing sessions, I quickly learned coding best practices like modularity, separation of concerns, and writing good tests.

After gaining some real world software development experience, I felt ready to move on. While I had a great time at Lumosity, working with amazing people, I no longer wanted to be hand-held. I knew it would be awhile before I could take on huge project initiatives were I to stay. I needed to join a small team where I could make my own mistakes and learn from them.

Sometimes, the fastest way to learn how to swim is to go out there on your own. I felt ready to sink or swim.

My next job was at a 30 person startup called Pillow. Immediately, I took on a huge project working with the Airbnb api. In just over a year at Pillow, I grew a lot as an individual contributor. I took on multiple initiatives, architecting and building features from the ground up. Examples include setting up the integration test framework for Pillow’s React app, building and setting up the very first A/B test, and a month-long project related to onboarding.

After a year or so, features themselves no longer scared me. I felt I could take on whatever project thrown my way. As my mind was getting less distracted by imposter syndrome, I started to pay more attention to the product development process itself. This turned out to be a turning point in my personal and professional growth.

I noticed that the life expectancy of the features the team built was quite low. I’ve seen large projects getting scraped and replaced by other large projects after a very short period of time. I’ve seen features never getting adopted, or worse, never hitting production.

That’s when I realized, up until then, I was solely focused on carrying out the what — what I was building. I didn’t know the importance of being problem-oriented and the importance of asking “why?”

Why is this feature necessary?

What exactly are we trying to solve?

Does this feature actually solve the problem? Is there a better solution?

Pillow had an assembly line product development process. By the time engineers hear about new projects, everything has been scoped out and designed already. Engineering alignment was never part of the process and nor did I have enough experience to question product requirements.

Assembly line product development process. From here

I brought up this problem several times, but in the end, I felt it was time to move on. For my next company, I wanted to find a culture of curiosity and a problem-oriented EPD (engineering, product, and design) team.

I believe a natural step in the career progression from junior to senior engineer is a shift from being a task executioner (focusing on the “what”) to a problem solver (understanding the “why”).

I wanted to find a culture where engineers are encouraged and empowered to be problem solvers.

I joined Apollo on the premise that it has a culture that values fast iteration and collaboration amongst product, engineering, and design.

I thought the company had the process I was looking for.

However, I quickly learned that no start up has great process. Most start ups are figuring things out. Apollo had a fairly bad process when I joined. In fact, in my early days of Apollo, my experience was more or less similar to that at Pillow. I was a task executioner, and Tim (our CEO) was the task creator.

However, things got tremendously better over time because we have leaders who are open to feedback and improvement. Having a good process is not as important as working with people who listen and who are receptive to positive changes.

Now, Apollo has a product development loop.

https://hackernoon.com/killing-the-product-development-assembly-line-2176bde2a4d9

In this ecosystem, engineering, product, and design all work together to shape the end state of new features and workflows.

I wouldn’t say Apollo’s process is perfect. It’s been a continuous work in progress. However, that’s okay, because process is a means to an end, not the end itself. What matters is working with people who care about working together to drive positive outcome.

It makes a world of difference to work with people who are receptive to feedback and improvements.

So what’s next in my career journey?

I’ve grown a lot as an IC over the last couple years by taking on and architecting complex systems. But for the majority of the projects I worked on, I did so solo. Thus, what’s missing from my professional experience now is being a tech lead. I’m looking forward to opportunities of taking on big challenges and leading a team of engineers to tackle them together.

Learning and growth happen at a macroscopic scale. It’s hard to measure them in day-to-day life. The same can be said about getting in shape or acquiring a new skill. You won’t see a big difference in one day, one week, or even one month. You have to keep doing it over a very long period of time.

I look forward to the experiences I shall gain and the contributions I shall make as a senior software engineer at Apollo.io.


Published by HackerNoon on 2019/02/15