Hiring process in Silicon Valley
Recently I finished my long way to a dream job in America. I have attended lots of interviews in different companies at Silicon valley, so I have enough experience to share with those who are moved here from another country and not familiar with the american hiring process.
Hiring process in America differs a lot from the way we have in Russia. It is much longer, it involves much more people and consists of 5-7 different steps. From the first phone call from HR till your final offer might pass 3-5 weeks or even longer. The whole process might slightly differ from company to company, but the main steps are usually the same:
Apply for the job
There are a huge amount of candidates, especially here, in Silicon Valley. You have to polish your resume very carefully, point out you best skills very clearly. The ideal resume consists of 1 page and contains all necessary information about the candidate: full name, contacts, background and most significant achievements.
After you apply for a selected job you need to be very patient. Usually, companies receive a lot of resumes every day and it takes time to read all of them. Moreover, I would say that job applying in a classical way doesn't work nowadays. Different social engineering tools like LinkedIn and Facebook can significantly increase a probability that you resume will reach the right person in a fastest way. Another option is platforms like Hired.com or Monster.com. Hired.com works fine for me: personal talent advocate, many interesting companies, a huge amount of vacancies and opportunity to schedule all interviews in one place (and a great bonus if you find your dream job with Hired!).
While you are waiting for company response it is a good idea to prepare recommandation letters. Here, in America, it is very important to have a list of recommendations from previous employers, so be prepared in advance and ask your previous managers to provide you with such recommendation letter.
First call or email from HR.
This is a small call or even email from HR or other company representatives. The main goal is to check if you are still on the market and to show you that this company is potentially interested in hiring you. If everything is good, HR will schedule the phone/skype call interview to discuss job position and your background.
15 minutes phone call with HR or team manager.
This is a short phone or skype conversation with HR or team manager. To tell the truth, I have never had such conversation with any HR, it always was some guy from the team: manager or team lead. They usually ask common questions about your background and previous experience. They ask about professional books you've read, workflow process on your previous project, most challenging task you had and very rarely some common questions from your main skill area. E.g. in my case with Javascript as the primary skill I was asked about hoisting and event bubbling. It is a great idea to prepare short answers to common questions in advance, especially in case when English is not your native language. Your answers will show your interviewer how good you will fit this job position. Also, your interviewer will tell you about job position and about the company itself: benefits, values, team. If you feel that you maybe not the right person to fit this job position, don't hesitate to discuss your concerns with the interviewer. Interviewer will appreciate your honesty and even if you decided not to continue, he will keep you as the honest and good candidate for another position.
Home work challenge
Usually, after the phone interview, companies send you a small challenge to complete in 1-2 days. Sometimes they prefer to have another online interview via skype or hangout and code with you sharing your screen. The main goal of this iteration is to demonstrate your interviewers that you able to solve issues or/and you are familiar with some specific technology or ready to learn fast. In my case, I was asked to implement simple video gallery on React in 1-2 days, because I didn't have React on my past project and I had to demonstrate that I'm really good at React. Another time I was asked to solve issue online by using my knowledge about data structures and algorithms. If you have online challenge don't forget to speak more, describe your thoughts and try to find an optimal solution before you start coding. Remember, you have a limited amount of time and it is better to describe everything in words and then start coding rather than start coding and forget to mention some important things. If you were asked to implement your solution offline, don't try to impress your interviewers with complicated structures. Your interviewers and your future team are people with different experience, but everyone of them should understand every line of your code. Impress them with clear and smart code. If you want to write comments somewhere in your code to explain what's going on the line below, it is a good sign that you need to simplify this line of code, rather than comment it.
On-site interview with team
If you receive an invitation to the on-site interview it means that you are really valuable candidate and the company is really serious about you. Congrats! An on-site interview is the most interesting and the most challenging part. It usually takes 4-6 hours (or even the whole day). You arrive at the company office in the morning, meet your HR and your future team. Interview starts with the small conversation, some behavioral questions, your recommendations (if you bring them) and moving forward to the coding part. Usually, every team member has 1-1.5 hour to ask you questions and coding tasks. You write the solution on white board or list of paper. Most questions are connected with data structures, algorithms, and some language specific issues. You should be familiar with O notation to explain the complexity of your solutions. There is a great amount of online platform that can be used for interview preparation:
- Pramp.com - online pair interview to practice live technical interview for free.
- Codewars and Coderbyte - online code challenges
- Mock Interview on LeetCode
And at the same time this interview is an opportunity to show that you are not only the great expert, but you also are a good team member and such a nice guy. People around you want to find the future colleague and they are really interested if you are the easy-to-get-along-with person. This is also an explanation of why you might be invited to share lunch with your future team while interviewing. Everyone in the team should feel comfortable with each other not only on work but while just chatting or drinking beer. After you return home exhausted and happy, don't forget to write 'pleasure to meet you and thank you' email for people who spent the whole day interviewing you. For them, it also was a hard process and they will appreciate your attitude.
On-site interview with CEO
This interview might be a part of the on-site interview or might be the separate interview. You will meet the CEO of the company and talk a little bit about your future plans and about company goals. This will give you both clear understanding of can you fit the company goals and can you be valuable the person for the company. For you, it is a great opportunity to understand if you can grow inside the company or how you can improve your skills here. It will be helpful to learn more about the company and prepare some questions in advance. In this conversation, you most likely will discuss your future salary and bonuses. So be prepared to negotiate.
Final offer
Congratulations! You finally did it! It was really long and amazing experience, wasn't? Don't forget to say thank you, check your first working date and another part of your job offer. In case you have several job offers and decide to decline this particular offer, be polite and inform the company about your decision as soon as possible.