Khang Pham - Machine Learning Engineer at Snapchat
Meet Khang Pham - Machine Learning Engineer at Snapchat and author of the popular ML System Design Course on Educative.io
To describe the process of interviewing a Machine Learning Engineer, it was “relatively” hard work, a lot of practice, and a little luck.
I got Master degree from a US university in 2010, majoring in Computer Science. Everywhere, people always desire to work in a good company. For example, the position of Machine Learning Engineer at LinkedIn has 500 to 1000 applicants. Huge competition! If people have interviewed at a famous company, they are more or less well prepared, so we must do better than others.
During my pre-interview practice, I found that the Machine Learning industry is still new, making it difficult to know what Interviewers will ask, and even companies don’t know what to ask. As a result, we easily spread out what we need to learn. But you see, this industry is extensive. The mistake that first-time Interviewees make the most is not deep dice to basic knowledge. There are a lot of online documents, research papers are also published continuously. However, if you follow the momentum, it is easy to get lost in the maze of sublime knowledge. But lack of foundation is hazardous. Interviewers can ask a couple of basic questions and if you don’t know, you are nearly to fail the interview.
In a big company, there are usually 4-5 interview rounds. These include algorithms and Machine Learning. The second mistake that makes us easy to get rejected is the terrible programming skills for algorithmic questions. The third one is the Machine Learning System Design section. When I went to the interview, I couldn’t find any documentation on this. What I learned at previous small companies also did not apply. Experience with small systems has not much to do with massive systems. After those interviews, I am very curious about the system design of big companies. So I scoured the blogs of Netflix, LinkedIn, Google, Pinterest, etc. Then I spent 6 months designing a course called Machine Learning System Design myself. This course also helped me get offers from big companies like Google, LinkedIn, Coupang & Snapchat. Then I tried to post it online, and soon realized it helps a lot of people. I’ve faced many difficulties and disadvantages, so I don’t want others to suffer the same. Many people support the things I concluded. When I hear someone get their dream job partly because of my resources, it makes me so happy! It is also the premise for what I do in the future.
There is one thing that reminds me of this. At that time, a person took my course via his friend’s introduction. After looking at the author’s name is Khang Pham, he guessed it’s Vietnamese. He searched all over Google and found my LinkedIn profile. So he went to thank you and told me that 5-6 companies had offered him. There are such casual relationships there!
Speaking of personal work, I have been working at Snapchat for about half a year now. The company has approximately 5000 people; it can be said to be small compared to FAANG. Here people are very liberal, only stick to final results. They hire good people, and after training, they believe that these people will “do the right things”, no need to control anything: what time do you go to work, what time come back, how to write code, what they will do tomorrow, … no one cares. So the interview process is also a bit different. Firstly, the programming skills interview is really challenging, much more complicated than other companies. Second, they are very concerned about the candidate’s personality. The working culture here is kind. Therefore, thousands of people still work comfortably, without competition, selfishness, and individualism.
The 6 months period of doing the course above was probably my timing challenge. I usually work in the evening, after 9 o’clock when my child falls asleep. Or between 6:00 and 7:00 a.m., when my child hasn’t woken up yet. The work schedule is really stressful. By the time the course was 90%, but honestly, I couldn’t handle it anymore. So I encapsulated that part. Fortunately, Educative staff gave enthusiastic and positive comments, so it was still enough to go on air. To overcome such exhaustion, I try to sleep for 8 hours a day; I am no longer an adolescent :))) After the course, many people keep email me, and most of the problems are the same. So I’ve come up with the Medium blog a few months ago, and have been writing a book! One tip is when you think of something, write it down right away, every day, bit by bit. Setting goals for writing is hard, so just be comfortable with yourself.
I put in a lot of effort, but how do I know if what I am doing brings value to others? There was a moment when I tried and realized. At that time, I was doing questionnaires for people who were going to interview Machine Learning Engineer position. I advertised for those who are in need, just email me and I would give advice. However, you have to pay whatever you want to a charity of my choice. I found this trial was very interesting because it turned out a lot of people paid. I have to bring benefits to them before they are willing to pay, right. Okay, so I can safely continue to work until now.
Read more about the Machine Learning, as well as interview experiences in this industry at:
Blog: https://mlengineer.io/
Github: https://github.com/khangich/machine-learning-interview
Course: https://www.educative.io/courses/machine-learning-system-design