How I Became a Machine Learning Engineer Without an Advanced Degree
My path from knowing nothing about software engineering and machine learning to becoming an MLE at Google in 6 years without a master's degree or PhD
This one is a little shorter this week as I’ve got another project I’m currently working on. This is my path to becoming an MLE at Google. I hope this can be helpful for any prospective MLEs!
You can also find my work experience on my LinkedIn. Make sure to include a note if you connect with me. I get bombarded with a lot of random connection requests.
Always be (machine) learning,
Logan
The number 1 question I get from new grads and college students is: "How can I work in ML at a company like Google?"
From the moment I began my undergrad to the moment I became a machine learning engineer at Google, it took me 6 years. I knew virtually nothing about computer science and machine learning when I started college (I had taken an Intro to Computer Science course in high school, but it didn’t teach too much).
Throughout those six years, I planned every course I took and every work opportunity I had to position myself for the career I wanted. Unfortunately, hard work isn’t always enough so I also had a lot of luck to get to where I am today, but I positioned myself well to capitalize on the opportunities luck threw in my path.
With this luck, I was able to land an MLE job without doing a PhD or a Master’s Degree. I was able to get the experience I needed entirely through my undergrad and some work experience.
As time goes on, fewer companies are requiring a PhD for MLEs (this trend is good and will continue), but you will still need the machine learning experience necessary for the role. In the past, a PhD was the best way to do this. Now, there are other methods.
Below are the steps on my journey to become an MLE. I hope it can help you understand more about me and what is required to become an MLE if that’s your goal.
College
I always recommend college for anyone wanting to become a software engineer. It’s without a doubt the best way to learn computer science, gain a network, and get the baseline qualifications needed to get your foot in the door with companies.
I chose to study computer engineering in college because I had no idea what I wanted to do—I just knew I liked computers and I liked math. The degree ended up being a great fit and I was able to learn the subjects I needed to open doors to the opportunities I wanted.
I did my best to get the most from my college experience. I met people and gained a network that has helped me find employment opportunities, I took advantage of university events to meet representatives from companies, and I took machine learning electives to learn the subjects I was interested in.
I also chose a college that wouldn’t break the bank but still had good engineering programs and I studied hard to get good grades. That being said: most of the value you’ll get from college that will differentiate you from other students won’t be from the classroom. It’ll be from the extra opportunities you have outside the classroom like the examples I listed above.
Most people shy away from college because they don’t want to spend the time the time and money required. With regard to the first, computer science is incredibly complex and best learned over time. Regarding the second, if you pick the right school you don’t have to worry about repaying ridiculous student loans.
My college experience set me up for success because I made the most of it. It also provided me the necessary experience to get my first research gig.
Research
Studying computer engineering opened up doors for research in computer science, electrical engineering, and computer engineering. So I studied the research of each professor in those departments to understand what they were working on before I reached out about potential research assistant opportunities.
Luckily, I landed a job researching machine learning applied to magnetic resonance imaging (MRI). This was my favorite of the research opportunities available and was exactly the experience I was looking for. This was my first real start in machine learning and ended up being my first real experience that qualified me for the job I have today.
I also lucked out with a great research advisor. I’ve heard many horror stories of research assistants being forgotten and receiving zero guidance. This was not my experience.
My advisor and the grad students in his lab were very helpful in getting me up to speed and helping me advance my research goals. So much so that I had two separate abstracts accepted to the largest international MRI conference and was given opportunities to collaborate with researchers at both Stanford and Imperial College London.
More Research
That research experience helped me obtain a research internship during one summer of my undergrad at the Los Alamos National Lab (LANL). This internship was a computational physics internship and wasn’t topically related to my other research and career goals, but it was a big name on my resume and time well spent.
I credit the Los Alamos internship with helping me round out my research background and propelling me into the next opportunity that popped up.
Fun fact: My first set of twins were born while I was interning at LANL.
Microsoft Internship
While I was interning at LANL, a recruiter from Microsoft reached out to me asking if I wanted to interview for a software engineering internship at Microsoft for the next summer. At this point, I hadn’t thought about working as a software engineer. All my experience was in research and my plan was to continue with it.
I decided it couldn’t hurt to interview. I remember the first stage of this interview process vividly because it was a phone call that I took in the hospital room a few days after my daughters were born. I remember being really tired and a bit high on adrenaline after having my first kids.
I was fortunate enough to pass this phone screen. I traveled to Redmond early in the next semester to interview on-site and passed those interviews as well. I was offered an internship position at Microsoft for the following summer.
After that year of school, we packed up our things and our two kids and moved to Redmond for the summer. I worked in cybersecurity as a software engineer and had my first foray into production software engineering.
It was eye-opening. I was excellent at coding (for a college student) and had written a lot of code for various school-related and non school-related projects, but coding in industry was a different beast. I learned a lot that summer and credit it for getting me interested in software engineering.
A little anecdote: I remember bringing my first paycheck home during the internship (interns had to pick up a physical copy of their first paystub) and opening the envelope in disbelief. I showed it to my wife and she was equally shocked. As you can imagine, it’s tough taking care of twins on the income of a part-time research assistant and scholarship money especially when you’re anticipating your spouse doing a PhD.
She told me: “If you really enjoy what you’re doing this summer, you can keep doing it after you graduate.”
And that’s what I did.
Switch to AI
I received a return offer but I knew I wanted to work in machine learning. I reached out to the recruiter that had been helping me during my internship to see what she could do.
She shopped my resume around to teams at Microsoft and the AI Platform team picked it up. I went through another set of interviews and got an offer from the AI Platform team. I accepted and we ended up back in the Seattle area after graduation (this time Bellevue instead of Redmond).
I was incredibly fortunate to be placed on an absolutely stellar team. My managers were great (plural here because I switched managers at one point), my teammates were excellent, and the work was interesting.
This was my first experience with machine learning infrastructure which is the blend of machine learning and software engineering I had been looking for.
Switch to Google
After 2 years at Microsoft, I had a Google recruiter reach out to me. I had always been interested in working at Google because of the opportunities available in machine learning but at the time I was in a good place at Microsoft and wasn’t looking to go anywhere.
I chatted with the Google recruiter and decided to go ahead with the interviews because I figured it couldn’t hurt. I passed and was offered a job at Google.
I still wasn’t set on switching to Google at this point. I had already made the decision to forgo optimizing for income early in my career to ensure I worked on projects I enjoy. This meant I needed to land on a machine learning team at Google to make it worth the switch.
Luck was on my side again and I team matched with a machine learning infrastructure team at Google in a very niche application unavailable at Microsoft (as far as I could tell). I decided to take it.
And that’s where I am now. I work on continuous machine learning infrastructure for ads at Google. I’ve got opportunities to get involved on both the engineering and modeling sides. I’ve also lucked out again with great coworkers and supportive management.
The moral of my story is I took things step-by-step and had a plan to get to where I wanted to be. I then worked hard to ensure I was able to capitalize on opportunities when they came up.
If you have any questions or you’re interested in working at Google. Reach out to me! My DMs are always open.
This is better than any LinkedIn post or YT video. Very in-depth , honest and informative
Thanks Logan!
Logan, my dream job is as a ML Engineer for Google in Boulder. Only I'm coming at the problem from a different direction - I'm trying to pull off a pivot from program management in the federal government. I do have a relevant academic background (a MSCIS and a MS in Comp Sci), so I'm not coming from too far behind. I'm also sitting for the GCP ML cert exam on May 9th. Aside from that, have an arc of related projects planned for my portfolio. Can you think of anything else that I can productively do to increase my chances of getting an interview?