brunch

You can make anything
by writing

C.S.Lewis

슈퍼멘토 02: 구글 본사 소프트웨어 엔지니어

실리콘밸리 입사비결은 "실질적인 경험"

    안녕하세요! '슈퍼멘토와의 커피 한 잔'의 운영진 김정윤입니다.


    최근 “4차 산업 혁명”, “인공 지능(AI)” 등 키워드들이 대두되면서, 테크 업종에 대한 관심이 더더욱 커지고 있는데요, 슈커한 두 번째 세션에서는 이러한 테크 업계 붐(boom)을 선도하는 기업 구글(Google) 본사에서 소프트웨어 엔지니어로 일하시는 멘토님을 모셨습니다.


구글 소프트웨어 엔지니어의 24시간은 어떨까요?   

Top IT 회사 소프트웨어 엔지니어에게 기대되는 능력과 자질은 무엇일까요?  

외국인으로서 실리콘밸리에 입성하려면 어떻게 해야 하나요?


<목차>

1. About the mentor
2. 컴퓨터 공학과 학생의 삶
3. 구글 소프트웨어 엔지니어의 삶
4. 소프트웨어 엔지니어/실리콘 밸리 커리어를 위한 조언
5. 마무리




<About the Mentor>

-미국 코넬대학교 컴퓨터공학 학사/석사 

-미국 마이크로소프트 본사 MSN팀 엔지니어 (2010년 6월 - 2011년 12월)

-실리콘밸리 데이터 분석 소프트웨어 스타트업 Palantir 근무 (2012년 10월 - 2013년 5월)

-구글 본사 데이터 센터 관리 소프트웨어 엔지니어 (2013년 7월 - 2017년 7월)  





<컴퓨터공학과 학생의 삶>


Q: 대학 시절에는 어떤 학생이셨나요?

A: 대회를 준비하면서 열심히 공부했던 시기도 있었고, 같은 전공 친구들과 토너먼트식으로 게임을 하면서 열심히 놀았던 시기도 있었던 것 같아요 (웃음). 대학 시절에 프로그래밍하다 실패한 것도 많고, 성공해서 지금도 쓰고 있는 것도 많아요.


Q: 대학 시절 컴퓨터공학에 열정이 생기게 된 시기가 언제인가요?

A: 대학 시절 실력이 늘었던 시기를 3단계로 분류할 수 있어요.

1) 1학년 봄학기 때 코딩 인터뷰 준비: 1학년 1월~3월에 인턴을 준비했을 때 실력이 많이 늘었던 것 같아요. 거의 70군데 넘게 지원을 하고, 열 군데에서 인터뷰를 보고, 최종적으로 세 군데에 합격했는데, 그중의 하나가 Expedia (호텔 티켓 예약 플랫폼) 였어요.  

2) 2학년 1학기 대신 회사에서 일했던 8개월 장기 인턴십 (Co-op) 프로그램: 학교에서 1학년 때 아직 많이 배운 게 없었기 때문에 주로 남의 코드를 읽고 분석하는 일을 했는데, 좀 더 큰 프로젝트에서 코딩하고 사람들과 회의를 하면서 프로젝트 디자인의 일부나 작은 방향을 이끌어내는 일을 했을 때도 실력이 많이 늘었어요.

3) 3학년 때 프로그래밍 대회 준비: 대회가 저한테 굉장히 새로운 경험이었는데, 제가 손도 못 대는 문제들을 아무렇지 않게 풀어내는 다른 친구들과 팀을 짜서 대회 준비를 하다 보면서, 제가 도움과 영감을 많이 받게 되었어요.   


Q: 조금 전에 다른 컴퓨터 공학과 학생들이 작성한 코드에 영감을 받았다고 하셨는데, 더욱 자세하게 말씀해주세요.

A: 다른 사람들이 코드 속에서 문제를 어떻게 해결하는지를 볼 때 생각도 많이 하고 영감을 많이 받았어요. 프로그래밍 대회에서 어떤 문제에 맞는 조건과 데이터를 주면, 시작부터 끝까지 푸는 방법이 여러 가지가 있는데, 그중에 제가 전혀 생각하지 못했던 다른 방법으로 문제를 푸는 사람들을 볼 때 영감을 받았던 것 같아요. 


Q: 대학 시절부터 탄탄하게 프로그래머로서의 성장을 준비해오신 것 같은데, 학창 시절 돌이켜볼 때 제일 후회되는 점이 무엇인가요?

A: “학교 외 사람들과 교류를 하는 프로젝트에 더 참여했으면 좋았겠다” 라고 생각을 했어요. 저는 개인적으로, 또는 학교 내 지인들과 취미로 프로그램을 만들곤 했는데, 회사에 와보니까 모르는 사람들과 말을 해야 할 일이 많더라고요

    또한, 엔지니어들 간 소통을 하는 데 있어서도 무엇을 물어봐야 하는지 아는 것이 너무나 중요한데, 이건 실제 협업 경험을 통해서만 길러질 수 있는 것 같아요. 대학 때 학교에서 공식적으로 지원을 받고 외부 단체나 회사와 연계해서 같이 하는 프로젝트가 많았는데, 꾸준히 잘 할 자신이 없어서 도전을 많이 안 했던 점이 아쉬운 것 같아요. 


<구글 소프트웨어 엔지니어의 삶>


Q: 구글 소프트웨어 엔지니어의 24시간은 어떤가요? 

A: 회의 시간을 제외하면 제 일과를 유동적으로 계획하여 수행해와서 그런지, 24시간을 정의하긴 어려운 것 같아요. 

    하루 근무 시간 8시간 중 1시간은 팀 회의에 할애하고, 2시간은 코딩을 하고, 1시간은 문서 작성, 그리고 1시간은 다른 엔지니어 코드 리뷰를 합니다. 나머지 시간에는 이메일 체크, 버그 수정, 개발에 도움이 될만한 리소스 검색, 기술 관련 공부 및 트레이닝, 후보자 인터뷰, 그리고 간단한 취미생활 등을 하면서 시간을 보내요. 


Q: 구글의 product 팀의 개발 환경은 다른 회사들의 개발 환경과 어떤 차이가 있었나요? 

A: 일적으로 엔지니어들이 코드를 쓰고 리뷰하고 소통을 하기 위해 이메일, 캘린더, 메일 리스트 같은 도구를 쓰는데, 구글에서는 사내 모든 협업에 있어 외부 앱을 쓰지 않고 자체적으로 만든 툴 Google Apps (지금은 GSuite)를 사용해요. 예를 들자면, 이메일은 Gmail을 무조건 쓰고, 캘린더도 Google Calendar를 쓰고… 지메일은 캘린더랑 잘 연동되어 있고 문서도 Google Docs를 쓰다 보니 공유도 간단해요. 구글은 사람이 많으니까 구글 내에서만 쓰이기에 최적화되어있는 소프트웨어가 많은데, 그것들을 개발하고 관리하는 팀도 따로 있어요. 보통 다른 회사들도 내부적으로 도구들을 따로 쓰긴 해도 담당하는 인력이 적다 보니 버그가 많거나 쓰기 힘든 경우를 많이 봤는데, 구글은 그런 문제가 상대적으로 없어서 편해요. 


Q: 팀원들과 여러 가지 협업을 하시는데, 팀원들이 많아지면 어떤 식으로 프로젝트를 진행하나요?

A: 사람 수가 많아지면 한꺼번에 소통하기 어려우니까 총괄 디렉터와 리드 엔지니어들이 팀마다 어떻게 일을 나눠서 할지 미리 정해요. 프로젝트를 어떻게 나눌지, 그리고 프로젝트끼리 서로 어떻게 연관이 될지 미리 정해서 실무진 엔지니어들은 그것만 지키면 되도록 관리해요.  

    프로젝트를 세부적으로 나누기 때문에 개별 엔지니어마다 하는 일이 서로 연관성이 적지만, 자기 팀에게 주어진 일만 할 필요는 없고, 다른 사람들이 속한 프로젝트에 관한 얘기를 할 수 있어요. 권한이 있는 관리자는 있되 협업은 자유롭게 하면서, 내가 무엇이든지 제안하고 조언을 구할 수 있는 시스템이에요. 


<구글의 회의 종류>

    구글러들은 효과적인 의사결정을 도출하고 성과를 더욱 높이기 위해 다양한 회의들을 진행하는데, 회의의 종류를 대략 세 가지로 분류할 수 있습니다.  

1) 전체 팀 회의: 하루에 1시간 정도 팀 엔지니어 전원이 모여 하는 회의   
2) Stand up: 일주일에 최소 세 번씩 2-3명의 엔지니어들이 문제 해결을 위해 주로 (1) 지난 스탠드업 이후에 무엇을 했는지, (2) 지금은 무얼 하고 있는지, 그리고 (3) 어떤 문제가 있는지 서로 의견을 주고받는 회의  
3) 디자인 미팅  

    그 외에도 “코드 리뷰” 를 통해 다른 팀원들의 코드의 수정사항과 개선점 등 코멘트를 해준 후, 의견에 따라 코드를 수정한 다음 하나로 합치기도 합니다. 이런 경우는 미팅까지는 아니지만, 온라인이나 직접 다른 팀원들을 찾아가 서로의 코멘트를 반영하는 과정입니다. 


Q: 실리콘 밸리의 기업 문화는 자유롭되 성과에 대해 냉정한 평가를 한다고 하는데, 구글에서는 성과의 기준이 무엇인가요?

A: 자유에 엄격한 책임이 따르는 문화인 것 같아요. 예를 들자면, 회사가 직원들이 특정한 장소나 시간에서 일하도록 엄격히 관리하지는 않습니다. 중간 휴식시간이나 출퇴근 시간은 정해져 있지 않고, 사무실이 아닌 곳 (집, 카페 등) 에서 일할 수 있는 등 자율적인 업무 분위기가 형성되어 있어요.

    이렇게 직원들은 자율적으로 일하되, 충분한 양의 좋은 코드를 작성하는 책임감을 갖고 임합니다. 가령 엔지니어의 경우엔, 자기가 쓴 코드를 남한테 보여줘야 하는데, 코드가 맞는지 안 맞는지 돌려보면 실력이 금방 드러날 수 있습니다.

    실리콘밸리 회사들은 평가를 자주 하는데 구글의 경우에는 3월, 그리고 9월에 한 번씩 업무평가를 하면서 학교 성적 받듯이 다섯 등급으로 평가가 내려집니다. 상위 등급을 받으면 승진을 노려볼 수 있는 반면에, 실적이 부진하면 실적 개선을 위한 로드맵을 매니저와 함께 그려야 해요. 


 <점수를 매기는 기준> 

구글이나 다른 실리콘밸리 회사들은 업무의 성과에 대한 점수를 매기는 기준이 다양합니다. 

1) Technology에 대한 지식, 코드를 얼마나 잘 썼는지, 그리고 다른 사람과 커뮤니케이션/팀워크를 얼마나 잘했는지에 대한 기준
2) Organization impact: “조직에 얼마나 좋은 영향을 끼치고 다른 사람들에게 얼마나 도움을 주었나”에 대한 기준
3) “자기에게 주어진 일 외에 다른 사람들에게 도움이 될만한 새로운 일을 얼마나 찾아서 했나” 라는 기준  ex) 봉사활동이나 면접관 일처럼 회사 전체에 도움이 되는 활동 


Q: 구글 내 팀원들과는 어떻게 피드백을 주고받나요?

A: 구글은 팀 내 서로 평가하고 평가받는 “360도 평가”를 하는데, 상사와 동료들뿐만이 아니라 다른 부하직원들도 평가를 해요. 다른 직원에게 피드백을 요청할 수도 있고, 요청을 안 해도 몰래 피드백을 해주는 경우도 있어요. 

    또한, 구글 가이스트 (Googlegeist) 라는 회사생활의 만족도에 대한 설문조사를 통해 연 1회 자기 팀에 있는 상사를 비롯해 더 위에 있는 임원진에 대한 간단한 만족도 평가를 모든 직원이 할 수 있어요. 회사에서 이 설문조사를 매우 중요하게 보기 때문에, 매년 수정사항을 실천하기 위한 특수 조직이 있기도 해요.  


<소프트웨어 엔지니어/실리콘 밸리 커리어를 위한 조언> 


Q: 실리콘밸리의 소프트웨어 엔지니어가 되기 위해 어떤 역량이 필요했나요?

A: 회사 리더십에서 큰 프로젝트를 많이 지시하는데, 엔지니어의 첫 번째 일은 뭘 해야 할지 알아내는 일이에요. 프로덕트 사용자들의 요구가 많다 보니 그것을 다 하면 방향성도 없고 시간도 부족하니까 이것의 진짜 사용자가 누구인가이걸 왜 하느냐, 그리고 꼭 필요한가를 질문해가면서 뭘 해야 할지 정하는 것이 중요해요. 그렇게 우선순위를 정한 후, 이걸 바탕으로 어떻게 소프트웨어를 만들 수 있을까를 제대로 파악해야 하는 것 같아요. 

    Project management skill도 엔지니어로서 많이 필요한 것 같아요. 프로젝트 매니저와 “시간이 부족한데 이 중에 무엇을 먼저 하는 게 좋을까?”라고 대화를 하면서 우선순위를 정하고, 무엇을 해야 하는지 정하고, 왜 해야 하는지 알고, 시간을 배분하는 일도 잘 수행해야 해요. 

    마지막으로 새로운 트렌드 (프로젝트, 기술, 바뀐 조건 등등)를 빨리 배우고 적응할 수 있는 능력도 중요한 것 같아요. 


Q: 멘토님이 소프트웨어 엔지니어로서 구글에 입사할 수 있으셨던 경쟁력이 무엇이라고 생각하시나요?

A:  프로그래밍 대회와 이전 경력이 구글에 지원할 당시 굉장히 도움이 되었어요. 또한, 저는 구글에 들어가기 전에 Expedia 인턴과 마이크로소프트 경력도 있었고, 구글에서 주최하는 구글 코드잼이라는 대회에서도 round 3까지 갔었는데, 그런 대회 수상실적도 좋게 봐주셨어요.


Q: 학사를 졸업하고 일을 하시다가 석사를 하셨는데, 컴퓨터공학을 전공하고 소프트웨어 엔지니어가 되려면 석사가 필요하나요?

A: 석사 학위가 소프트웨어 엔지니어가 되기 위해 꼭 필요한 것은 아니지만, 있으면 다양한 과제를 수행하는 데에는 도움이 되기 때문에 있으면 좋다고 생각합니다. 처음에 일을 시작했을 때는 “고등학생 졸업생들도 할 수 있는 일인데, 왜 컴퓨터 공학 석사 학위까지 필요한가?” 라고 반문한 적도 있었습니다. 하지만 나중에 큰 프로젝트, 혹은 설계 작업을 할 때, 석사 시절 배웠던 기본적인 이론들이 큰 도움이 되는 걸 느꼈습니다. 

    예를 들자면, 디자인을 “증명"할 때 학문적 배경이 도움이 되었던 것 같아요. 소프트웨어 부분은 특히 구조가 복잡해질수록 어떤 부분이 왜 맞는지, 왜 잘 되는지, 어느정도의 리소스를 필요로 할지 등등을 이론적 배경 없이 설명하기 힘들 수도 있습니다.



Q: 실리콘 밸리에선 실력을 가장 중시한다는 이야기가 있는데, 출신 학교가 실리콘밸리 입성에 제약이 될 수 있다고 보시나요?

A: 대학 졸업 후 첫 3년, 이력서 통과 쪽에서는 어느정도  영향이 있어요. 자기만의 포트폴리오나 프로젝트가 있지 않은 이상 회사 입장에서도 학생의 출신 학교를 참고할 수밖에 없는 것 같아요. 하지만, 면접 때는 별 영향이 없는 것 같습니다. 출신 학교와 아주 무관하게 탄탄한 프로그래밍 실력으로 인터뷰를 통과하고, 입사해서도 좋은 성과를 내는 신입 엔지니어분들도 많이 있어요. 

    경력이 어느 정도 쌓인 후에는 대학 이름이 중요하지 않고, 지금 무슨 일을 하고 있는지가 중요해요. 대학 이름보단 회사 인턴이나 대회 등 실질적인 경험과 면접 인터뷰를 보는 편입니다. 제가 면접관으로 들어갈 때도 많은데, 지원자가 무슨 대학을 나왔는지는 잘 안 보고, 이 사람이 면접에서 문제를 잘 풀고 충분히 생각을 한 것 같으면 추천을 해요. 사실 대학 이름과 실제 능력의 차이가 크게 있는 경우가 많아요. 이력서에 대학 이름이 쓰여 있어서 보고 싶으면 볼 수 있지만, 굳이 쓸모가 없는 것 같아서 안 볼 때도 많아요. 한국에서 오시는 분 중 서울대, 카이스트 출신분들이 많기는 하나, 실력을 입증하고 입사하신 타 대학 분들도 자주 볼 수 있습니다. 


Q: 외국인으로서 실리콘 밸리 회사 취직이 가능한가요? 가능하다면, 어떤 루트를 타고 오시는 편인가요?

A: 비자 요건이 까다롭기 때문에 한국에서 대학을 다니다가 바로 미국에 취직하는 경우는 정말 드물고, 보통은 미국에서 박사과정을 마친 후 미국 회사에 취업하는 경우가 가장 많아요. 한국에서 대학을 졸업한 후 미국으로 건너와서 단기 석사를 하신 후 회사에 취업하신 케이스도 많고, 다국적 기업 한국 지사에 일하다가 미국으로 오신 케이스도 있습니다.


<마무리> 


Q: 구글 이후에 커리어가 궁금한데요, 멘토님의 최종 꿈은 무엇인가요?

A: 소프트웨어 엔지니어 이후의 커리어는 크게 세 가지 옵션이 있어요. 엔지니어로 쭉 일해서 Senior Architect가 되는 길, 아니면 Manager 트랙을 타서 사람을 관리하는 길, 그리고 프로젝트를 관리하는 PM이 되는 길이 있어요. 어느 쪽이든 제 생각을 표현할 수 있는 직책을 제 next step으로 고려할 겁니다.

    커리어를 뛰어넘는 꿈이 있다면, “내가 한 프로젝트다"라고 자신 있게 내세울 수 있을 만한 소프트웨어를 만들고 싶어요. 일반 사람들이 잘 몰라도 “난 이걸 만든 사람이다" 라 할 수 있을, 제 생각을 잘 담아낸 앱을 구글 내에서든 외에서든 개발하고 싶어요. 

    



    이번 세션에서는 지금의 자리에 오르기까지 새로운 도전을 마다하지 않았던 멘토님의 열정과 노력을 엿볼 수 있었습니다. 멘토님이 여태껏 실리콘밸리에서 꾸준히 일할 수 있었던 비결은 성장가능성이 높은 기회를 최대한 많이 잡고, 더 나은 성과를 달성하기 위해 끊임없이 고민하신 덕분인 것 같습니다. 

    또한, 세션을 통해 구글이 왜 다른 회사들에 비해 “팀워크", “자유롭고 수평적인 근무환경", 그리고 “자기계발"을 강조하는지 알 수 있었습니다. 특히 구글의 피드백문화와 성과에 대한 점수를 매기는 기준이 인상 깊었습니다. 

    멘토님만이 느끼셨던 insight, 그리고 직접 경험해보신 실리콘밸리의 직업문화를 생생하게 전달해주셔서 감사하고, 앞으로도 실리콘밸리에서 세계를 변화시킬 수 있는 혁신적인 기술을 많이 개발하실 수 있도록 슈커한에서도 응원하고 있겠습니다. 







작가의 이전글 연쇄창업가 김신지 멘토를 만나다
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari