📜 ⬆️ ⬇️

Zuckerberg called. Facebook programmer about his experience of interviewing in the US and the workflow on Facebook

Today I want to introduce you to an interview with a programmer, or more precisely, a programmer from Silicon Valley, whose voice is well known to many of you. The leading radio-T technology podcast in Russia, Ksenia Pokrovskaya, has been living in the USA for 5 years, and she has been working on Facebook for almost 3 of them.

In the interview, we talked about her personal experience of finding a job in the United States and the workflow on Facebook.

- I have a classic education for a programmer: I graduated from the Faculty of Software at the Moscow Institute of Electronic Technology. The choice of a specialty was not calculated and fully realized, I went to learn what I liked and did, and it was mathematics. I went to the faculty of software, not having a computer. I earned my first computer after the first course - then my conscious programming began.
The curriculum in Russian universities was not built very efficiently, so after graduation it was quite difficult to immediately find a job as a programmer.

Anticipating this, I decided to join technologies for 4 courses and went to work as a technical support engineer at Parallels, which is now quite well known in Moscow among programmers, and then only 40 people worked for it. I did not support users for long: after about two weeks I became bored, i picked up apache on my computer, started to do static web pages first, then more complicated things: the schedule of our department with the ability to edit. Initiatives of such a plan gave me the opportunity to quickly move from the technical support department to the development department. At first I programmed in Perl, then Python. And then the iPhone came out, I was interested to try to write something for this platform, I studied this platform in my spare time for about a year, and then another transition took place within the company - and I became a mobile developer.
')
- How did you get to the USA?

- The main reason for the move was family circumstances, and I continued working at Parallels, but now at the Seattle office. After some time, I wanted to try my hand at one of the American technology giants, and I began to actively prepare for interviews - and for several years now I have been working on Facebook.

- Before you got an offer from Facebook. How many companies did you interview?

- As in any interview, training is the key to success, so before sending a resume to a dream company, you need to test yourself for interviews with other companies. So I did: since I wanted to work on Facebook, before I went to them, I underwent a few more interviews. And each time my ability to complete technical interviews grew. Of course, I didn’t get a job offer from a couple of first companies, but those interviews that took place at about the same time as Facebook ended up with offers.

- How is the process of interviewing American companies?

- All interviews for programmers in large American technology companies are arranged approximately equally. In startups, there is a slightly different organization of working interviews. If we talk about Apple, Google, Facebook, Amazon, then everything is pretty typical: the interview takes place in three stages. The first is a telephone conversation with a hiring specialist, the second is the so-called phone screen (remote technical check lasting from half an hour to an hour), and the last stage is a face-to-face interview (or, as it is called in the US, onsite interview).

—Tell in more detail how are onsite interviews conducted?

In Facebook, this process has some differences from other companies: we choose a person not in a particular team, but in principle in a company. For example, in Google or Apple you will be interviewed by those people who will work with you in the same team. Questions are chosen by them at their discretion. On Facebook, since we are recruiting people for the company as a whole, the process is fairly calibrated: there is a certain set of tasks that are checked on existing Facebook programmers before getting interviews with candidates.
The first thing that usually amazes a programmer who has just moved from Russia is that he will have to spend a whole working day meeting with the company. In the US, all onsite interviews (usually 5-6 of them) take place on the same day and are divided into 2 types: technical and behavioral. The technical part usually consists of coding interviews (tasks for algorithms and data structures) and a design interview that asks open-ended questions, and the interviewer's goal is to understand how you think and how ready you are to solve complex production problems.
Behavioral interviews on Facebook are designed to recognize whether you will be comfortable working in the company culture.

- How is Facebook making the final decision on candidates?
- Each of the interviewers is a standardized feedback on the candidate. With this, attention is drawn to the so-called red flags. For example, if the candidate coped with the task, but there were moments in the decision process that could interfere with the effectiveness of the work, then the interviewer should write about this in his recall. In addition to a detailed review, the interviewer advises whether or not to hire a candidate. The final decision is made by a special hiring committee based on the feedback and recommendations of the interviewers.

- Knowledge of which programming languages ​​and technologies are preferred on Facebook and in general in Silicon Valley?

- As I have already said, people are recruited on Facebook not for a specific team, but for the company as a whole, and the company has a lot of different projects, so almost any languages ​​and technologies will find application. The interview can be held in any programming language, but, of course, it may happen that the interviewer will not know your language enough to appreciate your in-depth knowledge. Php or Hack is a good option for Facebook, and Python is good for any company. If you are a mobile developer, then the interview will be held on Java for Android or Objective-C / Swift for iOS programmers, and the interviewer will know the exact same language.

- How important is previous experience for a successful interview?

If you put experience and knowledge on the scales, most technology companies definitely make the choice in favor of knowledge. The philosophy is this: for example, you have been in the industry for a long time, but it so happened that you didn’t have any impressive projects, and you have very good knowledge and are capable of more. No one wants to miss such a candidate.
Such an approach, of course, is not ideal, because they usually talk about algorithms and data structures — this knowledge is fresh from recent university graduates, but not from people with experience.

- Imagine that the candidate successfully passed the interview and received an offer from Facebook, but after a couple of months I realized that he was not interested in the project or was uncomfortable working in a team. Can he change the project / team? How does this process work?

- In general, on Facebook for the first 4-6 weeks, a new employee gets into a conditional bootcamp and goes through the “course of a young fighter”, solving real problems that go into production using a mentor. At the same time, a new employee actively communicates with managers of different teams in order to make a choice,
If after some time you realize that this is not your team, not your technology and somehow you are not happy with anything, then the process of searching for a team that was tested in the bootcamp is simply repeated.

- What project are you working on on Facebook?

“I’m working on a library that makes it easy to create a highly optimized UI in iPhone apps.” Ideology is very similar to React, but the framework is absolutely native.

- How is the overall workflow on Facebook: from setting the task to entering the production?

- I will not take to speak for the company as a whole, I will tell about my experience. As already mentioned, I am developing a library and my end users are developers. In this case, the workflow is very much determined by the team itself. We propose and discuss ideas within the team and with our users, decide which ones have a higher priority and form a plan and deadlines according to these decisions. Next, we are already proceeding according to the plan, deciding how many people are needed to carry out the project and how to coordinate all those involved.
Another point that greatly influences the workflow and helps us understand that we are heading in the right direction is collecting metrics. Google, if I'm not mistaken, was one of the first companies to implement this approach. We are actively using it on Facebook.

- Tell us about the main technologies on Facebook?

- Facebook is a huge company with a wide technological stack. For example, the Facebook backend is written in C ++, in Instagram - in Python, and in WhatsApp in Erlang. Of course, each company has flagships, Facebook, for example, has been working on its own PHP dialect for several years, which calls Hack, if very simplified, it is statically typed PHP, this language is quite actively used internally. But the general trend in most large technology companies is that there is always a project that uses any of the more or less popular technologies or languages.

- How fast is the career growth of developers on Facebook? What is the average time for a developer to go from Junior to Senior?

- It is very dependent on the person. I worked with a very talented programmer who grew from Intern to Senior in a year, but this is more of an exception. The path from Junior to Senior is quite realistic in a few years, if we continue to move inside one technological stack. If, for example, you started as a backend developer, but after a couple of years you are tired and you decide to do machine learning, keep in mind that at first, you will most likely not be so helpful to the company, because you are in a period of learning.

- Tell us about your career plans. You already work in the company of your dreams. What's next?

- I think that working on Facebook is not the final stage. Now I'm just wondering where and how to develop further. At the moment, I am engaged not only in programming, but also in creating effective interaction between the teams that are involved in my project, my position calls the tech lead and it is at a crossroads between the managerial development path and the programming one.
If soon, I understand that the organization of processes is more interesting to me, then I will begin to look towards the manager’s position, perhaps, on the contrary, I will again plunge into programming to the full. While programming is clearer for me and the pleasure of the result is greater. I wrote the code, discussed it on the review, zakommitil - the result of each step is noticeable and gives a little bit of the work done, but in the case of coordinating and organizing other people, you can invest a lot of effort, but not get the result for reasons independent of you. In general, this is an unresolved question for me now.

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


All Articles