Reading posts on Habré, I noticed that many are not particularly aware of how the interview process itself is arranged, especially by the employer. It should also be noted that many articles about the passage of the interview are a bit of a “Piarist” character, and do not describe the details. I want to fill this gap, and without water to tell how it works from the inside.
Everything described below is typical for my company, but HR itself is fairly standard by Californian standards (which has now practically become international standards). There is no PR, so just in two words: my company is a small multinational company with a staff of about 4,000 people, HQ in Palo Alto, R & D (where I work) - Vancouver, BC. I am interviewing for a position on my team that develops a web-frontend for embedded devices (using Python, C and the standard HTML set).
Creating a job ad
The announcement is made not only for the candidate, but also for the HR department. The first step in the interview is a telephone interview, and the ad must have keywords that will be used during the conversation. Unfortunately, the HR department is not always competent in the technical field, and this must be taken into account. Another hidden purpose of an ad is to scare away unqualified candidates. Unfortunately, this is often done incorrectly, and managers point out nonsense like “30 years of programming on .NET”. The “copy and paste” method is also very common when looking for ready-made ads and changing them to fit their needs. As a result, stupidity from the original ad go to all the others.
')
So it is necessary to look at the ads soberly, very often there is much overdoing. Unfortunately, recently everyone has become so accustomed to this, that they simply spit on all the requirements specified in the ad, and send their resume regardless of qualifications.
CV analysis
Resume - is one of the key stages in getting a job, many very underestimate
how important this is. So, the candidate sends a resume with his data, and possibly a cover letter (everything that is not included in the resume is usually a message in the style of "what a good company you are, and I am also good, let's be friends!"). In most cases, resumes are processed
automatically ; in any large company, HR receives hundreds of applications a day; they simply do not have time to process everything manually. So if you made an elaborate resume in Photoshop, there is a huge chance that it will not be considered. This sometimes applies to small companies, when HR uses standard solutions in this area.
With automatic processing, personal data is retrieved from the resume. If the data is incorrect, then in the database they may fall into the incorrect table. So it is better to follow the standard formatting - name, contact information in a standard format, the address in a standard format. If this data could not be retrieved automatically, then there will be empty records in the database, and they will be considered last (or will not be considered at all).
Another important factor is the address. There is a common practice when a company transports a candidate to a new place at his own expense. So if you are applying to a company in another city, be sure to indicate whether you will move yourself at your own expense (for example, that you are ready to move, you have plane tickets, you are simply looking for work beforehand). Also, candidates from other cities are usually considered last (the same applies if the address is not specified), and the further the city, the less chance that it will be considered at all.
Now how the resume itself is considered. From my own experience, I must say that I no longer believe anything that can be written there, especially if it is a resume from an Indian national - they have a very, very good written language, sometimes it is so good that it is tempting to immediately hire without an interview. However, many things in the resume are made up. In North America, there is no practice such as workbooks, and it is very difficult to verify qualifications. All letters of recommendation also do not inspire confidence, because many simply agree with their friends to confirm the recommendation.
So basically, I’m doing a company check, a candidate’s resume and online candidate profile (just to say, I’m looking on the Internet). Naturally, I watch blogs and projects of the candidate. I want to immediately give a recommendation for potential candidates - have a Linked In profile, your technical blog and several OSS projects. If I can’t find the candidate’s online presence, this is a fat minus. I understand about the NSA, but nevertheless, if a person does not glow anywhere, then there are two reasons - he is paranoid (which is good for some jobs), or he has no life other than work and at home (even if the candidate has only a page with kittens on Facebook, this is already good - it means that this is a person, not a monkey, who can only hammer on the keyboard). Of course, there are exceptions, but my practice shows that a person who does not shine anywhere is usually a fairly banal person without clearly expressed interests and hobbies. For Russia, this may be quite the opposite, but I think it is also applicable to some extent. In any case, for the west, the network presence check is a must-do.
And one more thing - the DB of a resume does not always send notifications (for example, I did not set them up myself, and I’m not particularly sure that this is even possible in our system). So it is quite possible that the CV will be reviewed a couple of weeks after it was sent. Yes, this is bad, but these are the realities - it is not necessary to expect that you are just expected with open arms, you are just one of many.
Telephone interview
This is a standard practice, and almost always it means that your candidature has interested the company, and it will conduct a full-fledged interview. The purpose of a telephone conversation is to find out communication skills (language skills), technical skills (usually a couple of points are taken from the announcement, and the qualification is clarified) and to agree on subsequent actions. We should not expect serious technical issues at the first telephone interview, however, we must be prepared for the question with questions about hinges. For example, ask how much experience you have with .NET, (and considering that the announcement says "30 years of experience") when answering "31 years" you can immediately say goodbye to you, because they know that this is a lie. HR usually has a special questionnaire for this. But again, nothing complicated is usually asked, for this there is a technical interview.
During a telephone interview, the following interviews are usually scheduled, or the time when you can submit a written assignment is specified. In our team, we give the task, which is given 1.5 hours. Usually during a telephone interview, the time is indicated when the task will be sent to the email address and when a response is expected.
Writing assignment
In fact, this is a set of questions that require writing code. All the answers can be found on the Internet, but there are specific things with which it will not help. This allows you to determine what terminology the candidate owns (usually the knowledge and ability to correctly apply the terms says a lot about qualifications). For example, we have the question "rewrite such and such code using Python's built-in functions." This is baffling to many, because they do not know the difference between built-in functions and other functions.
Many questions are quite elementary, but they suggest several solutions. Naturally, we also use the Internet, and we know which solutions can be found on the Internet, and which candidates the candidate most likely found himself. However, the level of confidence in any code is quite low, and we always assume that the candidate used the help. Therefore, already during a personal interview, we clarify how a particular code works.
Assignment answers determine whether a candidate will be considered further. The solution algorithm is usually checked, syntax errors are ignored (but then this is clarified during a personal interview). Sometimes tasks are returned without answers, or solutions are completely wrong (as for example, when the PHP-code is sent to the client’s question about validation on the client side, this is despite the fact that we don’t care about PHP, let alone that the question was about client, not server validation).
Personal interview
If the written assignment was more or less normal, we assign a personal interview. Sometimes this happens even if the writing task was done poorly, because It is necessary to consider the stress of the candidate. Some people show themselves very badly under stress, and this factor is taken into account by us. Therefore, at the beginning of the interview we hold an ice breaker (insignificant talk) about the weather, about us (the company and our team) and about the candidate himself.
The next step is a summary. The purpose of talking about a resume is to find out the social skills and level of the candidate. We had a candidate who pointed out the Google Street driver’s summary (he drove the car that took the pictures) in Ireland many years ago. It was interesting to just talk about it, and it had a good effect on the very atmosphere of the interview, because lifted stiffness. We also specify the tools used by the candidate (OS, VCS, programming languages, editing environments, continuous integration servers, etc.). Usually, this stage is positive, because we don’t go into details, but if a candidate says that he has programmed all his life only under Windows (while we need a Linux developer), this already creates little minus ones. The same applies to storing source codes in archives, using Far as an editor and other things that say that a person is not interested in IT, and lives in his little world “work-home”.
Why is that bad? A few reasons:
- will have to spend time training the candidate
- if a person is not interested in new trends, it means that for him work is just an uninteresting craft, for the sake of money. Such people are characterized by the fact that they write many lines of code, work on projects for a long time, and are rather conservative to adapt new technologies.
- there is a high probability of alienation from the team - if, say, everyone is used to making good atomic commits in Git, then such a person will most likely make huge commits that constantly conflict with other commits and difficult for codereview
These are my observations of such people all my adult life. I have never met any exceptions, but I suppose that they can be. For myself, I put minusiki to such people.
After talking about the resume, switch to technology. The purpose of this stage is to find out the theoretical basis and the set of terms used by the candidate. The language barrier is a very serious thing, especially in an international company. If, in addition to a purely conversational barrier, there is also a barrier of terminology, this will lead to very painful consequences. I have seen many times when a manager verbally gives an assignment to an employee, he nods his head - yes, I understood everything, and a week later he comes with a completely wrong decision, because he thought that he was talking about something else (for example, instead of CSRF he thought about XSS ). Sometimes even correspondence via e-mail alone does not help, simply because it means different things. For example, “stream” - the manager didn’t clarify what the network stream meant, and the employee thought that it was just necessary to rewrite the code using C ++ I / O streams. Close, yes, but wrong.
Further, the approaches to the interview forked depending on the team. Someone asks the classic, but useless questions “write a singularly-linked list”, and “what O (N) sorts”. Someone asks even more useless, but again, classic questions about manhole covers and balls in the bus. All this is already slowly leaving, and many companies no longer ask for abstract things. I must say that sometimes we use such questions if we have doubts about the candidate, but usually this is not required.
Basically, here we either round out (if we see that the candidate has too many minuses), or proceed to the analysis of the technical task. In addition to the obvious questions about syntax errors and how it works, we ask the candidate to write a more efficient algorithm (either faster or to consume less memory). Sometimes we bring a candidate to a decision if we see that he has some thoughts, but cannot formulate a decision. Questions to improve the efficiency of algorithms have been justified by a long practice, since they immediately show several candidate skills: knowledge of algorithms and data structures, knowledge of the low-level component (bit depth, binary operations), knowledge of a programming language and, in general, the ability to solve problems, and sometimes in a non-standard way. For example, even in Python with the arithmetic of unlimited precision of integer operations, knowledge of low-level things is quite important, since Python automatically switches from fast arithmetic in registers to an inefficient bigint, and sometimes the simplest change speeds up the program many times over. But this is just an example - if the program is fast, but wrong, then it goes to the dump, regardless of its optimizations.
After discussing the assignment (if everything went well) a nightmare comes for the candidate, because we extrude from it all possible knowledge in the field of interest to us. These may be questions about the memory manager in Python, and how je_malloc is better than PyMalloc, and about memory segmentation and sbrk usage in malloc,
javascript prototypes and closures, css selectors, HTML5 features EcmaScript Shims, jQuery deferred, CSS3 pseudo classes
(I cite more specific examples in order to minimize discrepancies ), etc. The purpose of this is to find out the limits of knowledge and stress resistance of the candidate. We usually do this for candidates who have already been decided to be hired, but now we want to decide on his position and salary (of course, those who pass the tests with brilliance receive a more advantageous offer).
The last stage is the candidate's questions to us. This is baffling to many, but this is an indispensable part of all interviews in Western companies. Here again, there is a test of social skills. It also sometimes makes it possible to understand how much the candidate is interested in the position. It is not profitable for us to spend our time and money on a candidate who will most likely quit after a couple of months, and we always try to understand how interesting we are to him.
Selection criteria
And finally, small conclusions - what criteria we consider before we invite to work:
- Technical skills (learning is never profitable)
- Social skills (communication barrier can reduce work efficiency)
- Experience in a similar field (minimal factor, but may affect the final decision)
- Overqualification (not sure about the Russian term, but in general, this means that we will not take the professor to the place of junior analyst)
I hope that this will help you in the difficult work of finding a job, or simply broadens the mind on how corporations work from the inside.