Shannon Johlic (SJ): I noticed that your answer came in about a year after this question was asked. What prompted you to add your $0.02?
Cory Hicks (CH): Basically, my background in working for companies that create personalization products at scale led me to take a different approach for my recommendation. I wanted to give someone the advice that they would need to become a key member of the types of teams I run. That requires you to not only be a star ML engineer but also a star engineer in general.
SJ: Why do you draw the distinction between the two? What’s the value for a budding engineer?
CH: Well, there are lots of folks in the market that are great engineers and there are also lots of folks who are great at machine learning, but there is a severe shortage of great Machine Learning Engineers.
Engineers who are great in both fields are basically unicorns and are at least 10x as valuable as someone who is great in just one of the fields. These are the engineers who don’t just work on algorithms or systems all day but instead launch personalization products in the market. These are the types of engineers who are behind the personalization teams at companies such as Amazon, Netflix, LinkedIn and many successful personalization startups
SJ: So, what do you do if you want to become one of these unicorns who are Machine Learning Engineers? Where does one start?
CH: In no particular order, here is my advice:
(2) Learn how to build highly-scaled distributed systems. Build systems that have a 50ms SLA and take hundreds or thousands of transactions per second. Ideally, systems that are critical for a business to run. Real-time event ingestion and recommendations systems are ideal.
(3) Build your machine learning fundamentals by studying some material on the subject:
- Andrew Ng’s Machine Learning lectures are a great start: https://www.youtube.com/playlist?list=PLA89DCFA6ADACE599
- Stanford’s Data Mining and Applications Certificate: http://scpd.stanford.edu/public/category/courseCategoryCertificateProfile.do?method=load&certificateId=1209602
- Machine Learning Summer School: https://www.youtube.com/playlist?list=PLZSO_6-bSqHQCIYxE3ycGLXHMjK3XV7Iz
(4) Play with some big datasets that are publicly available. Find a dataset that you find personally interesting or that you have theories about and see if you are correct!
- US Government Data http://www.data.gov/
- SF City Data http://datasf.org/ (I personally find local data easy to identify with)
- Reddit/r/DataSets https://www.reddit.com/r/datasets
(5) Take a role with a product-focused machine learning or personalization team. The team you search for should be filled with engineers whom you think you can both teach and learn from. This will make you a much better machine-learning engineer. Also, by working on a product team you will quickly learn how the science and theory of machine learning differ from the practice. In particular, how customer behavior will teach you something new every single day.
- Look beyond JUST being good at Machine Learning and become a Machine Learning Engineer. (They are in short supply)
- Learn the Fundamentals for a solid foundation and apply, apply, apply your skills.
- Work somewhere that has a strong focus on machine learning and personalization.
That concludes the interview portion. I have often been reminded through Cory’s advice that he is not simply a theorist – he is a practitioner. He’s “been there, done that” in the world of machine learning, and under his guidance, Boomtrain has developed industry leading technology with some of the smartest people I have met in the Bay Area. With evolving development/engineering roles comes the need for a new breed of talent that brings a more holistic approach to the table.
Are you already knee deep in Machine Learning? Are you an Engineering superstar? Join the Boomtrain team where your actions directly impact our daily success! Learn more about our open positions here.