Becoming a Software Engineer

Tiffany Qi
Jul 10 · 3 min read

Note: I wrote this as soon as I became a software engineer in April 2018, and it sat it the backlog for a while. I figured I would release it with the release of “An engineer’s year worth of progress” as further context to my story.

After a long journey, I can finally call myself a Software Engineer. It’s surreal. I never imagined that I would go towards this path and I know many of my childhood friends and acquaintances would be surprised at the switch. I know I would be.

When I entered UC Berkeley in 2012, my goal was to do some sort of business thing as recommended to me by my mother. “It’s a safe path, there’s a lot of opportunities”, she said. Time and time again in college, there were many ways I tried to convince myself I’d like it: “marketing is kind of artsy”, or “recruiting is building a culture”, or “consulting is helping people”. Each time I’d try, fail, realize I didn’t like it, try the next thing, and repeat.

I took a part time job as an external technical recruiter in the summer of 2014, and thought it might be nice to take the introduction to computer science class at the same time. I knew that it was going to be hard, but I didn’t realize how much it would consume my life that summer. However, unlike the business community, everyone in computer science encouraged me that failure is okay: that it happens to everyone. And so I pressed on.

From there, I embarked in a variety of interests that were loosely related to computer science: creating a CS teaching organization (CSM), a mentorship internship at Autodesk, and an attempt at product management at Berkeley’s Student Information Systems project. In each role, I somehow floated back to building something, even though it wasn’t what I signed up to do. I craved it.

I thought I wanted to be a product manager because I could mix my business major with my computer science classes. I went to Mixpanel as a Support Engineer along the same lines, hoping I could one day transfer to become a PM either at Mixpanel or elsewhere. However, when I actually studied what product managers did and looked at my past, all I wanted to do was build things. I built web apps, static websites, schedulers, mined data: filled holes where I saw gaps in every company that I went to. I loved that I could learn something, make it work, and immediately provide value. Product management is more about doing the research and proving that something needed to be built, but you don’t actually go and build it. After this realization, in 2017 I decided to put the pursuit of a product manager on hold(and thus, my business major) and continue to build apps in the hopes that it would lead to software engineering.

Days of staying in the office late and many side projects later, it paid off. I was the first person to embark on the Support to Engineering path, where I would spend 3 months building Support projects (the pre-path) and 3 months working with an Engineering team to build out full features on 50% Support and 50% Engineering time. For 3 months, I stayed in the office late some more, asked a lot of people questions, felt doubt when things got hard and adrenaline when things were working, and then I got the okay. I was going to be a Software Engineer full time.

I’ve moved to my new desk recently and left the world of support. Of course I’ll still stay in contact with my support friends, and I’ve made sure to not forget those who have helped and supported me throughout this four year journey. It definitely won’t be smooth sailing from here: I’m the least experienced engineer at Mixpanel. It means that there’s an even longer journey of learning, soul searching, and living with imposter syndrome, but I’m determined to make the best of it and learn as much as I can.

One year later, I’m still going strong and I’ve tracked my progress along the way. Check out my engineering journey through numbers.

Tiffany Qi

Written by

Engineer @ mixpanel, quantified self enthusiast, UC Berkeley graduate. Soul seeker, still figuring things out.