Over the past eight months I have been interviewed at various companies - DeepMind at Google, Wadhwani Institute of AI, Microsoft, Ola, Fractal Analytics and some others - mostly in the position of Data Scientist, Software Engineer and Research Engineer. Along the way, I was given the opportunity not only to communicate with many talented people, but also to take a fresh look at myself with an understanding of what employers want to hear when they talk with candidates. I think if I had this information before, I could have avoided many mistakes and prepared for the interviews much better. This was the impetus for writing this article - perhaps it will help someone get a dream job.
In the end, if you are going to spend two thirds of your time (if not more) at work, she should be worth it.
The idea of the article came up in my conversation with one of the juniors that universities now do not offer really interesting vacancies for specialists in the field of AI. In addition, in the process of preparation, I began to notice that people often attract a very wide range of resources, although for most of the posts, as it turned out, you can get by with a small list (I’ll give it at the end of the post). I will start by telling you how to get noticed (to get an invitation for an interview), then list companies and start-ups where you can try your luck, then I'll write out how to make an impression on the interview. In the next section, I will, on the basis of my own experience, speculate on which companies should strive to work, and, finally, I will come to a conclusion with a minimum list of resources necessary for preparation.
Note: I would like to discuss two things for those who expect to get a job at the university. Firstly, in regard to job search, practically everything I say here (except for the last section) is irrelevant for your case. However - and this is the second thing I want to emphasize - as already mentioned, universities basically take people to the positions of developers, without intersections with the AI field. So this article is designed specifically for those who want to work with AI technologies and solve interesting problems with their help. It is also necessary to add that not all interviews were successful for me, but, probably, this is the whole point of failure - it is best to learn from them! Perhaps not all the tips that I bring here will be useful to you, but I myself acted that way - now you don’t know what else you could do to present yourself in the best light.How to get to be noticed: an invitation for an interview
To be honest, this step is the most important. Looking for a job outside of your university is so hard and tedious precisely because of the pile of applications the recruiter must select and read yours. Seriously simplify the case can the presence in the company of the contact person who will recommend you. In the most general case, the task can be divided into three main steps:
Conduct training regularly and do not spare her strength. By regular actions, I mean maintaining accounts on
GitHub and
LinkedIn , maintaining a website with a portfolio, and constantly refining your resume. To begin with, your resume should be neat and concise. Follow the guidelines from Udacity,
Resume Revamp to give it a neater look. It contains everything that I was going to say - I myself resorted to their recommendations. If you need a template,
there are some good ready-made formats for
Overleaf . Personally, I used
deedy-resume . Here’s what it looks like:
As you can see, one page can fit quite a lot. However, if you still do not have enough space, the format I referred to above will not work for you in its original form. Better get a specially modified multipage version of the same template
here .
The next important point to be discussed is your GitHub account. Many people underestimate the potential of this site only because, unlike LinkedIn, there is no way to know who viewed your page. But people, in fact, quite go to your account - this is the only way to check if what’s written in your resume is true: after all, it’s customary to insert all sorts of buzz
words and other white noise. In the field of data science, in particular, open source plays a particularly significant role - most of the tools, the implementation of various algorithms, lists of useful resources for training are presented in the public domain. I wrote about what advantages open source gives developers, in another of his
articles .
Here is the minimum you need to do:
- Create an account if you don’t have one
- Create a repository for each project in which you were involved
- Add documentation with clear instructions on how to work with code.
- Add documentation for each of the files where the role of all functions, the value of all parameters, the correct formatting (for example, PEP8 for Python), and also, as a bonus, a script that allows you to automatically conduct it, is mentioned.
Moving on to the third step, which many miss, is creating a website for a portfolio, where the developer demonstrates his skills and personal projects. The presence of a website shows that you seriously intend to go into this area and represents you as a person trustworthy. In addition, in the summary you are limited in the amount of text, so you have to release a lot of details. If you wish, you can use the portfolio to reveal everything as it should. It is also strongly recommended to provide some kind of visualization or visual demonstration for the project / idea.
Make the site easier than ever - now there are many
free platforms where the process is extremely painless and comes down to dragging the finished elements. Personally, I used
Weebly , a very popular tool. It does not hurt to take some kind of sample as a starting point. Gorgeous sites are now enough, but I stopped at the
personal page of Deshraj Yadav , to put it as a basis for working on
my own .
Finally, many recruiters and job seekers have recently begun using LinkedIn as the main search platform for employees. There are many good vacancies there. Not only recruiters, but also people occupying high positions are active on the resource. If you can get their attention, your chances of getting into the company will greatly increase. In addition, it’s also necessary to keep your account in order that people have an incentive to contact you. Search engine is an important component of LinkedIn and in order to be displayed in the output you need to include
relevant keywords in your profile. It took me a lot of attempts and adjustments to finally get an acceptable result. In addition, it is definitely worth asking your former colleagues or supervisors to confirm your skills and leave a recommendation, telling about their experiences working with you. It all works to your chances of being noticed. Here I refer again to Udacity and their
guidelines for working with LinkedIn and Github.
It may seem that I demand too much, but do not forget: you do not need to do all this for a day, a week or even a month. This is a continuous process, it never ends. At first, you will have to invest a lot of energy to arrange everything properly, but then, regularly updating your accounts with the latest events, you will not only get used to it easily, but you will be able to tell about yourself wherever and whenever, without any prior preparation - so well you will know yourself.
Stay true to yourself. I often have to see people who adapt to the requirements of a vacancy. In my opinion, it is better to first decide what you are interested in and what you want to do, and then look for relevant vacancies, and not vice versa. Now the demand for specialists in the field of AI exceeds supply, so you have such an opportunity. Thanks to the investment of time in the regular training mentioned above, you will have a better idea of yourself and it will be easier to make a decision. Moreover, you do not have to procure answers to personal questions that are asked during interviews. Most of the answers will come by themselves - just as the reasoning on a topic that you care about.
Networking. Now, when we have completed everything from the first point and have sorted it out with the second one, networking will help you get to the goal. If you do not communicate with people, you will never hear about the many opportunities that you would be on the shoulder. It is very important to establish new connections day after day, if not face to face, then on LinkedIn, so that in the long term you will have an extensive and powerful dating network. Networking does not boil down to writing to people and asking you to recommend to your employer. At the beginning of my search, I often made this mistake, until I finally got a wonderful
article by Mark Melun , which tells how important it is to establish strong ties with people, offering them help first.
Another important step in networking is to put content on public display. For example, if you are good at something, write an article about it and post a link on Facebook and LinkedIn. It will be useful to other people and yourself. An extensive network of connections allows you to catch the eye of a much larger number of people. You can never predict who among those who like or comment on your articles will help you reach a wider audience, where there may be someone who is looking for a person with your skill set.
List of companies and startups where you can send a resume
I built the list in alphabetical order so as not to create a false impression of any particular preferences. Nevertheless, I nevertheless noted with an asterisk those that I can recommend personally. These recommendations are based on the following: description of the mission, team, personal experience and opportunities for development. If there are several stars, it is connected with the second and third parameters.
- Adobe Research
- * AllinCall - (founded by a graduate of the Bombay Indian Institute of Technology)
- * Amazon
- Arya.ai
- * Element.ai
- * Facebook AI Research: AI Residency
- * Fractal Analytics (and subsidiary startups: Cuddle.ai, ** Qure.ai)
- ** Google (Brain / DeepMind / X): AI Residency
- Goldman sachs
- Haptik.ai
- ** HyperVerge - founded by a graduate of the Indian Institute of Technology Madras, who works on AI solutions for real-world problems with clients from various countries. The founders also included those who made up the famous computer vision group at the same institute.
- IBM Research
- * Intel AI labs (reinforced training)
- ** Jasmine.ai - founded by a graduate of the Indian Institute of Technology Madras, who also received a degree from the University of Michigan. The team is working on conversational artificial intelligence. With funding, they, too, everything is in order. Now urgently looking for people to branch in Bangalore.
- JP Morgan
- * Microsoft Research: one or two year scholarship in an Indian lab or AI Residency
- MuSigma
- Next Education
- niki.ai
- * Niramai - the team used to be part of Xerox Research, now working on detecting breast cancer in its early stages using thermal imaging.
- Ola
- * OpenAI
- * PathAI
- Predible health
- Qualcomm
- * SalesForce
- Samsung Research
- * SigTuple
- * Suki - voice assistant for doctors based on AI. Recently, it has also attracted a lot of investment and may soon open an office in India.
- * Swayatt Robotics - working on unmanned vehicles for India.
- ** Wadhwani AI - founded by Romesh Wadhwani and Sunil Wadhwani billionaires, they set themselves the goal of creating the first organization that will seek to use AI technologies for public benefit.
- * Uber AI Labs & Advanced Technologies Group: AI Residency Program
- * Umbo CV - computer security vision
- Uncanny Vision
- Zendrive
Note: Only companies I know about are listed here. If you know any more, please let us know and I will add to the list.Some more listsHow to shine with an interview
The interview begins exactly at the moment when you enter the office, and in the interval between this moment and the invitation to tell about yourself a lot can happen. Body language is important and whether you smile while greeting. This is especially true for startups, where they look very carefully at whether the candidate will fit into the team culture. You need to understand: let the person conducting the interview be completely unfamiliar to you, but you are also unfamiliar to him. So he may be as nervous as you are.
It is important to perceive the interview as a dialogue between you and a company representative. Both of you are in search of a suitable option: you are looking for a cool place to work, and he is a great professional (like you) with whom the team could work. Therefore, recharge yourself with confidence and take the responsibility to make the first moments of your dialogue enjoyable for your interlocutor. Of all the ways I know of to achieve this, the simplest is a smile.
Interviews, for the most part, are of two types. The first one assumes that the interviewer will come with a ready list of questions and follow it, regardless of what you have in the file. Another type of interview is based on your resume. I will start with the second.
Such interviews usually begin with the question: “Could you tell us about yourself?”. Here in no case can you do two things: talk about your university certificate and begin to talk in detail about your projects. Ideally, your monologue should last a minute or two, give a general idea of what you have been doing so far, and not be tied to one study. Here you can also mention your hobbies - reading, sports, meditation - in a word, about everything that will help you better understand you as a person. Then the interviewer will push away from something you have said, to ask the next question and go to the technical part. The purpose of this interview is to check whether you wrote the truth in a resume.
The person who really solved the problem will be able to highlight it at different levels. He will be able to identify the very essence - otherwise he would not have been able to bring the matter to the end. - Elon Musk
There will be a lot of questions about what could have been implemented differently in your projects and what would have happened if you did not X, but Y. Here it is important to know which compromises are usually accepted during implementation. For example, if a company representative says that you would have to use another tool for more accurate results, you can reply to him that you worked with a small amount of data and this would lead to retraining. At one of these interviews I was given a case to be resolved and, in particular, to design an algorithm for the real situation. I noticed that when they give me the green light on the story about the project, it is better to stick to such a scheme, which the interviewing staff really likes:
Problem> 1-2 existing approaches> Our approach> Result> Conclusions
Another type of interview aims to test your knowledge. You should not expect particularly abstruse questions, but be sure that they will affect all the basic areas with which you should be familiar: linear algebra, probability theory, statistics, optimization, machine learning, and deep learning. The resources listed at the end of the article should be enough, but you must read all of them. The catch here is how much time you need to answer. Since these are the most basic things, they will wait for an instant reaction from you. Therefore, the preparation should be appropriate.
When answering questions, one should keep confidently and honestly recognize when one does not know something. If you get a question about which you do not have the slightest idea - say so, instead of making sounds like "uhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh? Or but instead of making sounds like" uh "and" mmmm ". If we are talking about some key concept, and you find it difficult to answer, as a rule, the interviewer will be happy to prompt you or lead you to the necessary course of thought. If you can take advantage of this and come to the right decision, it will be your advantage. Try not to be nervous - a smile can help in this too.
We are approaching the final part of the interview. At this stage, you will be asked if you have any questions. It is easy to give in to the thought that everything has already ended, and just to answer that you have no questions. I know a lot of people who were screened out only for this mistake at the last stage. As I have already said, not only you are evaluated at the interview. This is a mutual process: you yourself also see if the company is suitable for you or not. Therefore, it is obvious that if you really want to join the team, you will have a lot of questions - about the work culture, about what role they assign to you. Or maybe you will just be curious about what the person who conducted the interview does. There is always something around which you can learn more, so try to leave the interviewer with the feeling that you are really interested in joining their ranks. The last question I’ve asked at all interviews is about feedback — something they would advise me to work on. It helped me a lot, I still remember what advice I was given, and I tried to build my daily life with their account.
That's all. In my experience, if you honestly tell about yourself, are competent, show deep interest in the company and demonstrate the right attitude, you will most likely meet all the requirements and have the right to expect a letter of congratulations soon.
What companies need to strive to work
We live in an era of opportunity, and this also applies to what you enjoy doing. Just strive to become the best in your field and sooner or later you will find a way to monetize your skills. As
Gary Vaynerchuk says (subscribe to him already): “Enough of agreeing to all the crap that is right across your throat.”
Now is a great time for those who work with artificial intelligence, and if you really get excited about the topic, you can achieve a lot and give the right to vote to many of those who still have not had a chance to speak. We all the time grumble about the problems that surround us, but now, for the first time in history, ordinary people like us can really make a difference and not just complain. To quote the famous saying of Jeffrey Hammerbacher (founder of Cloudera):
“The greatest minds of my generation ponder how to make people click on an ad banner. And it sucks. "
With the help of artificial intelligence,
we can do much more than we can imagine. There are many extremely serious problems that require the work of very smart people. You can change the lives of a huge number of people for the better. Stop thinking about what is "cool" or going to "look good." Think and make decisions wisely.
Minimum list of resources required for preparation
The list of questions for interviews in the field of data science for the most part consists of the following four categories: computer science, mathematics, statistics and machine learning.
Computer scienceAlgorithms and data structuresOperating SystemsObject Oriented Programming . You will be asked to tell you how you would design a system, for example, for booking railway tickets. Accordingly, you will need to discuss what requirements are set, which classes will be needed and which variables and methods each of them will contain, how heredity can be used (for example, the Engineer and Scientist classes can be derived from the same class Employees). Such things are learned in practice. You can familiarize yourself with basic terminology
here .
Mathematics and StatisticsIf you are unfamiliar with the mathematical foundations of deep learning, I advise you to work out the resources from my
past post to learn them. If you feel confident enough, I found that it is enough to read Chapters 2, 3 and 4 of the
Deep Learning Book to study or repeat all the necessary material for this type of interview. I made
notes to some of the chapters, where I tried to explain those concepts that I myself could not understand for a long time - you can refer to them. Well, if you have passed the course of statistics, then with the answer to the questions on mathematics problems should arise. From the statistics it is worthwhile to work out these topics - this should be enough.
Machine learningHere, the range of questions may vary significantly depending on the position you are applying for. To prepare for the traditional format interviews, where your basic knowledge is tested, you can take either of these two courses:
- Machine Learning by Andrew Ng - CS 229
- Course Machine Learning by Caltech Professor Yaser Abu-Mostafa
The most important topics are teacher training (classification, regression, support method, decision tree, random forests, logistic regression, multilayer perceptron, parameter estimation, Bayesian decision rule), training without a teacher (k-means method, Gaussian mixture models ), dimension reduction (principal component method).
If you are aiming for a more solid job that requires more thorough preparation, there is a high probability that you will be tested for advanced training. In this case, you need to be very familiar with convolutional neural networks and / or (depending on what you have worked with before) recurrent neural networks and their variations. By good acquaintance, I mean an understanding of the fundamental concepts of deep learning, how these networks work, what architecture was offered for them and what were the reasons for introducing such changes. Then walk on tops will not work. Either you understand them, or invest time to understand well. For studying convolutional networks, I recommend the Stanford course CS 231N, and for recurrent networks - CS 224N.
The course of the Neural Network from
Hugo Larochelle also seemed very informative to me. To quickly refresh the main memory, look
here . Udacity
comes to the rescue here too. As you may have guessed, Udacity is generally a good place for those who practice machine learning. There are not so many organizations that are working on reinforcement training in India and I do not have enough experience in this area. So let's leave this topic for future additions to the article.
Conclusion
Finding work outside the university is a long way to self-discovery. I understand that once again I have a huge post and I really appreciate that my reasoning is interesting to someone. I hope this article from some side will be useful for you and will help you better prepare for the next interview in the field of data science. And for those who have already helped, I beg you to reflect on what I am saying in the section “What companies should we strive to work for”.