원문: http://www.looah.com/article/view/2070
I interviewed at five top companies in Silicon Valley in five days, and luckily got five job offers
실리콘 밸리의 잘나가는 5개 기업과 인터뷰를 봤는데 다 붙고만 썰
- In the five days from July 24th to 28th 2017, I interviewed at LinkedIn, Salesforce Einstein, Google, Airbnb, and Facebook, and got all five job offers.
- 때는 바야흐로 2017년 7월 24일부터 28일의 5일간, 나는 링크드인, 세일즈포오스, 구글, 에어비앤비, 그리고 페이스북에 면접을 봤고 다 붙어버리고 말은 것이다.
- It was a great experience, and I feel fortunate that my efforts paid off, so I decided to write something about it. I will discuss how I prepared, review the interview process, and share my impressions about the five companies.
- 엄청난 경험이었고 남은 생의 운을 다 써버린 기분이라, 뭔가 써야겠다고 생각했어. 어떻게 인터뷰를 준비했고 진행되었는지 좀 적어보고 다섯 회사에 대한 내 인상도 남겨보려고 해.
How it started
역사는 이렇게 시작되었다
- I had been at Groupon for almost three years. It’s my first job, and I have been working with an amazing team and on awesome projects. We’ve been building cool stuff, making impact within the company, publishing papers and all that. But I felt my learning rate was being annealed (read: slowing down) yet my mind was craving more. Also as a software engineer in Chicago, there are so many great companies that all attract me in the Bay Area.
- 첫 직장인 그루폰에 3년간 다니고 있었다 – 멋진 팀과 짱짱 프로젝트가 가득했지. 우리는 쿨한걸 만들었고 회사에도 좋은 영향을 줬을 뿐 아니라, 페이퍼도 내고 그랬음. 근데 내가 성장하는 속도가 좀 느려지는 기분이 들었고 욕구 불만인 상황. 그리고 시카고에 있어서 그런지 베이 에리아에 있는 큰 회사들에 좀 끌리기도 했음.
- Life is short, and professional life shorter still. After talking with my wife and gaining her full support, I decided to take actions and make my first ever career change.
- 인생이란 짧은 것인데다가 내가 프로로 일할 수 있는 기간은 더 짧지. 아내랑 얘기한 끝에 그녀의 *헌신적인* 도움을 받아 결정했음. 이제부터 행동해서 경력을 바꿔보자고.
Preparation
주운비이
- Although I’m interested in machine learning positions, the positions at the five companies are slightly different in the title and the interviewing process. Three are machine learning engineer (LinkedIn, Google, Facebook), one is data engineer (Salesforce), and one is software engineer in general (Airbnb). Therefore I needed to prepare for three different areas: coding, machine learning, and system design.
- 일단 난 머신 러닝에 관심이 있었는데 5개 회사가 그 역할을 부르는 이름이 좀 달랐고 인터뷰 과정도 달랐음. 리크드인, 구글, 페이스북, 이 3개 회사는 ‘머신 러닝 엔지니어’ 라고 불렀고, 세일즈 포스는 ‘데이터 엔지니어’ 그리고 에어비앤비는 그냥 ‘소프트웨어 엔지니어’라고 부르더라고. 그래서 3개의 다른 분야에 대해서 준비해야 했음. 코딩, 머신 러닝 그리고 시스템 디자인.
- Since I also have a full time job, it took me 2–3 months in total to prepare. Here is how I prepared for the three areas.
- 이미 풀타임으로 일하고 있어서 준비하는데 2-3개월이나 걸렸네. 이제부터 3개 분야에 어떻게 준비했는지 써내려가려고 함.
Coding
코딩
- While I agree that coding interviews might not be the best way to assess all your skills as a developer, there is arguably no better way to tell if you are a good engineer in a short period of time. IMO it is the necessary evil to get you that job.
- 일단 난 코딩 인터뷰가 개발자로써 필요한 기술을 가지고 있는지 가늠하는 좋은 방식이라고 생각하진 않지만, 짧은 시간 동안 존잘러인지 아닌지 알아내는 마땅한 다른 방법도 없지 않나. 아무튼 내 생각엔 필요악이지만 해야한다고 봄.
- I mainly used Leetcode and Geeksforgeeks for practicing, but Hackerrank and Lintcode are also good places. I spent several weeks going over common data structures and algorithms, then focused on areas I wasn’t too familiar with, and finally did some frequently seen problems. Due to my time constraints I usually did two problems per day.
- 나는 Leetcode 랑 Geeksforgeeks 로 주로 연습했는데 Hackerrank 랑 Lintcode 도 좋은것 같음. 몇 주간은 데이터 구조랑 알고리즘을 주로 파다가 좀 안 맞는거 같아서 그냥 자주 나오는 문제들을 했음. 바쁘니까 하루에 2개 정도만 풀었고.
- Here are some thoughts:
- 요런 생각이 들었음.
- - Practice, a lot. There is no way around it.
- - 연습 말고는 답 없음. 많이 해야함.
- - But rather than doing all 600 problems on Leetcode, cover all types and spend time understanding each problem thoroughly. I did around 70 problems in total and felt that was enough for me. My thought is that if 70 problems isn’t helpful then you may not be doing it right and 700 won’t be helpful either.
- - Leetcode 에 있는 600개를 다 해보는 것 대신에 다양한 문제들을 경험해보고 각각의 문제를 완전히 이해하는게 중요함. 나는 합쳐서 70문제 정도 했는데 대충 충분했던 듯. 70개를 했는데도 도움이 안되었다면 제대로 한 게 아닐꺼고 그 상태로는 700개를 해봐도 도움안될듯.
- - Go for the hardest ones. After those the rest all become easy.
- - 제일 어려운 것부터 해보면 나머지는 쉬워짐.
- - If stuck on one problem for over two hours, check out the solutions. More time might not be worth it.
- - 한 문제에 두 시간이나 붙잡혀 있을바에는 그냥 답을 보는게 낫다. 더 해봤자 소용ㄴㄴ
- - After solving one problem, check out the solutions. I was often surprised by how smart and elegant some solutions are, especially the Python one-liners.
- - 한 문제 풀고 나서는 답을 확인하자. 가끔 파이썬 원라이너처럼 스–마트하고 엘–레강스한 답들이 있어서 놀랬음.
- - Use a language that you are most familiar with and that is common enough to be easily explained to your interviewer.
- - 가장 익숙한 언어로 풀어야 좋다. 그리고 그 언어가 면접관에게 쉽게 설명될 수 있을 만큼 대중적인 언어로.
System design
시스템 디자인
- This area is more closely related to the actual working experience. Many questions can be asked during system design interviews, including but not limited to system architecture, object oriented design,database schema design,distributed system design,scalability, etc.
- 요 부분은 실제 일하는 경험하고 관련이 깊다. 면접을 보는 동안 엄청 많은 질문이 있을 수 있는데 시스템 설계 뿐만 아니라 객체 지향 디자인, 데이터베이스 스키마 디자인, 분산 시스템 디자인, 스케일 등등 암튼 다양하고 넓음.
- There are many resources online that can help you with the preparation. For the most part I read articles on system design interviews, architectures of large-scale systems, and case studies.
- 온라인에 워낙 좋은게 많은데 내가 주로 본건 시스템 디자인 인터뷰 들이랑 대형 시스템 설계, 그리고 케이스 스터디 등이었음.
- Here are some resources that I found really helpful:
- 아래에 꿀링크 투척했으니 참고.
- - https://www.hiredintech.com/classrooms/system-design/lesson/52
- - https://www.hiredintech.com/classrooms/system-design/lesson/52
- - http://tutorials.jenkov.com/software-architecture/index.html
- - http://tutorials.jenkov.com/software-architecture/index.html
- Although system design interviews can cover a lot of topics, there are some general guidelines for how to approach the problem:
- 시스템 디자인 면접이 다양한 주제를 다루기는 하는데, 그런 문제들에 어떻게 접근하는가에 대한 보편적인 족보가 있음.
- - Understand the requirements first, then lay out the high-level design, and finally drill down to the implementation details. Don’t jump to the details right away without figuring out what the requirements are.
- - 일단 요구 사항을 이해한 다음에 하이레벨 디자인을 하고, 세부 구현 사항으로 파고 내려와야 함. 요구 사항도 이해 못하면서 디테일 파면 망함.
- - There are no perfect system designs. Make the right trade-off for what is needed.
- - 완벽한 시스템 디자인이란 없음. 항상 적절한 트레이드 오프를 만들어야 함.
- With all that said, the best way to practice for system design interviews is to actually sit down and design a system, i.e. your day-to-day work. Instead of doing the minimal work, go deeper into the tools, frameworks, and libraries you use. For example, if you use HBase, rather than simply using the client to run some DDL and do some fetches, try to understand its overall architecture, such as the read/write flow, how HBase ensures strong consistency, what minor/major compactions do, and where LRU cache and Bloom Filter are used in the system. You can even compare HBase with Cassandra and see the similarities and differences in their design. Then when you are asked to design a distributed key-value store, you won’t feel ambushed.
- 말마따나, 시스템 디자인 면접을 준비하는 가장 좋은 방법은 닥치고 앉아서 시스템을 설계해보는거라고 봄. 최소한으로 일만 하지 말고, 사용하고 있는 도구들, 프레임워크 그리고 라이브러리들을 깊이 들어가보는게 좋음. HBase를 예로 들자면, 클라이언트 써서 DDL 돌리고 데이터 받아오는거 말고 전체 설계를 이해하려는 노오력을 해보는 것. 어떻게 읽고 쓰는지, HBase 가 어떻게 강력크한 데이터 컨시스턴시를 보장하는지, minor/major 컴팩션이 뭔지 그리고 LRU 캐시랑 블룸 필터가 시스템의 어디에서 쓰이고 있는지 같은거. HBase 랑 카산드라 같은거랑 비교해서 어떤 설계가 비슷하고 뭐가 다른지 찾아보기도 하고. 그 정도 하면 분산 키-밸류 스토리지 얘기할 때 후달리진 않을꺼임.
- Many blogs are also a great source of knowledge, such as Hacker Noon and engineering blogs of some companies, as well as the official documentation of open source projects.
- 블로그에도 좋은 글이 쌓여 있음. Hacker Noon 이나 회사들의 엔지니어링 블로그도 그렇고. 그리고 오픈소스 프로젝트들의 공식 문서들도 좋음.
- The most important thing is to keep your curiosity and modesty. Be a sponge that absorbs everything it is submerged into.
- 호기심과 겸손함 없이는 아무 것도 안되니까 항상 스폰지 같은 자세로 모든걸 빨아들이도록.
Machine learning
ㅁㅓㅅㅣㄴ ㄹㅓㄴㅣㅇ
- Machine learning interviews can be divided into two aspects, theory and product design.
- 머신 러닝 면접은 보통 이론과 제품 디자인 두 개로 나뉘었다.
- Unless you are have experience in machine learning research or did really well in your ML course, it helps to read some textbooks. Classical ones such as the Elements of Statistical Learning and Pattern Recognition and Machine Learning are great choices, and if you are interested in specific areas you can read more on those.
- 머신 러닝 전문가가 아니라면 일단 교과서부터 보는게 도움이 됨. Elements of Statistical Learning 이랑 Pattern Recognition and Machine Learning 이 고전이자 베스트임. 그 이후에 관심있는 분야를 더 파면 됨.
- Make sure you understand basic concepts such as bias-variance trade-off, overfitting, gradient descent, L1/L2 regularization,Bayes Theorem,bagging/boosting,collaborative filtering,dimension reduction, etc. Familiarize yourself with common formulas such as Bayes Theorem and the derivation of popular models such as logistic regression and SVM. Try to implement simple models such as decision trees and K-means clustering. If you put some models on your resume, make sure you understand it thoroughly and can comment on its pros and cons.
- 무엇보다 bias-variance trade-off, overfitting, gradient descent, L1/L2 regularization,Bayes Theorem,bagging/boosting,collaborative filtering,dimension reduction 같은 기본 컨셉을 이해해야 함. 베이즈 정리와 같은 일반적인 수식과 logistic regression과 SVM 같은 대중적인 모델의 파생형들이 익숙해지는 것도 필요하고. 결정 트리나 K-means 클러스터링 같은 단순한 모델은 구현해보는 것도 좋다. 이력서에 어떤 모델을 써넣으려면, 완전히 이해해서 장점과 단점도 술술 얘기할 정도가 되야 함.
- For ML product design, understand the general process of building a ML product. Here’s what I tried to do:
- 머신러닝 제품 디자인에 대해서는 일반적인 프로세스에 대한 이해가 일단 필요하다. 나는 이런걸 했었는데,
- - Figure out what the objective is: prediction, recommendation, clustering, search, etc.
- - 목적이 뭔지 파악해야 한다. 예측인지 추천인지 클러스터링인지 검색인지 등등.
- - Pick the right algorithm: supervised vs unsupervised, classification vs regression, generalized linear model / decision tree / neural network / etc. Be able to reason about the choice.
- - 적합한 알고리즘을 고른다. 지도형인지 아닌지, 회기인지 분류인지, generalized linear model / decision tree / neural network 등등 선택에 대해 그 이유를 말할 수 있어야 한다.
- - Pick / engineer relevant features based on available data.
- - 사용할 수 있는 데이터에 기반해서 기능을 골라야 한다.
- - Pick metrics for model performance.
- - 모델 퍼포먼스에 맞춰 메트릭을 고른다.
- - Optionally, comment on how to optimize the model for production.
- - 거기에 대해서 실제 서비스를 위해서 모델을 어떻게 최적화 할 수 있는지 얘기하면 좋고.
- Here I want to emphasize again on the importance of remaining curious and learning continuously. Try not to merely using the API for Spark MLlib or XGBoost and calling it done, but try to understand why stochastic gradient descent is appropriate for distributed training, or understand how XGBoost differs from traditional GBDT, e.g. what is special about its loss function, why it needs to compute the second order derivative, etc.
- - 아까도 얘기했지만 호기심을 가지고 계속 공부하는게 중요하다. 중요하니까 두 번 얘기한다. Spark MLlib의 API나 XGBoost 등을 그냥 쓰기만 하지 말고, stochastic gradient descent가 왜 분산 훈련에 적합한지, XGBoost가 전통적인 GBDT 랑 비교해서 뭐가 다른지 이해하려고 해봐라. 예를 들자면 그것의 loss function이 뭐가 특별한지 2차 미분 등을 왜 계산해야 하는지 등등.
The interview process
인터뷰 과정
- I started by replying to HR’s messages on LinkedIn, and asking for referrals. After a failed attempt at a rock star startup (which I will touch upon later), I prepared hard for several months, and with help from my recruiters, I scheduled a full week of onsites in the Bay Area. I flew in on Sunday, had five full days of interviews with around 30 interviewers at some best tech companies in the world, and very luckily, got job offers from all five of them.
- 보통 링크드인을 통한 HR팀의 메세지에 답장하고, 추천을 요구하는 것으로 시작했다. 좀따 적겠지만 스타트업 면접에 떨어지고 나서, 몇 달간 혹독하게 준비하고 리크루터의 도움을 받아서 베이 에리아에서 일주일 내내 온사이트 면접을 잡았다. 일요일에 날아가서 5일 내내 **세계 최고** 회사들의 30명의 면접관들과 면접을 보고, 5개 회사로부터 모두 **합 격** 통보를 받았다.
Phone screening
폰 스크리닝
- All phone screenings are standard. The only difference is in the duration: For some companies like LinkedIn it’s one hour, while for Facebook and Airbnb it’s 45 minutes.
- 전화 면접은 다들 하고 있다. 진행하는 시간이 좀 다른데, 링크드인은 한 시간, 페이스북과 에어비앤비는 45분이었다.
- Proficiency is the key here, since you are under the time gun and usually you only get one chance. You would have to very quickly recognize the type of problem and give a high-level solution. Be sure to talk to the interviewer about your thinking and intentions. It might slow you down a little at the beginning, but communication is more important than anything and it only helps with the interview. Do not recite the solution as the interviewer would almost certainly see through it.
- 전화 면접에서 기회는 한 번 뿐이고, 시간이 금이기 때문에 얼마나 익숙한지가 중요하다. 어떤 종류의 문제인지 빨리 알아채고 좋은 답을 내놔야 한다. 생각과 의도를 면접관에게 잘 설명해야 한다. 처음에 급하지 않고 차분하게 하되 커뮤니케이션이 생명임을 잊지 말자. 면접관도 다 알기 때문에 뻔한 답을 줄줄 읇을 필요는 없다.
- For machine learning positions some companies would ask ML questions. If you are interviewing for those make sure you brush up your ML skills as well.
- 머신 러닝 포지션에 대해서 회사는 응당 머신 러닝 질문을 해올꺼다. 그러니까 머신 러닝 스킬을 갈고 닦도록.
- To make better use of my time, I scheduled three phone screenings in the same afternoon, one hour apart from each. The upside is that you might benefit from the hot hand and the downside is that the later ones might be affected if the first one does not go well, so I don’t recommend it for everyone.
- 시간을 잘 쓰기 위해서, 3개의 전화 면접을 같은 날 오후에 한 시간 간격으로 잡았다. 요렇게 잡으니 죽 이어서 하는 기분이라 좋았지만, 앞선 면접을 망치면 뒤에도 영향을 받으니, 추천하진 못하겠음.
- One good thing about interviewing with multiple companies at the same time is that it gives you certain advantages. I was able to skip the second round phone screening with Airbnb and Salesforce because I got the onsite at LinkedIn and Facebook after only one phone screening.
- 여러 회사랑 면접을 동시에 하니까 좋은 점이 있었다. 에어비앤비와 세일즈포스 2차 전화 면접은 링크드인이랑 페이스북 온사이트 면접으로 대신할 수 있었다.
- More surprisingly, Google even let me skip their phone screening entirely and schedule my onsite to fill the vacancy after learning I had four onsites coming in the next week. I knew it was going to make it extremely tiring, but hey, nobody can refuse a Google onsite invitation!
- 구글은 더 놀라운데, 4차례의 온사이트 면접이 있음을 알고는 전화 면접을 다 제끼고 바로 같은 주에 면접을 잡아줬다. 암만 피곤해도 구글 면접 초대를 거부할 사람이 있다면 거수 바란다?
Onsite
온사이트
- 링크드인
- This is my first onsite and I interviewed at the Sunnyvale location. The office is very neat and people look very professional, as always.
- 써니베일에서 봤던 첫번째 온사이트 면접이었다. 사무실은 쾌적하고 사람들은 언제나처럼 프로페셔–널해 보였다.
- The sessions are one hour each. Coding questions are standard, but the ML questions can get a bit tough. That said, I got an email from my HR containing the preparation material which was very helpful, and in the end I did not see anything that was too surprising. I heard the rumor that LinkedIn has the best meals in the Silicon Valley, and from what I saw if it’s not true, it’s not too far from the truth.
- 각 세션은 한 시간씩 걸렸다. 코딩 질문은 평범했는데 ML 질문은 ... 장난 없었다. 이메일로 받은 면접 준비를 위한 자료가 꽤 도움이 되었다. 뭐 놀랄만큼 새로운 것은 없었다. 링크드인 식사가 실리콘 밸리 갑이라고 들었는데 진실로 그러했다고 한다.
- Acquisition by Microsoft seems to have lifted the financial burden from LinkedIn, and freed them up to do really cool things. New features such as videos and professional advertisements are exciting. As a company focusing on professional development, LinkedIn prioritizes the growth of its own employees. A lot of teams such as ads relevance and feed ranking are expanding, so act quickly if you want to join.
- 마이크로소프트가 사준 덕분에 재무 파탄에서 벗어난 링크드인은 쿨한 걸 할 수 있게 되었다. 비디오와 전문 광고 같은 기능들이 그럴싸하다. 전문성 개발에 초점을 둔 기업 답게, 링크드인은 직원 성장이 최우선이었다. 광고 관련이나 피드 랭킹 등의 팀이 성장하고 있으니까 관심있는 분들은 빠르게 고고.
- Salesforce Einstein
- 세일즈포스 아인슈타인
- Rock star project by rock star team. The team is pretty new and feels very much like a startup. The product is built on the Scala stack, so type safety is a real thing there! Great talks on the Optimus Prime library by Matthew Tovbin at Scala Days Chicago 2017 and Leah McGuire at Spark Summit West 2017.
- 존잘러에 의한 존잘러 프로젝트. 스타트업 같은 새 팀이었음. 제품은 스칼라 스택에서 만들어졌고 타입 세이프티를 드디어 현실로 느낌. Great talks on the Optimus Prime library by Matthew Tovbin at Scala Days Chicago 2017 and Leah McGuire at Spark Summit West 2017.
- I interviewed at their Palo Alto office. The team has a cohesive culture and work life balance is great there. Everybody is passionate about what they are doing and really enjoys it. With four sessions it is shorter compared to the other onsite interviews, but I wish I could have stayed longer. After the interview Matthew even took me for a walk to the HP garage :)
- 나는 팔로 알토 오피스에서 면접을 봤는데, 응집력 있는 팀웍도 워라밸도 좋았음. 각자 하는 일에 열정도 대단하고 즐기고 있었음. 4번의 짧은 면접을 봤는데 더 머무르고 싶을 정도였음. 면접관인 Matthew 는 HP garage 에 나를 데려가 주기도 했음.
- 구—글
- Absolutely the industry leader, and nothing to say about it that people don’t already know. But it’s huge. Like, really, really HUGE. It took me 20 minutes to ride a bicycle to meet my friends there. Also lines for food can be too long. Forever a great place for developers.
- 다들 알다시피 업계 리더라 설명할 것이 없음. 근데... 진짜 진짜 진짜 넘나 크다. 친구 만나는데 자전거로 20분 걸렸음. 밥줄도 엄청 길고. 개발자들의 천국.
- I interviewed at one of the many buildings on the Mountain View campus, and I don’t know which one it is because it’s HUGE.
- 마운틴뷰에 산재한 오피스중 어딘가에서 면접을 봤는데 그냥 엄청 크다는거 말고 잘 모르겠음.
- My interviewers all look very smart, and once they start talking they are even smarter. It would be very enjoyable to work with these people.
- 면접관들은 다들 똑똑하게 생겼는데 말하는건 심지어 더 똑똑했음. 이런 사람들이랑 일하면 즐겁겠다고 생각했다.
- One thing that I felt special about Google’s interviews is that the analysis of algorithm complexity is really important. Make sure you really understand what Big O notation means!
- 구글 면접관들로부터 특별하게 느낀게 있다면 이들은 알고리즘 복잡도에 민감하다는 것이다. 시간복잡도 표현에 대해 숙지하고 갈 것.
- Airbnb
- 에어비앤비
- Fast expanding unicorn with a unique culture and arguably the most beautiful office in the Silicon Valley. New products such as Experiences and restaurant reservation, high end niche market, and expansion into China all contribute to a positive prospect. Perfect choice if you are risk tolerant and want a fast growing, pre-IPO experience.
- 독특한 문화와 구설수에 늘 오르내리는 실리콘 밸리의 아름다운 오피스에 있는 초고속 성장의 유니콘 스타트업. 새 제품인 Experiences 와 레스토랑 예약, 고급의 니치 마켓, 중국으로의 확장 등이 다 긍정적이다. 위험을 감수할 수 있으면 기업 공개와 더불어 빠른 성장을 기대해볼 수 있는 최고의 선택이라고 봄.
- Airbnb’s coding interview is a bit unique because you’ll be coding in an IDE instead of whiteboarding, so your code needs to compile and give the right answer. Some problems can get really hard.
- 에어비앤비 코딩 면접은 좀 달랐는데 화이트보드에 쓰는 대신에 IDE 에 코딩할 수 있었음. 그러니까 제대로 컴파일되는 코드를 써야 한다는 의미. 몇몇 문제는 넘나 어려웠다.
- And they’ve got the one-of-a-kind cross functional interviews. This is how Airbnb takes culture seriously, and being technically excellent doesn’t guarantee a job offer. For me the two cross functionals were really enjoyable. I had casual conversations with the interviewers and we all felt happy at the end of the session.
- 그리고 이 들은 일종의 교차 직군 인터뷰를 보는데, 이게 에어비앤비의 방식이며 기술적으로만 잘나서는 합격하기 어렵다는 뜻임. 두 번의 교차 면접을 봤는데 나는 재미있었다. 면접관들하고 부담 없이 이런 저런 얘기를 했고 행복하게 마무리 했음.
- Overall I think Airbnb’s onsite is the hardest due to the difficulty of the problems, longer duration, and unique cross-functional interviews. If you are interested, be sure to understand their culture and core values.
- 종합적으로 봤을 때 에어비앤비 온사이트 면접이 가장 어려웠다. 문제 수준도 그랬고 길기도 길었을 뿐더러, 교차 직군 면접도 그렇고. 만약 요 회사에 관심이 있다면 문화와 주요 가치에 대해 잘 알아보는게 좋을 듯.
- 페이스북
- Another giant that is still growing fast, and smaller and faster-paced compared to Google. With its product lines dominating the social network market and big investments in AI and VR, I can only see more growth potential for Facebook in the future. With stars like Yann LeCun and Yangqing Jia, it’s the perfect place if you are interested in machine learning.
- 아직도 빠르게 성장하고 있지만 늘 더 큰 구글과 비교되는 또 다른 거대 기업. 소셜 네트워크 시장을 지배하고 있고 AI과 VR에 돈을 쏟아붓고 있지만, 그래도 앞으로 더 성장할 수 있는 가능성을 봤음. Tann Lecun 이나 Tangqing Jia 같은 천재들이 있으니까 ML에 관심 있으면 여기가 최고임.
- I interviewed at Building 20, the one with the rooftop garden and ocean view and also where Zuckerberg’s office is located.
- Building 20 에서 면접을 봤는데 루프탑 가든도 있고 바다 전망이었을 뿐 아니라, 바로 저커버그의 사무실이 있는 곳.
- I’m not sure if the interviewers got instructions, but I didn’t get clear signs whether my solutions were correct, although I believed they were.
- 면접관들이 그렇게 하라고 지시 받았는지는 잘 모르겠는데, 내가 답을 했을 때 맞다 틀리다 확실히 알려주질 않았음.
- By noon the prior four days started to take its toll, and I was having a headache. I persisted through the afternoon sessions but felt I didn’t do well at all. I was a bit surprised to learn that I was getting an offer from them as well.
- 4일 내내 면접을 봤더니 정오 즈음엔 머리가 아플 지경이었다. 오후 세션은 완전 망친듯. 그런데도 합격 통보를 받아서 좀 놀랐음.
- Generally I felt people there believe the company’s vision and are proud of what they are building. Being a company with half a trillion market cap and growing, Facebook is a perfect place to grow your career at.
- 다들 회사의 비전을 믿고 자신들이 만들고 있는 것에 대해 자부심이 있었다. 페북은 시총 50조에 달하는 회사인 만큼 경력에 좋은 회사임에는 분명함.
Negotiation
협상
- This is a big topic that I won’t cover in this post, but I found this article to be very helpful.
- 이건 이 글에 담기 너무 양이 많아서 다루진 않음. 링크는 꽤 도움되는 글.
- Some things that I do think are important:
- 내가 중요하게 생각한 것들은 다음과 같다.
- - Be professional.
- - 프로페셔널하게.
- - Know your leverages.
- - 협상에 유리하게 작용될만한 본인의 강점을 정확히 인지할 것.
- - Be genuinely interested in the teams and projects.
- - 팀과 프로젝트에 진심으로 관심을 가져라.
- - Keep your patience and confidence.
- - 인내와 자신감을 유지해라.
- - Be determined but polite.
- - 결단력 있게, 하지만 예의 바르게.
- - Never lie.
- - 그짓말 하지 마라.
My failed interview with Databricks
데이터브릭스에는 떨어졌음
- All successes start with failures, including interviews. Before I started interviewing for these companies, I failed my interview at Databricks in May.
- 실패는 성공의 부모라는 말이 면접에서도 마찬가지임. 위 회사들에 면접 보기 전인 5월에 면접봤던 데이터브릭스에서는 떨어졌음.
- Back in April, Xiangrui contacted me via LinkedIn asking me if I was interested in a position on the Spark MLlib team. I was extremely thrilled because 1) I use Spark and love Scala, 2) Databricks engineers are top-notch, and 3) Spark is revolutionizing the whole big data world. It is an opportunity I couldn’t miss, so I started interviewing after a few days.
- 지난 4월에 Xiangrui가 링크드인으로 연락해왔다. Spark MLlib 팀에 관심 있냐고. 완전 좋았는데 왜냐면 1) 난 스파크를 쓰고 스칼라 좋아함 2) 데이터브릭스 엔지니어들 존잘임 3) 스파크는 빅 데이터 세상을 완전 바꾸고 있었음. 절대 놓치면 안될 기회였고 며칠 뒤에 바로 면접을 봤음.
- The bar is very high and the process is quite long, including one pre-screening questionnaire, one phone screening, one coding assignment, and one full onsite.
- 기준이 엄청 높고 사전 질문지, 전화 면접, 코딩 시험, 그리고 온 사이트 면접으로 절차가 좀 긴 편이었다.
- I managed to get the onsite invitation, and visited their office in downtown San Francisco, where Treasure Island can be seen.
- 온사이트 면접을 보려고 샌프란시스코에 있는 사무실로 방문했는데 Treasure Island 가 보이는 곳이었다.
- My interviewer were incredibly intelligent yet equally modest. During the interviews I often felt being pushed to the limits. It was fine until one disastrous session, where I totally messed up due to insufficient skills and preparation, and it ended up a fiasco. Xiangrui was very kind and walked me to where I wanted to go after the interview was over, and I really enjoyed talking to him.
- 면접관은 놀랄만큼 똑똑하고 게다가 겸손했다. 인터뷰하는 내내 한계까지 시험 당하는 기분이었다. 부족한 준비와 실력 탓에 첫번째 세션을 완전히 망쳐버렸다. Xiangrui는 엄청 친절했고 인터뷰 끝나고 갈 때까지 함께 해줬다. 그와 대화하는 것은 정말 좋았다.
- I got the rejection several days later. It was expected but I felt frustrated for a few days nonetheless. Although I missed the opportunity to work there, I wholeheartedly wish they will continue to make greater impact and achievements.
- 며칠 뒤에 불합격을 통보받았다. 예상했던 일이긴 했지만 그래도 좌절감에 며칠동안 멘붕했다. 같이 일할 기회는 놓쳤지만, 그들이 성공하고 잘 해나가기를 진심으로 기원하는 바이다.
Afterthoughts
덧
- - Life is short. Professional life is shorter. Make the right move at the right time.
- - 인생은 짧다. 제대로 일할 시간은 더 짧다. 적절한 시간에 적확하게 움직이쟈.
- - Interviews are not just interviews. They are a perfect time to network and make friends.
- - 면접은 그냥 면접으로 그치지 않는다. 새 친구들 만들고 네트워킹 하는 기회로 생각해라.
- - Always be curious and learn.
- - 항상 호기심과 배우려는 마음을 가져라.
- - Negotiation is important for job satisfaction.
- - 만족하고 다니려면 협상을 잘 해라.
- - Getting the job offer only means you meet the minimum requirements. There are no maximum requirements. Keep getting better.
- - 합격 통보는 최소 기준을 통과했다는 것일 뿐이다. 한계는 없으니까 항상 공부하자.
- From the first interview in May to finally accepting the job offer in late September, my first career change was long and not easy.
- 면접에 떨어졌던 5월 부터 이번에 합격하게된 9월까지, 내 이직은 길고 쉽지 않았다.
- It was difficult for me to prepare because I needed to keep doing well at my current job. For several weeks I was on a regular schedule of preparing for the interview till 1am, getting up at 8:30am the next day and fully devoting myself to another day at work.
- 원래 하던 일을 잘 하면서 준비하는게 좀 힘들었음. 몇 주 동안 일정대로 제대로 하면서 인터뷰 준비하느라 새벽 1시에 자고 8:30에 일어나서 일하는거... 힘듬.
- Interviewing at five companies in five days was also highly stressful and risky, and I don’t recommend doing it unless you have a very tight schedule. But it does give you a good advantage during negotiation should you secure multiple offers.
- 5일 동안 5개 회사에 면접보는건 힘들고 위험하기도 하니 나처럼 스케쥴이 빡빡한 사람 말고는 비추임. 그래도 여러 회사에서 제안을 받아야 좋은 협상을 할 수 있는 것도 사실.
- I’d like to thank all my recruiters who patiently walked me through the process, the people who spend their precious time talking to me, and all the companies that gave me the opportunities to interview and extended me offers.
- 고마운 사람이 넘 많은데, 면접 보는 동안 인내심 발휘하여 같이 해준 여러 리크루터들, 시간을 굳이 써가며 나와 이야기해준 이들, 면접 볼 수 있는 기회를 준 이들에게 다들 감사하다.
- Lastly but most importantly, I want to thank my family for their love and support — my parents for watching me taking the first and every step, my dear wife for everything she has done for me, and my daughter for her warming smile.
- 마지막으로, 가족들의 사랑과 도움이 없었으면 이렇게 하지 못했을꺼다. 부모님이 처음부터 끝까지 계속 지켜봐주셨고, 나를 위해 헌신해준 사랑스런 와이프와 딸의 웃음 모두 감사하다.
- Thanks for reading through this long post.
- 기일게 썼는데 끝까지 읽어준 당신에게도 감사.
- Xiaohan Zeng
- Xiaohan Zeng
- 10/22/17
- 2017년 10월 22일
'좋은글s' 카테고리의 다른 글
깊은 관계에서 가장 중요한 것은?! | #어쩌다어른 #김창옥쇼 (0) | 2024.05.30 |
---|---|
7가지 보고의 원칙 (0) | 2019.02.20 |
내 여자친구는 항상 기분이 좋아야만 한다는 강박관념 (0) | 2009.09.13 |
너에게 용기 내라고, 힘내라고 불러주고 싶은 노래 (0) | 2009.09.09 |
완전정복 MB시대 수사받는법 : 쫄지 마! 실전 매뉴얼이 여기 있잖아... (0) | 2009.07.19 |