How I interviewed Zynga

    Articles again began to appear on Habr on how to pass interviews on a position of the programmer. Material from them is useful to applicants in the same way that textbooks are useful to students during the session. Master Volume Mat. Analysis and, if you get to that exam, get a five.

    It is much more interesting to read real stories of people who describe their experience in interviewing a particular well-known company. What did they ask, what didn’t they ask, what was the atmosphere, how much was the interview going on? Such data is much more useful than “but I’ll still be jagged, maybe they ask.”

    So, I want to talk about how Zynga representatives came to Moscow in search of the right people. About his experience of communicating with them, about mistakes and conclusions made.

    Well, and a picture for the seed.




    So, in late spring of this year, a banner hung on the DTF , which many probably saw. Zynga has swallowed up all the resources of the States and is now hunting people in snowy Russia. If memory serves me right, they focused on PHP and C ++ programmers. I thought that the worse I am, the more the client of most of their games is written in Flash. Surely, they also need flashers.

    I must say right away that I was more interested in how far I go and what will come of it than the real work at Zynga. First screenshot. H-empty empty cans from Red Bull there for a reason. Secondly, I do not like dogs.

    Interestingly, at the time, at the request “work at zynga” in the first three there was a link to my blogwith the above picture. Honestly, I was a little afraid if this would turn out to me sideways.

    It is strange that nobody wrote about this event (almost) anywhere. I do not know anyone who was eventually taken. And there were about 50 people at the second (full-time) stage of the interview. How much they still weeded out during the conversation on Skype. Surely, not only YoungSkipper from Khabravchan was at that interview .

    Preliminary interview

    The main recruiting was a certain Mathias Connot (he even started a profile on moikrug about this ). In the mail I talked only with him. Somewhere I read that he once once had successfully hunted Russians in Microsoft.

    They liked my brief summary, Matt “recorded” me on Skype for an interview on a certain day and time, gave me a portion of information about the company and a promotional video (More attentively at 1:57). At the appointed time, I got a call from Luke Rajlich , FarmVille CTO.

    Mistake number 1 - no matter how well you know English American, before talking on the phone / skype with a native speaker, talk to the mirror, watch a movie in English - try to get used to foreign speech.

    I worked in New York for a while. I have extensive experience with Americans. But all the same, during the interview, 70 percent of my brain was completely allocated to understand the interlocutor and correctly build the answer. Including due to imperfect communication (at its end). Plus, I was a little worried.

    Luke ran over my resume and began to ask questions:
    • Tell about yourself and the projects in which I participated. Here it was necessary to quickly and briefly list several of their most interesting / complex projects and talk about their role in them.
    • A few questions about Flash. Multithreading, socket connections, rendering features, manual control of mouse events with translucent bitmaps are mainly flash game development-specific issues.
    • Then he went to the side. Asked about the differences between the Java type system and ActionScript 3, how Strong Typing differs from Static Typing. I also tried to confuse this whole thing with Duck Typing, which partially worked out.
    • I jumped in C ++ and asked about Templates. Why would you suddenly? I am very far from the pluses, but I know what I said with examples from other languages.
    • Asked to talk about MVC .
    • He asked why polymorphism is needed, what is Abstract Factory and some other pattern. I do not remember.
    • I asked if I was dealing with SQL and MySQL in particular .

    25 minutes passed unnoticed. For the remaining five minutes, I asked Luc several questions - not every day I can talk to CTO FarmVille. During this time, I found out that they mainly use Linux + Apache + MySQL + PHP; that Erlang and Scala are interesting, but you will not find developers on them; that they do not protect their games, because it is useless and (for the most part) not necessary. He laughed when I told him about 3 identical complete clones in Russian social networks from Facebook.

    Mistake number 2 - you need to end up being nervous. It seems he’s not small already, he passed exams, he was at interviews, he spoke at conferences, and recorded podcasts. But still.

    Error number 3 -do not answer immediately. Think about it. Even simple questions like Strong Typing and Static Typing can be confused. Do not be afraid to correct your mistakes. After a couple of minutes, on another question, I realized my fatal mistake and said, they say, I was very wrong there, in fact, it’s like that.

    Mistake number 4 - read the GoF book on patterns already. Someone will say that nafig is not necessary, and so everything is clear. But I still did not know the exact definition of Abstract Factory (what the interviewer wanted from me), but told a slightly different type of factories and how we use them in our work. Sometimes, people want to hear exactly the definitions from you.

    As a result of the conversation, I was very dissatisfied with myself. All the parsed errors did their job, and I would probably not have hired myself like that.

    But no, after some time I received a letter from Matt that they want to see me personally in Moscow at the second stage of the interviews.

    Training

    I had a month before the second interview, during which I read the Internet through laziness in search of information about Zynga, about possible questions and tasks. Judging by the advice on the Internet, only sishniks go for interviews and they are all forced to mint the names of data structures for speed and write on paper all known sorting algorithms. I absolutely did not know what to expect.

    I won’t lie, I thought for a long time what would happen if they offered me a job. But I already worked for some time in the States, I broke my pink glasses for a long time and I see the world closer to reality. Zynga seemed to me not the best place to work, but it was still interesting to go further.

    Second phase

    According to Matt, the plan was as follows - according to the results of the interview, they select 40-50 people, they travel as a team to Moscow, where they personally talk with everyone 10 people a day (5 in the morning, 5 in the evening).

    At the appointed time, I drove up to the Marriott Royal Aurora hotel in the center of Moscow, where the team of interviewers was located. We were about 5 or 6 in the morning. Matt led us to the meeting room, where I met other candidates. Mostly sishniks and one PHP'ist came across with me. Everyone had a strange mood, they say, it’s better there is a PHP'ist than a sishnik here.

    A funny incident happened right there. A young man came in and stared at us silently. We stared at him.
    - May ah city sir? He asked and pushed back his chair.
    - Sure, why not? - for some reason I answered, and we continued to stare at each other for another 10 seconds, until I realized.
    - And what do we say in English? I asked.
    - Oh, are you also in an interview? And I thought you were going to ask me now.
    Neighing. But you had to start asking.

    Then Matt told us about the company and how to properly conduct the interview. I think it will be useful to everyone:
    • Take your time, listen to the question, ask again if something is not clear. A decision can only be made by making sure that the task is being solved.
    • Do not try to impress the interviewer with the complexity of their decisions. To start with a simple one, so that in the end not to get confused.
    • Do not sit silently, even if you cannot find the answer. Reflect out loud, show the process of thinking about a decision. A person is interested not so much in the answer to the question as how you came to him.

    The interviews were constructed as follows. Each applicant has his own room with a table, two chairs, water, a window and a toilet. For 20-30 minutes one of the “examiners” comes in and conducts his part of the interview. On sheets of paper you write algorithms in your favorite language, draw data schemes and machine interactions ... Then there is a break for 15 minutes. At the same time, as Matt said, it is planned from 3 to 5 interviews with each that if you are kicked out after the third, then this, they say, does not mean anything. But we know ...

    In the rooms were large illustrated books about the cities in which the company’s offices were located. It was very interesting to look at pictures at intervals.

    Mistake number 5 - try to find out in advance how the interview will be held, what kind of specialists the company needs, who will conduct the interview.

    It was very unexpected for me that not a single interviewer asked a single specific question, not just with Flash, but with a general programming language or technology . I honestly did not think that they would interview me for the position of a C ++ developer. Which of me is a C ++ developer? The brain was filled with various Flash-specific information, and it could have crammed something more useful.

    First interview

    Immediately error number 6 , which is not something that would be an error, I just start to get dumb when someone looks at me in a piece of paper or in a monitor. I can’t do practically anything. This failed me many times at school, at the university for an exam, at work, and now here. I know many with a similar problem. You need to learn somehow and try to fight it. No one knows that after the interview you can write this algorithm, which you’ve steamed for an hour, in 15 seconds.

    The first American (oh, I’m bad at names) introduced himself as a jack of all trades, saying that he does the server, and web muzzles, and flash games. He was interested in the practical possibilities of implementing and optimizing server-side path searches for a huge number of autonomous agents. In other words, here the kueva mocha of mobs spawn and everyone needs a way to find (and support) to the player.

    I remembered everything that I had ever done and read: the implementation of A *; how from his work to partially cache the results for other mobs; get waypoints on the map; various other options for preprocessing space; merge mobs into clusters with self-organization inside (so that it is not so boring); throw part of the calculation to the client (within reasonable limits) in the end ... The

    American looked pleased(which they do well, even when in his heart he hates you) . I set the task for trees, a walk around in width. Then I got the sixth mistake. Stupid about five minutes before the end of time. The interviewer left, but said that I could throw off the decision, if that, with the following. Needless to say, as soon as the door slammed shut, I immediately issued an algorithm ...

    Error number 7 - how many can be repeated, take your time! Even Matt warned about it. Understand the problem, consider the simplest solution, write it. Look at an already running algorithm, and immediately understand how to improve and optimize it.

    Second interview

    The next person was interested in what projects I participated in. He talked mainly about social accounts (in the end, I get a job in a gaming company!). In the second half, he asked me about data structures. I set the task to find the loop in the Linked List. Returning to error number 7 , I, as a fool, decided to show off my knowledge of not the most obvious algorithms, where I got stuck in the following questions when it was necessary to work with their results. Over the past five minutes, he once again stumbled, but at half-time he still wrote the task and waited for the next visitor.

    The third interview.

    After the break, CTO Zynga Cadir Lee came in . If, who the rest were, I did not quite understand, then Kadir was clearly out of the group of young cheerful guys. He was more like a lecturer at the university. Then I felt like a first-year student and wiped cold sweat from my hands on my pants.

    First, he checked the solution to the previous problem. I asked a couple of times what for, I did so, and again I cursed myself for mistake number 7 . This was followed by a very interesting and very unexpected question. I was completely unprepared for this. He asked me to tell you about the framework that I use at work as if he is getting a job with us in a company.For some reason I decided not to talk about current developments (probably considering them insignificant; and the team is small now), but about the framework on which we made games in TimeZero. Who knows, he already laughs at the futility of this venture in these conditions. In general, it turned out to me very badly.

    Then he asked to design tables (sic!) For Jira-like software. This is exactly what I did not expect, but still began to rumor about entities and connected them through joins in tables (which most likely looked very miserable, since the last time I did something like that, sooooo long ago). Looking at my worthless attempts, Kadir decided to give me something easier - design a game in the Rubik's Cube. With this I coped tolerably, given all the pressure.

    Error number 8 -try to ignore the interviewer, do not be distracted by his personality, fame and gaze. This way you can make far fewer mistakes and make yourself a much smaller idiot.

    Expectation

    Half-speaking member of the team Alex Sergienko came to me (as it turned out, his parents are Russian, and he is for the first time in Russia, but he can speak Russian somehow) and said that I will not have more interviews. What does this mean was understandable and true, but was I really so bad? It seemed to me that the first two turned out very well.

    I was handed a bag with stupid gifts and escorted to the exit. By the way, that’s where the secret came from where I got this $ 10 Game Card in CityVille (8

    Two weeks later they sent a standard letter, they say you are an excellent candidate, but so far we have no vacancies for you.

    conclusions

    I was almost not upset, but made some conclusions.

    Candidates have an interesting mood - “it’s better there with PHP, than here with Sishnik”. As if TAM is a pink marmalade country. Apparently, work will have to be healthy. In cramped cues on stooly little chairs. Dogs run everywhere. Have you forgotten the collection of cans from Red Bull yet?

    However, it is not very clear who they were looking for specifically. It seems that they needed some kind of universal biorobots. Theoretical and practical language-independent individuals who can be thrown to any task. Whether it's a backend in PHP, a huge parallel database in C ++ or a game client in AS3. I don’t know how it is now, but in my time in Russia we did not receive such an education. Everyone studied in practice and (possibly) was very successful in their field.

    I did not expect some questions. Then he sat thinking for a while, for example, over a proposal to talk about the framework used by the company.

    In some aspects there was a better opinion of myself. It became sad that I can’t grow up. I decided to grow in breadth and jump on various other technologies.

    It is correct that I read various theoretical books. Knowledge came in handy. But, of course, it’s sad that Flash is such a children's toy. I bet that 90% of flashers never used non-standard data structures, and they are not able to write a complicated algorithm from the category of classical ones on these structures. There are also PHP’s and Java Enterprise developers. There is, of course, the question “Why?” .

    In general, one practical interview gave me several orders of magnitude more experience and reason to think than reading articles on how to conduct an interview, and what they might ask ... Or they might not.

    Interesting from comments

    • An interview with a large company (regardless of the results) is a free career consultation. ooprizrakoo
    • I found another one a few full-time member of the interview: zloe_zlo golova Invented jjlol
    • zloe_zlo advised against treating the interview as an exam. But, nevertheless, the setting of a specific interview was very similar to the exam. Passing an exam also involves commenting on your decisions and voicing thoughts. The only thing is, yes, a more one-sided conversation.
    • YoungSkipper said that his telephone interview was not at all technical, and in the second part he was asked logical tasks. I had no logical tasks, although I know all the popular ones.
    • Dehumanizer cited a letter from a personal correspondence with Mathias Connot.

      Mat Connot ✆ to me
      show details Apr 17
      Hi <my real name>,

      In my years as a technical recruiter for a couple different world class software organizations I can tell you that the single most important skill will be a great understanding of computer science fundamentals . Having a solid grasp of the fundamentals and maintaining it for yourself throughout your entire career will always serve you well. It's not as much about language or tech, it's about having the algorithms and knowing complexity etc.

      So many developers fall back on libraries and stop paying attention to the underlying math, complexity, etc. and that's always a big mistake.

      At least that's my .02 cents.
    • Comment by Mathias Connot about the notorious Red Bull picture:
      - Great! Funny you ask, I answer that question pretty frequently. ;-) It's actually fairly easy to discuss. Glassdoor is not the best tool with which to evaluate a company, rather a better way would be to
      ask questions of current happy employees (like myself) rather than employees who joined and / or left the company when we were a VERY young start-up where work life balance was much more of an issue. It's
      true that work-life balance has been an issue for us. When we were just starting out and going from less than 10 employees and then adding staff and jobs and work at an unimaginable clip people were
      pushed much harder as we scaled from $ 0 revenue to 1 billion + in revenue. I'm not sure anyone has ever managed to do that in just 4 years before and in the early couple years before we were able to get
      enough people working on jobs and projects people were pushed pretty hard. It was a matter of just not having enough brilliant people to keep up with the growth. We've begun to address that over the
      last 12 months t
      hough and I'm happy to say that we're MUCH better at it today for a number of reasons. 1, hiring has increased to where we're much closer to work / worker balance. We've gone from 500 employees in early
      2010 to 2200 employees today. We have much more capacity and people are not having to cover nearly as much ground by themselves. We've also made a very conscious effort to listen to our employee
      feedback and take steps to build a much stronger culture of work-life balance.

      I believe that if you were to check Glass Door in a couple of years you'd see much different statistics. :-)


    Update : thanks to everyone who sent error messages and typos.

    Also popular now: