Breaking into AI: Marrying Web Performance with Machine Learning
Nitin pushed the limits of his software engineering skills to build important products, but he knew he needed to learn more. After taking the Deep Learning Specialization, he specifically applied to jobs that would allow him to transition from web performance to machine learning engineer. Now Nitin’s at Linkedin streamlining the user experience and continuing to incorporate ML into his personal projects.
How did you get started in AI?
I studied computer science in college and have always wanted to build impactful software engineering solutions. I started building programs, like a web application for students to exchange books and a mobile app to catalog medicines, but I wanted to do more. For example, the medicine catalogue app would be more useful if it could also perform an initial simple diagnosis. I realized that the gap in my skill set was preventing me from working on the kind of problems I was eager to solve. When I started looking for a course that would fill this gap, someone recommended the Deep Learning Specialization.The course was perfect for my needs because Andrew covered the relevant math topics in a bottom-up manner, and the exercises helped me practice the theory.
How did you transition from taking the Deep Learning Specialization to your current job?
I started working on several pet projects to apply my knowledge in ML but soon realized I wouldn’t be able to scale the impact of my work. So I started looking for full-time opportunities. I wanted a role where I could use my existing knowledge in web development and improve my skills in machine learning at the same time to create a niche of my own. But most of the existing machine learning jobs only focused on ranking, search, and relevance, which made it hard to find jobs that fit my interests. I didn’t apply for pure ML roles because I knew I didn’t have enough experience to get interviews. Instead, I applied to web performance roles. They were a great fit for my prior experience, and I could see the potential of creating a new subfield by marrying machine learning and web. In the interviews, I tried to learn the team’s strengths and focus. I asked about the availability of large training datasets, how data-driven they were, and their openness to new ideas. Then, after getting an offer, I pitched my potential role as primarily web performance, with ML as a secondary focus. I ended up joining the performance team at LinkedIn because they work in a bottom-up manner, where engineers propose problems and solve them. This freedom let me work on some challenging problems, where I could compare the efficiency of the solutions with and without ML.
Build your own career in deep learning.
Get started by taking the Deep Learning Specialization!
So how did you move into machine learning from web performance engineer?
I spent the first six months working on web performance. Simultaneously, I was experimenting with LinkedIn’s datasets and convinced my team to start using ML to address performance issues. I showed them several examples and built prototypes which optimized a business metric (such as speed, time, money) that. our team cares about. These early prototypes convinced management, and they created a special subteam that focuses on using machine learning to optimize LinkedIn’s performance.
If you don’t see a way to incorporate ML into your current role, I would try moving to teams that actively interact with ML teams to gain some industry experience. Another option is to apply to AI residency programs at companies like Microsoft, Google, Facebook, Uber, and deeplearning.ai, which expect a decent theoretical and practical understanding in machine learning but not much industry experience.
What are you currently working on?
I’m using machine learning to personalize performance for Linkedin members. This is a term my manager and I came up with, where we aim to customize LinkedIn apps’ behavior — not just the content — based on the user. Recently we created a model that decides the resolution of images dynamically on the news feed based on the user’s current network quality conditions for a smoother experience, especially for our members with slower internet speeds. Machine learning is used when user’s network quality cannot be computed/obtained when we want it. More details on this project can be found in this poster. Also, I’m working on predicting where the user might visit next in the app and prefetch it so that it loads instantaneously.
What was the hardest part about learning ML? And how did you overcome that obstacle?
I took the Deep Learning Specialization at night after work, so it was initially hard to stick to a study routine. But the engaging course content, strong motivation to solve the impactful problems, and weekly exercises which showed live outputs of theory kept me going!
I also had to do a lot of reading and experimenting to use my classroom knowledge at work. In my first ML project at LinkedIn, we wanted to build a classification model on tabular datasets. This domain was not taught in the Deep Learning Specialization. But with a strong conceptual understanding of deep learning and experience from doing projects in the Specialization, I was able to build my knowledge on my own by going through blogs and papers. fast.ai’s class on this topic gave me a head start, as I followed their well tested principles for the initial pipeline. Eventually I scaled it using my knowledge from my Masters on Distributed Systems. With help from my team, we finally pushed it to production after a year of hard work. Reading successful people’s experiences like this one really helps. I am writing all my learnings as a blog on Medium for people getting started in deploying models. I think the meat of machine learning can only be understood when we solve different types of problems in multiple domains.
What advice would you give to a learner who is just starting out?
No matter what background you have, you will succeed in this course. Just make sure to make it a part of your routine. Taking handwritten notes while watching the online lecture videos helped me memorize concepts better and also served as a quick reference later. Like any other course, it’s helpful to study with someone else to work through tricky concepts and solve exercises together. Course forums are an excellent place to find friends. I wrote a short summary explaining important concepts from the specialization.
How do you keep up on the latest AI news and breakthroughs?
I subscribe to many newsletters, blogs, and threads that offer relevant content. Some useful ones I found are:
- The Batch weekly newsletter from deeplearning.ai
- fast.ai for bleeding edge research topics in ML
- https://www.datasciencecentral.com and https://www.kdnuggets.com/ for topics on general data science
- https://www.reddit.com/r/MachineLearning/ for opinions on various ML topics
What’s the next step for you? How will you know you’re ready to take it?
In the short term, I want to continue solving hard performance problems that couldn’t be solved earlier using machine learning. In the medium term, I want to gain a deeper understanding of what goes on under the hood, so I can train ML models better and contribute to the scientific ML community. In the long term, I want to apply ML to medicine and make it accessible to everyone. It’ll take a lot of baby steps, as this is a huge undertaking. and I want to be absolutely confident because it involves human lives.