📜 ⬆️ ⬇️

How I successfully completed six interviews in Silicon Valley

For six days, from August 13 to August 20, 2018, I interviewed six Silicon Valley companies (LinkedIn, Yelp, Apple, Amazon, Facebook and Google) and received a job offer from each.



In the process of preparation, which I describe below, I strongly relied on this last year’s post — it was he who at one time made me think about whether it was time to move to another company. I didn’t want to constantly dangle to the other end of the country and back in search of a perfect job, so it was clear: I’d have to gather my will into a fist and plan all interviews so that they would go one after another. I aimed at job openings that are related to mobile development, but the described approach to learning, tips and tricks are suitable for other cases.

I hope my story will inspire someone who is now in the same position (not quite happy with the current work, dreams of moving to the Gulf region, but somewhat under-fit in terms of preparation), dare - who knows what the future holds for them.

Introduction and Statistics





I firmly decided that I want to work in the Bay area, where I can get a job in a large company and grow seriously as a mobile developer. I used to work in startups, and it was a good experience, but this time I was looking for bigger fish for a number of reasons (I mean not only the size of the team, but also the capital). I also knew that I didn’t have a particular company yet, as well as I didn’t understand what kind of salary needed to be paid in order not to lose money compared to what I had. Finally, I had no desire to send out a whole hundred resumes, as I did right after university.

Taking all this into account, I sent a resume to twenty companies. Four of them (Reddit, Nest, Stripe, Uber) refused me immediately after receiving the letter. Of the remaining sixteen ten (Lyft, Airbnb, Dropbox, Instagram, YouTube, Square, Robinhood, Twitter, Snap, Slack) did not give any feedback at all. Simple arithmetic suggests that six companies responded and asked me to talk with a recruiter. In the end, I received six invitations for a telephone interview, six - for an interview in the office and six job offers.

After reviewing my calendar on Google, I estimate that it was all distributed like this:


Adding these numbers, you can calculate: I completed 46 interviews in 73 days (if we count the intervals between the stages). It was hard, and I had to spend all my lunch breaks on meetings for many weeks. I began to come to work early in order to be able to leave early and spend the evenings having telephone conversations. Difficulties were created by the fact that it was necessary to continue to properly fulfill my duties in current work - however, I always tried to give priority to her and endured meetings if circumstances so required. Shirking so that it was more convenient to interview, I was not going to. This is unethical, leaves a bad impression, and besides, it may end up being impossible to find a new place, and ruin your reputation on the old one.

Companies (in chronological order)


LinkedIn (Sunnyvale, California)



LinkedIn, in fact, develops quite nice applications, and in the open source community they make a considerable contribution . All the time of our interaction, I was impressed - from corporate culture and engineering solutions. If you compare the position in the ranking of prestige in the iOS market at the beginning and at the end of the whole process, it is this company that rose most strongly in my eyes.

Yelp (San Francisco, California)



The Yelp application looks great: you can feel the subtlety of the production, speaking about a thorough knowledge of the iOS platform. I liked the atmosphere in their office. The building itself is very beautiful, and I would be happy to work as a team with any of the people who conducted the interviews. Compared to other companies on my list, this one is quite small, and this affects everything - but it has a positive effect. The team seems to have worked very well, and the workflows unfold extremely quickly.

Apple (Cupertino, CA)



Apple has long been an integral part of the iOS market (ha ha). I am their mad fan since childhood (well, from the age of twelve for sure). It is thanks to their Mac computers that I generally became interested in programming. The iPhone SDK helped me to create and roll out my first application. When they invited me to have an interview at the office, and then become part of the team - it was like in a dream. I do not even know what else to say about them.

Amazon (Palo Alto, CA)



I would not call Amazon a company focused primarily on mobile development, rather the opposite. However, the position and the team met the criteria that I set for myself at the beginning. The interview in Palo Alto where I was interviewed did not impress me, but this is a temporary shelter and soon they have to move to some building more suited to the style of Amazon. So in this regard, I just had no luck with time. The people with whom I spoke, seemed to me very passionate about their projects. Literally from each company, I heard: “We have an atmosphere here just like startups!”, But at Amazon it really seems to be true.

Facebook (Menlo Park, California)



I was interviewed in their newest building. In general and in general, everything seemed to be cool, but I remember the details of the meeting rather vaguely: it was my fifth day in a row of interviews and the lack of sleep made itself felt. I only remember that I got a lot of pleasure from communicating with employees and that the meeting at dinner turned out to be very informative.

Google (Mountain View, California)



In Google, as I understand it, interviews for a particular position are conducted more or less as a template. I was able to talk with many members of the team working on one of the largest iOS products of the company, but I applied for a position not related specifically to their activities. After the recruitment committee gave the go-ahead, they moved me to the next stage, where they selected the right team, and finally found a suitable option. This is an ooo-oh-very long process, when compared with the pace of negotiations of other teams with whom I spoke. We had to constantly keep other employers informed about how things are going with Google, and Google, respectively, what we came up with with other companies.

Preparation plan


I’ll make it clear: when I started, I was theoretically able to solve most of the tasks from the “Simple” section on Leetcode in thirty minutes and about 25% of the tasks from the “Average difficulty” section, if not set time limits. Solving the tasks from the “Complicated” section for me then was like trying to prove the equality of classes NP and P. In a word, I had a lot of work to do.

To tighten the algorithms, I first turned to the book Cracking the Coding Interview . On Sundays, I got up in the morning, went to a cafe and solved problems for Objective-C there. Having worked a decent amount of tasks from the book (about thirty-five somewhere), I switched to Leetcode and revised the tasks that corresponded to the completed chapters. After several weeks of such studies, I felt that I had already learned the basics quite well, and moved on to the next stage.

Armed with my basic knowledge, I took on the Elements of Programming Interviews . This book is much more complicated than the previous one. There are recommended lesson plans, and I tried not to deviate too much from them. If I remember correctly, one was designed for four weeks of study, and I completed it almost completely. In my opinion, it is critically important to practice solving tasks on a blackboard or to rehearse a telephone interview with someone. Moreover, by “critically important” I mean not only “useful”, but the fact that it should be considered as a mandatory element of the curriculum. I have no doubt that someone will be able to get a job without it, but for myself I have not found a better way to work out the skills.

If someone needs a partner for rehearsal interviews for posts related to iOS, I will be happy to help. You can find me at CS Career Hackers - contact, you see, somehow we will agree, if I am not very busy. And if not, there are other people who are willing to support you. Of course, you will be embarrassed. That's the whole point. If everything worked out by itself, then there was no sense in practicing, right? If during rehearsals at the blackboard or on the phone, you are very embarrassed or feel ill at ease, then you are doing exactly what you need - you will train yourself in advance. Personally, at first I felt very constrained, and then at some point it passed, so the training more than paid off.

After a month of daily review of assignments (two to three hours on weekdays, more weekends), I focused on the “ Popular Interviewing Questions ” section on Leetcode. I did not go through all of them, but went over enough. To prepare for an interview on algorithms, the main thing is to get to the point where you can find a solution right along the interview. Striving to memorize all the solutions is not worth it, it is impossible. Practically all the tasks I encountered during that week of interviews were new for me - but at the same time, they looked like what I had already seen. After all, the development process itself takes place along the same lines. Many tasks repeat each other in general terms, but each case is distinguished by a specific set of restrictions.

What i learned


Below, I will list the conclusions I have drawn for myself, in no particular order. All these recommendations would be very useful to me if I knew them in advance - both those related to the preparation for technical interviews, and those that deal with planning and other nuances that are not related to programming. There is nothing in them that applies only and exclusively to iOS, so I think they are generally suitable for all interviewers in our industry.


Finally


Well that's all! The marathon was one more, but I do not regret anything. I sincerely hope that everything I have written here will help someone to get off the ground in the pursuit of dream work. If someone is interested in tips that are relevant specifically for the iOS segment, I can share, so write in the comments .

If you find this reassuring: this is my second job after college, I have about two and a half years of work experience, no high-profile names in my resumes, I graduated from a very modest college, which didn’t have big companies at the job fair, I started the process training in late April, and the resume began to send in June and July, and finally, in just a few months, I got a job I could only dream of.

Finally, I want to once again advertise the CS Career Hackers community. If you are looking for a place to practice, or just want to communicate with people who are in your position (or are familiar with it from any angle), please do not pass by. It came across to me only a few months after signing the contract, but still, it's great there. Good luck with your preparations!

Source: https://habr.com/ru/post/437484/