How I Broke Into Data Science
Software Engineer at Facebook. Lives in San Francisco. Born and raised in Toronto.
A software engineer’s journey into data science at Yelp and Uber
I never intended to transition into DS; neither did I have the traditional background or education to do so. Luckily, my engineering background taught me how to program and think critically, but more importantly how to learn and persevere. I learned almost everything on my own through reading papers and working on side projects. I also couldn’t have done this without my mentors and their honest and constructive feedback.
After a couple years of studying software engineering (SE), I joined Yelp as an SE intern, working on DS-related projects. Around a year later, I joined Uber as a DS intern and shortly graduated after that. This is my story of how I transitioned into DS, why I decided to switch back into SE, and what I’ve learned over this six year period.
Shortly after starting SE, I started hearing about machine learning (ML). My interest in ML would drive me to start learning about it in my free time, albeit at a surface level. In parallel, I continued to learn how to become a better software engineer, mostly through internships.
In the fall of 2015, I landed an SE internship at Yelp. I joined the traffic quality team, which had a broad goal of identifying and preventing fraud and abuse. I was lucky to have gotten to work on DS-related projects, even though I was hired as an SE intern.
After successfully completing these projects and doing another SE internship at Snap in the summer of 2016, I decided it was finally time to pursue something new. I thought it could be something in ML and not DS.
In the fall of 2016, I was considering only SE and ML internships. After attending the Uber DS information session, I realized it could be a great opportunity because of the interesting projects data scientists worked on and how talented the people seemed. I decided to apply. It would end up being the only DS position I ever applied for.
I still wasn’t that invested in the Uber DS internship for several reasons. I was focused on landing SE and ML internships; I didn’t have time to interview prep for DS interviews. I knew this DS internship was highly sought-after; there was only one position, but hundreds of applicants (this was visible on our university’s job application board). I was competing with many competent and passionate peers with a formal DS background. Although, one advantage of not being too invested was that during the interview process it gave me a lot of peace of mind; usually I would become anxious just thinking about interviews.
Shortly after applying to Uber, I was given the DS challenge. It involved writing SQL, designing an experiment, and conducting an exploratory analysis — all of which were related to Uber. This made it novel and interesting; I actually learned a few things while doing this challenge. After submitting my solutions, the recruiter reached out to schedule a one hour interview, which I felt went okay. After a few weeks, the recruiter told me I was their first pick for the internship — I was surprised and ecstatic!
I realized my experiences finally paid off — from the various SE internships, ML side projects, and DS work at Yelp. I’d say these experiences more than made up for my lack of a traditional DS background; they were what made my DS background unique.
At this point, I had to decide between an SE or DS internship. I saw DS as a way to grow my skills in a way that differentiated me from other software engineers, like learning more about analyses, the latest research, ML and statistics. I saw DS as an opportunity to learn a broader field than I originally intended. With everything I’ve learned over the past couple years, I suddenly realized I was well positioned to succeed at Uber. For these reasons, I decided to accept the Uber DS internship offer for the winter of 2017.
In the fall of 2017, I had my last internship which was an SE internship at WhatsApp. In 2018, I was graduating and the first question I had to answer was: should I go into DS or SE?
In the end, I decided to go with SE at WhatsApp. SE satisfied my desire to build things that impacted people. This feeling was rekindled during my internship at WhatsApp because of the ability to ship products that instantly impacted billions of users. I didn’t get that feeling as a data scientist because of the extra indirection to the end-user; but you do greatly influence the product through analyses and insights. I observed that the ratio of engineers to data scientists was usually several to one. SE was still a high in-demand field — with more positions, I thought it would provide more career stability.
I felt I was more strongly positioned in SE, compared to DS, because of my background and experience. There are many backgrounds that are well-suited for DS, which made it competitive in its own way. I saw that the best data scientists working on the most interesting problems typically had a PhD in physics, economics or operational research. If I wanted to achieve what they’ve achieved, I’d have to work really hard; I wasn’t sure if I was passionate enough about DS to do that. I didn’t see this as giving up on DS, but capitalizing on SE and my strengths.
It’s been two years since I decided to go into SE: I can say with confidence that it was the right decision. More importantly, I don’t regret the time I invested in DS, it was still a great experience and I’d do it all again in a heartbeat. If I could sum up my journey into a few takeaways, this is what I would say.
Learn how to learn
Find mentors and embrace feedback
Taking risks is easier when you’re stable
Stability could mean being stable career-wise, financially, emotionally and/or physically. I was comfortable in engineering and where I was in life; this gave me the space to explore, experiment and fail in DS and ML. Stability relieves you from the stress and pressure to hastily succeed on your first attempt. Make sure you’re happy and established, it will make it easier to try something new if you have a safety net.
I tried out many things without much direction. Once the Uber DS opportunity arose, I realized I was well positioned to take the opportunity. Keep your options open and be patient, something great might be just around the corner.
Fake it until you make it
Everybody has to start somewhere. It’s challenging because most of the time you’re expected to know how to do the job, even before you’ve been hired. This can be overcome by teaching yourself enough to get the job, then learn everything else on the job — just like what I did at Yelp and Uber. Learning on the job is usually higher quality because you get to solve real problems, have access to company resources, and collaborate with and learn from colleagues. After enough time and perseverance, you’ll eventually become the real deal and no longer need to fake it.
I hope my journey shows that, with a bit of hard work and serendipity, you can set yourself up to take advantage of those unexpected opportunities. Best of luck on everything you want to accomplish, and I hope this has helped!