“Coming out from college, I didn’t know programming, I learned a little bit of SQL at my first job, but nothing much.”
For this week’s machine learning practitioner’s Analytics India Magazine(AIM) got in touch with Rahul Agarwal, an ML engineer at Facebook. Rahul has a bachelors in mechanical engineering from IIT Delhi and has previously held machine learning roles at Walmart Labs and Citibank. In this interview, he gave a glimpse of the ground reality of making it to top ML roles.
AIM: How did your journey in machine learning begin?
Rahul: I remember that distinctly. I was sort of lucky to stumble upon the Machine Learning course from Andrew Ng. Andrew Ng was talking about the regression problem and he was using the housing data to explain it. The moment he told about the prediction function. Just pass the variables and get the price. That moment was sublime. Is it magic? Coming from a background where I am good with maths, I couldn’t have thought of such a formula approximation myself and that hooked me. How maths can be used to solve these practical problems.
AIM:What were the initial challenges and how did you address them?
Rahul: Coming out from college, I didn’t know programming, I learned a little bit of SQL at my first job, but nothing much. I didn’t have a mentor or someone who could have guided me while starting with Data Science. The thing that helped me the most was making a plan once I realised that I like this particular stream. I made a plan of all the things I would have to learn: Went through a lot of course structures that were taught in various universities and tried to find something similar to those since I couldn’t leave my job. At my job, I tried to get headfirst into the data science projects whenever I could get my hands on them. It didn’t really matter if I would be able to do them or not. That was always something that I would consider later while understanding more about the problem myself or while googling about the problem. Even if I would not be able to solve something I still would learn a lot about Data Science while trying to solve it. And I have learned that it would rarely happen that you wouldn’t be able to suggest any solution to a particular problem if you do your research well.
AIM: What books and other resources have you used in your journey?
Rahul: Before I answer this question there is a disclaimer that there is no particular book or course which will teach you everything. You would have to take a lot of them and find out yourself what suits your learning needs and what suits how you learn. I loved the Machine learning Book from Tom Mitchell. I also liked the Probability and Statistics by Joe Blitzstein. If you are looking at the list of courses I took in my Data Science Journey I have neatly summarised them here.
AIM: How was your experience interviewing for an ML role at Facebook?
Rahul: It was August last year and I was in the process of giving interviews. By that point, I was already interviewing for Google India and Amazon India for Machine Learning and Data Science roles respectively. And then my senior advised me to apply for a role in Facebook London.
Later, as I studied for the FB coding interview, I realised that I took it a little light and that I was not prepared for the coding interviews at all. The first interview was telephonic. This was a very basic data structure interview and sort of a basic sanity check. This was followed by two onsite coding rounds and system design round. For more details check How I cracked my MLE interview at Facebook.
Recommendations by Rahul Agarwal
- Cracking the Coding Interview by Gayle Laakmann McDowell
- Algorithm Specialization on Coursera by UCSanDiego
- System Design Primer by Donne Martin
- Techdummies Youtube videos
- Facebook Field Guide to Machine Learning video series
Also Read: Rahul Agarwal’s MLWhiz blog.
AIM:What does a typical day look like for you as an ML engineer?
Rahul: You start with reading your mails and replying to the important ones. Then you start with your list of tasks for the day which would include some Data Exploration tasks or working on some feature engineering, or building a model or checking some hypothesis. In the meantime, I would have a lot of meetings with people regarding data issues or how would we evaluate our models. Sometimes the meetings are with business stakeholders to understand their pain points and what we could do to solve those issues.
AIM: How do you approach any machine learning problem?
Rahul: I try to tackle any machine learning problem by first looking at the data itself as I guess any Machine Learning engineer would do. Only once you look at the data you would be able to frame a rough structure of how you would like to solve a particular problem in your head. My basic principle has always been to come up with a very simple baseline solution in the beginning and continually improve on that. The motivation behind that is that you can actually try to optimise and tune your machine learning model forever. The first thing you should always strive for is finding the minimal value you can get by solving the problem as a Machine learning problem. Another point I would like to emphasise is to fail fast. Go into production as soon as possible. Only after testing your model in real life circumstances would you really know the effectiveness of the model, what it fails on and the things you want to focus on.
AIM: What does your machine learning toolkit look like?
Rahul Agarwal’s workstation
Rahul: It pretty much depends on the person. I like to use Python as my language of choice but I know many good people who like R and some who are doing Data Science using Javascript. So I would say it depends on the project. My advice would be to not bind yourself to any tool/frameworks as frameworks and tools will come and go. Try to understand the mathematical concepts and the logic behind a data science algorithm and you should be fine. In the end, learning a Tool and Framework would also become a daily part of your existence when I see how fast the ecosystem changes.
AIM: There is a lot of hype around machine learning. So, when the dust settles down,which domain might stand the test of time?
Rahul: Why do you think the dust will settle down? I don’t see Deep Learning going anywhere with its adoption being at near country levels. The recommendation systems are never going away from our lives whether it be product recommenders or ads. I see ML being more and more engineering heavy with every passing day. Yes, we still test hypotheses and we still love our research problems but a far higher weight is given to putting things in production and derive value fast. ML is going to play a key part in Maps which will still continue to improve. The Robot industry is set to have a boom in the next few years with reinforcement learning. The AR/VR industry is something that could really be the next big thing. I guess we have just started.
AIM: What do outsiders get wrong about this field?
Rahul: That it is easy to get into and reading a book or doing a course/bootcamp could teach you about AI/ML. Right now, you need a lot of math and programming background just to even start. And a lot of luck to get a job and show what you are capable of. That is not to say it is impossible, but be prepared to spend a lot of time learning before getting in and learning never stops in this field.
AIM: From a global AI perspective, where do you think India stands?
Rahul: From my perspective, India would no doubt be a major beneficiary of this AI/ML wave. The first reason being that India has always been at the forefront of software. And AI/ML is no different. India needs to research more on AI/ML. We can see it happening with various Big companies opening up their AI labs in India but it needs to happen at the college level too where students get proper research infrastructure and good mentorship.