After a decade in the wireless communications industry, Cherif was ready for a change. As he gained expertise at Palm and Apple, he kept a close eye on the rise of deep learning. A rigorous learning plan, including several online courses, textbooks, and meetups, helped him bulk up his skills and ultimately land a Machine Learning Engineer role at Postmates. Read on for the challenges Cherif faced, his interview tips and suggested resources, and his experience leveraging his earlier jobs to apply ML in a real-world setting.
How did you get started in AI?
After getting my master’s in Electrical Engineering from Cornell University, I worked in the wireless industry for 11 years, first at Palm then at Apple before deciding to join Postmates in 2018. During those years, my work evolved from a focus on cellular protocols to software integration and finally to machine learning engineer.
I’ve been interested in endowing machines with artificial intelligence since 2011, when there was an explosion of deep learning capabilities and democratizing ML algorithms. I was fascinated by Jeff Hawkins’s account in his book On Intelligence and his efforts building neurologically inspired algorithms at Numenta. I became convinced of the potential of these new technologies, which sparked my imagination and encouraged me to pursue this topic professionally.
Over the next couple of years, I started learning ML and big data concepts and applying them at Apple. I took classes from the Stanford SCPD program in software systems and machine learning, including Andrew Ng’s CS229 Machine Learning class, and I persuaded the Wireless team leadership to allow me to explore and develop the use of ML within our group. This helped develop my intuition about what worked and didn’t work in practice.
Around 2016, I started focusing on neural networks. I completed deeplearning.ai’s Deep Learning Specialization, Udacity’s Nanodegrees in neural networks, as well as the Natural Language Processing with Deep Learning (CS224N) course with Richard Socher and Chris Manning. I went through the Deep Learning book by Ian Goodfellow et al. and presented chapters to the local AI & DL Enthusiasts meetup, which helped me better grasp the material. I kept going back to several book references to refine my intuition about the math behind ML algorithms, such as those by Mitchell, Bishop, and Tibshirani.
All these resources, especially the Deep Learning Specialization, gave me a deep understanding of neural networks and machine learning algorithms and experience implementing them. They also introduced me to a community of people who shared my interest and could answer my questions.
After taking these courses and building up your deep learning knowledge, how did you transition into your current job at Postmates?
After eight years at Apple, I felt ready to come out of the wireless industry and explore other areas where machine learning was making an impact. I was looking for a change that would allow me to delve more deeply into the topic, get experience applying neural networks, and be immersed in an environment that practiced ML more centrally. I also wanted to experience a smaller but fast-paced environment in which such algorithms are developed, and I wanted to witness how they impact the bottom line.
When I started interviewing for machine learning engineer roles, I realized that companies were more focused on algorithmic skills than knowledge of machine learning models. I brushed up on the topic by taking Tim Roughgarden’s online Coursera class on Algorithms, which was modeled on his Stanford class. I also went through several other books on the design of algorithms and practiced using Cracking the Code Interview by McDowell and Elements of Programming Interviews in Python by Aziz et al. I generally focused on Python as my programming language. Through this experience, I gained a new appreciation of how to evaluate ML algorithms and their complexity.
Besides coding, other interviews focused on system design and applying machine learning to a particular domain. An example question would be, “Design an ML system that can do X.” These are generally open questions where one can showcase creativity and attention to detail. I drew from my classes and work experience applying ML on real problems at Apple. My earlier experience designing communication protocols also gave me deep insights as well as a passion for system-wide thinking.
Finally, it was important for me to pick a team I was comfortable working with and a manager I could trust. When I was onsite, I asked a lot of questions about the team culture, organizational challenges, and future plans. With those goals in mind, I decided that Postmates was the right choice for me and I joined the Risk and Fraud detection team in 2018.
Build your own career in deep learning.
Get started by taking the Deep Learning Specialization!
What was the hardest part of learning ML? And how did you overcome that obstacle?
The hardest part was getting a strong grasp of the breadth and scale of the machine learning field and overcoming the need to master it all before I could feel competent enough to commit to it. It took focus and patience to go through the classes, do the homework and projects, and succeed at the exams. Finding time for this while having a day job is challenging.
To accelerate my learning, I took time off to focus on classes, and when I came back to work, I had to overcome the skepticism of my colleagues while selling them on the idea of applying ML. Being able to identify the field’s promise to my group and communicating it efficiently was also a challenge, though it was easier because of the good relationship and trust I had built over time with my group’s leaders.
Feeling isolated and alone is another challenge. I got around it by enrolling in online courses that were engaging, hands-on, and had an active cohort with which I could interact. I also participated in meetups, and attended conferences (such as NeurIPS) and local industry presentations. Through these avenues, I met peers, learned what they were working on, and heard about the latest trends.
I found it challenging to follow state-of-the-art research that was published or presented at conferences. I realized that the courses I had taken were only the beginning and that the field was much wider than I had envisioned. Andrew Ng often says a good way to understand papers is to code up the algorithms they describe, but I found that too time consuming and ultimately more appropriate for someone pursuing a PhD. Instead, I opted to take as many classes as I could, build programming experience, and develop strong intuition of proven algorithms.
What advice would you give to a learner who is just starting out?
Take as many classes and consume as much introductory material as possible. Machine learning is a toolbox that takes time to master. Try to get working experience beyond class projects as soon as possible. Apply ML approaches to real world problems, ideally at your current job.
Act as an advocate for ML and raise awareness of its potential in areas where it hasn’t been applied before. Participate in meetups, do presentations about the material you’re learning, and be a mentor for others to teach them what you’ve learned.
Always make sure you’re growing and learning in your current work environment. If you’re not, start looking for opportunities. Make sure to brush up on algorithms and data structures before applying to new jobs!
How do you keep up on the latest AI news and breakthroughs?
I’m a voracious reader. I read a lot of blogs, including Google AI and Uber AI’s blogs, and subscribe to AI and ML newsletters like the Numenta News Digest, the O’Reilly AI and Data newsletters, Data Elixir, and deeplearning.ai’s The Batch. I follow key people like Yann LeCun, Geoff Hinton, Yoshua Bengio, Andrew Ng, and Sebastian Thrun on social media to see what they are talking about and sharing.
I go to local meetups or conferences or attend events at Stanford University, especially around AI’s social and ethical impact.
I look for articles on AI business applications and impact, such as those from Harvard Business Review or McKinsey, to get a sense of how company executives are thinking about ML. I also keep track of government reports on AI and automation, such as those from the OSTP office, as well as regulations around privacy and data protection that impact the practice of machine learning, such as AB5 in California.
Finally, for a deeper dive and longer reads, I delve into books written both for technical and non-technical audiences such as The Master Algorithm by Pedro Domingos, Prediction Machines by Agrawal, Goldfarb, and Gans, and The Second Machine Age by McAfee and Brynjolfsson.
What are you currently working on?
After Apple, I worked on ML modeling for Fraud Detection at Postmates, a three-sided market that connects buyers, merchants, and couriers to efficiently deliver food and other products on demand. I productionalized simple models such as logistic regression as well as complex ones such as LSTMs, and applied them at scale. I was also able to work on several pieces of infrastructure such as a feature outcome store, a feature store, and a model evaluation framework.
My work at Postmates opened my eyes to the importance of all the work that happens around the machine learning code, which is nicely highlighted in this paper by Sculley et al. I also became much more sensitive to and appreciative of the importance of organization and quality assurance, and of viewing both data science and ML as a craft, where you have a large canvas on which to apply your creativity.
I also came to appreciate the growing importance of streaming analytics and real-time processing pipelines. Smoothly integrating the practice of machine learning with data infrastructure is a big challenge for all companies that want to be data-driven. I see the role of machine learning engineering as leading the development of new infrastructure in the context of ML software development, productionalization, evaluation, and automation.
Cherif Jazra is a Machine Learning Engineer at Postmates. You can find him on LinkedIn.[/et_pb_text][/et_pb_column][/et_pb_row][/et_pb_section]