Name: Towards AI Legal Name: Towards AI, Inc. Description: Towards AI is the world's leading artificial intelligence (AI) and technology publication. Read by thought-leaders and decision-makers around the world. Phone Number: +1-650-246-9381 Email: [email protected]
228 Park Avenue South New York, NY 10003 United States
Website: Publisher: https://towardsai.net/#publisher Diversity Policy: https://towardsai.net/about Ethics Policy: https://towardsai.net/about Masthead: https://towardsai.net/about
Name: Towards AI Legal Name: Towards AI, Inc. Description: Towards AI is the world's leading artificial intelligence (AI) and technology publication. Founders: Roberto Iriondo, , Job Title: Co-founder and Advisor Works for: Towards AI, Inc. Follow Roberto: X, LinkedIn, GitHub, Google Scholar, Towards AI Profile, Medium, ML@CMU, FreeCodeCamp, Crunchbase, Bloomberg, Roberto Iriondo, Generative AI Lab, Generative AI Lab Denis Piffaretti, Job Title: Co-founder Works for: Towards AI, Inc. Louie Peters, Job Title: Co-founder Works for: Towards AI, Inc. Louis-François Bouchard, Job Title: Co-founder Works for: Towards AI, Inc. Cover:
Towards AI Cover
Logo:
Towards AI Logo
Areas Served: Worldwide Alternate Name: Towards AI, Inc. Alternate Name: Towards AI Co. Alternate Name: towards ai Alternate Name: towardsai Alternate Name: towards.ai Alternate Name: tai Alternate Name: toward ai Alternate Name: toward.ai Alternate Name: Towards AI, Inc. Alternate Name: towardsai.net Alternate Name: pub.towardsai.net
5 stars – based on 497 reviews

Frequently Used, Contextual References

TODO: Remember to copy unique IDs whenever it needs used. i.e., URL: 304b2e42315e

Resources

Unlock the full potential of AI with Building LLMs for Productionβ€”our 470+ page guide to mastering LLMs with practical projects and expert insights!

Publication

How He Went From Business Analyst to ML Engineer at Google
Data Science   Latest   Machine Learning

How He Went From Business Analyst to ML Engineer at Google

Last Updated on June 4, 2024 by Editorial Team

Author(s): Boris Meinardus

Originally published on Towards AI.

Can I transition from a non-technical role such as a business analyst to an ML engineering role without a Computer Science undergraduate degree?

The answer is, yes. But only if you know how!

For this blog post, I interviewed Max Buckley, a senior ML engineer at Google, and asked him how he did it.

Max joined Google as a business analyst with a business undergraduate degree over ten years ago and has served on various teams until he later managed to transition to a software engineering role. For the past two years, he finally got to work as an β€œML engineer” (MLE) on both classical ML systems and more recently on applications involving large language models (LLMs). The quotation marks here are because MLEs are formally titled Software Engineers (SWE). There is no official role called β€œML Engineer”!

Max is amazing and loves to help others by actively sharing his experiences and relevant resources for learning ML. So, if you want to learn more about and from him, I highly recommend following him on LinkedIn and checking out his Medium! (He’s cooking up some cool posts!)

So, let’s get started!

Here are 7 questions and his answers on how he managed to go from being a business analyst to an ML engineer at Google!

Enjoy!

Disclaimer: The views and opinions expressed in this interview are solely Max’s own and no not reflect the official policy or position of Google or any of its affiliates.

How did you discover ML?

Odd to think of it now, but way back in 2013, the term β€˜machine learning’ (ML) was not super widely recognized outside academic circles.

I first encountered ML and its associated terminology early that year while taking a Coursera course titled β€˜Data Analysis.’ At that time, terms like β€˜analytics,’ β€˜big data,’ and β€˜data mining’ were far more prevalent and popular.

On a high level, what did you go through to get to where you are now?

During my undergraduate business degree, MOOCs (Massively Online Open Courseware) were established, Coursera foremost among them.

I used MOOCs to explore potential future study and career directions. Initially, I explored finance, but I quickly shifted my focus to statistics and eventually converged to data science, where I have since remained.

Through this sequence of events, I began to learn data science, statistics, and R programming. Interestingly this mix of skills drew the eye of recruiters at Google and I managed to secure a business associate internship for the summer of 2013.

By mid-2013, I was pretty confident about the career direction I wanted to pursue: I wanted to become a data scientist.

I began actively searching for information online, examining job listings, and exploring various data science websites to understand the necessary skills and expertise required for the role.

Note to readers: This is back before the term β€œdata scientist” had split into the range of jobs we see today that I (Boris) tried to describe in my recent article and video.

From http://drewconway.com/zia/2013/3/26/the-data-science-venn-diagram

Early in my own career research, I came across the data science Venn diagram (above), and I embedded it in my own personal career goals document where I also listed the things I needed to learn to achieve my goal of becoming a data scientist.

From my research at the time, the biggest skill gaps I knew I had to fill to work as a data scientist was to acquire:

  1. A quantitative postgraduate degree
  2. Solid programming skills

The β€˜quantitative postgraduate degree’ requires three steps: get accepted, enroll, and complete the degree.

Turns out that even getting admitted for a β€˜quantitative postgraduate degree’ is a problem when you don’t have a β€˜quantitative undergraduate degree’ β€” as I didn’t.

Despite my professional experience and self-directed learning in the relevant fields, I was rejected from the master’s program I initially applied for. This setback led me to spend an additional year in another program to enhance my academic credentials.

The criteria for β€˜solid programming skills’ were less clearly defined, which led me to set my own benchmarks.
I decided that becoming a software engineer would not only serve as a good measure of my programming abilities but also provide an avenue to further develop said skills.

My self-directed road to becoming a software engineer involved reading a lot of books and taking many MOOCs. I also spent a lot of my free time building applications to further develop my skills and expertise.

To further accelerate my progress towards this software engineering goal, I actively sought out relevant opportunities at work β€” seeking out coding projects and sequentially joining teams that more closely aligned with my personal developmental goals. A pivotal element in my personal growth was the guidance I received from several excellent mentors, who significantly deepened my understanding of programming and software engineering.

During my first eight years at Google (2013 to 2021), I was not majorly involved in ML projects.

In earlier years, I was part of several analyst teams (2013 to 2016) where I honed my SQL and R/Python skills for data analysis.

Subsequently, I transitioned to various engineering teams (2016 to 2021), focusing on automation, tooling, and infrastructure to enhance my software engineering capabilities. Throughout this period, I actively pursued self-directed learning in ML, engaging in MOOCs, part-time studies, and attending conferences among other activities, to continually advance my expertise in this rapidly evolving field.

What were the most significant theoretical and practical challenges you encountered while learning ML and how did you overcome them?

Being primarily self-directed in my educational approach, one of the major challenges I’ve encountered is developing a well-structured syllabus.

Occasionally, I would pick up a new book or start a new Coursera course only to flunk out early due to gaps in my skills or background knowledge.

Unlike when pursuing a structured degree program, which typically progresses from beginner to advanced levels and presents problems appropriate to the student’s current abilities, a self-directed path lacks this guided escalation. This often led me to encounter materials and challenges that were prematurely complex.

In the early stages of my learning adventure, I frequently engaged with topics that were far beyond my current level, resulting in numerous missteps and dead ends. Over time, I learned to better gauge the sequencing of content, which significantly smoothed my learning process.

What were the most important skills you learned to get to where you are today?

Not sure exactly what kind of answer would be expected here, but I think the answer I would give is meta-skills.

I don’t think learning a given programming language or ML framework is nearly as important as β€˜learning how to learn’. Learning how to approach a new topic or area and start exploring, finding interesting leads, dead ends, and slowly creating order from the chaos. If you can do that and have done that in the past, you can probably do it again in the future.

In terms of what’s important, it’s crucial to remain curious, embrace the possibility of failure, and avoid being overly critical of yourself. Striving for perfection or expecting things to be easy can hinder progress.

Above all, persistence is the key to mastering new skills.

What were the most important resources you used to learn ML?

Coursera

Coursera was my biggest resource in the early years. I discovered ML through Coursera and learned a lot of the fundamentals there. Some of the Coursera courses I have done are no longer relevant, they have been replaced or removed but some shout-outs would be:

The Johns Hopkins Data Science series, taught by Roger Peng and Jeff Leak first introduced me to R programming and ML.

Andrew Ng deserves special credit for founding the platform and his original ML MOOC, and later specialization on deep learning.

Geoffrey Hinton’s Neural Networks course was a particular gem, though it’s now relegated to YouTube, it’s still very much worth checking out.

Kaggle

Kaggle was an extremely valuable resource, though in hindsight, I don’t think I made quite enough use of it. I wish I had done more competitions and spent more time on the forums, absorbing all the wisdom shared there.

Books

Books provided a lot of additional context. Again, some of these will have aged and may no longer be relevant, but there were several very accessible O’Reilly books that I learned a lot from.

The first edition of Hands-On Machine Learning with Scikit-Learn & TensorFlow back in 2017 was super useful in that it summarized many of the important neural network techniques at the time.

Wes McKinney’s (the creator of Pandas) book on Pandas was similarly very helpful for me in moving from R to Python and Pandas.

In more recent years I have read a few books about Kaggle competitions which contained a lot of practical techniques for improving ML systems (The Kaggle Book is excellent).

Formal studies

In parallel to my online and self-directed learning, I was also taking formal part-time university courses. I did a postgrad in statistics which gave me a year to work on experimental design and regression models. Later I did an MSc in Business Analytics which allowed me to take a range of relevant classes and for my thesis, I got to use neural networks with natural language processing which taught me a lot.

Friends

Having friends on the same learning journey also helps. I was fortunate to make two friends early on who were also very enthusiastic about ML: Ivan SlijepčeviΔ‡ and Francisco Passos. Along with myself, we formed a small group of ML enthusiasts who shared resources through WhatsApp, took Coursera courses together, critiqued each other’s ideas and projects, and collaborated on Kaggle competitions and research papers. They were an incredible resource, and I am very lucky to have them both to learn from.

Experimentation

Learning by doing is one of the best techniques.

Implementing things I read about, messing with them, and seeing what happens really helps.

I think a lot of ML intuition can be developed by trying things, standing up a Colab, and implementing a model you are curious about, and seeing how it changes as you modify it. I remember getting a lot of intuition about autoencoders and model ensembling by playing with Colabs.

How was the MLE interview and what did it involve?

As I mentioned earlier, the typical path to become what you would refer to as a Machine Learning Engineer at Google starts with becoming a Software Engineer. This SWE route involves learning fundamental computer science and navigating the well-known β€˜data structures and algorithms’ interviews.

In these interviews, the candidate is presented with a problem and is given 45 minutes to extract the core problem, identify the appropriate data structure or algorithm, and then implement a solution. Historically, this implementation was performed on a whiteboard. However, in recent years, the process has shifted to a shared coding environment, where candidates write code in their preferred programming language.

These interviews are challenging, particularly if you are not accustomed to them. Each time I’ve faced these interviews, I’ve dedicated significant time to preparation, and I would still allocate a few weeks to revise if I were to undergo the process again in the future.

However, there is a structure to these assessments, and consistent practice can lead to mastery. If you commit the necessary time and effort to understand and practice the required skills, you will see improvement. Engaging regularly with practice problems, leveraging online platforms that simulate interview scenarios, and reviewing key concepts in data structures and algorithms are all successful strategies.

How did you prepare for the interview?

I spent several months revising the algorithm and data structure basics through MOOCs and reading the books I listed here. I also did several mock interviews with friends as well as many, many Leetcodes.

For others who wish to prep for these β€œdata structure and algorithm” type interviews, I am a big fan of Robert Sedgewick’s book and MOOCs:

I find Sedgewick’s book more accessible than the more famous Cormen et. al, though it covers a narrower range of algorithms. It is more accessible to beginners. Has less of a focus on math and more on programming and visual explanations.

It is also a very good idea to pick up at least one book specific to the question and answer formats like Gayle Laakmann McDowell’s excellent β€œCracking the Coding Interview” and of course, practice on Leetcode.

In addition to the above resources I would highly recommend practicing with the actual format, i.e. have a friend ask you a question and have you go through the whole process together. Your friend does not need to be a deep expert in data structures and algorithms, provided they can program and have some understanding of data structures and algorithms you can bootstrap each other.

Not so much related to the interview specifically but some other books that helped shape my understanding of the field and craft of software engineering are:

  • The Mythical Man Month: by Frederick Brooks
  • The Pragmatic Programmer: by David Thomas and Andrew Hunt
  • Programming Pearls: by Jon Bentley
  • Code: by Charles Petzold
  • Design Patterns: by Erich Gamma (a.k.a. Gang of Four)

If you had to pick one thing, what made you stand out so that you got invited to the interview?

Depends on the interview we are talking about:

My internship back in 2013:
I think it was the fact that even though I was a business student and applying for the business internship, I had a very strong suite of self-taught technical skills. I also had a previous internship in another company which is very helpful.

Transferring to engineering and moving to different engineering teams in 2016 and again in 2018:
This was enabled by my body of historic work, but still required me to do the famous β€œdata structures and algorithms” interviews explained above.

Transferring to my first ML team in 2022:
Again I think it was the combination of my years of software engineering experience coupled with all my different ML side projects, multiple MSc thesis’, many MOOCs, statistical work, etc.

I (Boris) asked Max many more questions about what he does as an MLE at Google and how life as such is. But those are for the next post, so stay on the lookout for that one and if you don’t want to miss it, feel free to follow me and, of course, give Max a follow as well if you want to learn more from him πŸ™‚

Thanks for reading. Ba-bye! 👋

Join thousands of data leaders on the AI newsletter. Join over 80,000 subscribers and keep up to date with the latest developments in AI. From research to projects and ideas. If you are building an AI startup, an AI-related product, or a service, we invite you to consider becoming aΒ sponsor.

Published via Towards AI

Feedback ↓