Quora에 다음과 같은 질문이 올라왔다.
What does it take to be a "Senior" Software Engineer at Facebook?
한글로 번역하자면, "페이스북에서 '고급' 소프트웨어 엔지니어란?"
인기를 끈 대답을 정리해보았다
페이스북에서 아주 영향력이 큰 끝내주는 엔지니어를 만날 때, 몇 가지 공통적인 특질을 목격했다. 이런 엔지니어들은 더 많은 자율성으로 더 많은 영향력을 미칠 만한 능력이 있는 사람으로 압축된다.
- 남들이 풀 생각도 풀 능력도 없는 기술적인 문제를 풀 수 있다.
- 특정 분야를 아주 깊게 파고드는 지식이 있거나 특정 영역에서 다른 영역을 건너 다니며 쉽게 문제와 씨름하며 남들과 함께 일한다.
- 자신들의 문제를 해결할 뿐만 아니라 다른 팀이나 회사 내 더 큰 부서가 빠르고 제대로 문제를 풀 수 있게 해법이나 프레임워크를 만들어낸다(자신들의 영향력을 크게 높이는 방법을 알고 있다).
- 씨름할 가치가 있다고 밝혀질 때까지 어려운 문제를 여러 달이나 심지어 여러 해 동안 잡고 있어도 부끄러워하지 않는다.
- 대다수 사람들이 자신의 인생 경력에 위험이 된다고 생각하는 범위를 벗어나며 개인적인 업무 평가에 연연하지 않는다.
- 이런 엔지니어 중 많은 사람들은 정말 뛰어난 의사 소통자이자 조직화에 능숙한 사람이지만, 의사 소통과 친밀감이 필수 요구 사항은 아닌 듯이 보인다. 몇몇 사람은 정말로 뛰어나서 분야가 좁고 어려운 문제를 혼자 푸는 역량을 갖추고 있기 때문이다.
위에서 설명한 특질은 페이스북에서 일반적으로 볼 수 있으며, 다른 첨단 기술 회사도 마찬가지다. 계속해서 사람의 성장 관점에서 독특한 페이스북 문화를 소개한다.
- 모호하고 바뀌는 요구 사항에 재대로 대응한다. 우리 핵심 가치 중 하나는 빠르게 움직이는 것이며, 이는 여러 회사가 자신들이 어떤 일을 해야할지 문서로 만들어 내느라 여러 달을 소비하는 동안, 우리는 프로토타입으로 넘어가 반복해서 개선함을 의미한다.이는 프론트엔드 개발자들이 여러 플랫폼(웹, 안드로이드, 아이폰, 태블릿 등)에 다양한 버전을 유지할 수 있는 능력을 갖춰야 함을 의미한다. 우리가 만드는 모든 제품은 첫날부터 바로 확장 가능해야 하므로, 벡엔드 엔지니어는 새로운 제품을 빠르게 수용할 수 있는 기반 구조나 프레임워크를 만들거나 확장 가능한 해법을 잽싸게 내놓으며, 계속해서 소프트웨어가 조금씩 바뀌어 나간다는 사실을 이해해야 한다.
- 주고받는 피드백 관점에서 직설적이다. 페이스북의 열린 문화는 어느 누구도(어느 누구라는 단어를 사용할 때 마크 주커버그도 해당한다) 일방적으로 피드백을 주기만 하지 않는다. 열리고 솔직한 피드백은 사람들이 성장하게 만든다. 최고의 엔지니어는 피드백에 기반해 성장할 영역을 인식하는 사람들이다. 권위에 붙잡혀 있는 사람들은 가까워지기 어려우며, 피드백도 제대로 받아들이지 못한다.
덧붙이자면, 비록 가끔 이 용어를 사용해야만 하는 어쩔 수 없는 상황도 있긴 하지만, 나는 "고급(senior) 엔지니어"라는 용어를 정말 싫어한다. "고급 엔지니어"라는 용어는 기술 수준과 시간이라는 함수가 연관을 맺고 있음을 암시하기 때문이다. 하지만 솔직히 말해 페이스북에는 2년도 지나지 않아 회사를 위해 가장 중요하고 도전적인 몇 가지 작업을 수행하는 사람들도 있다.
언급하고 싶은 또 다른 주제가 있다. 많은 고급 엔지니어들이 죽치고 앉아서 "여기서 최고 엔지니어가 되려면 무엇을 해야할까?"라고 생각하며 지낸다고 믿지 않는다. 대부분은 정말 공부밖에 모르는 겸손한 사람이며, 어려운 문제들이 자신들의 관심을 끌기에 늘 깨어 있다. 보통 사람들이 잠자고 있을 때 열심히 일하고 노력하며, 뭔가 잘못되었을 때 초점을 잃지 않고, 자신들의 해법에 만족할 때까지 결코 포기하지 않는다.
만일 당신이 끝내주는 엔지니어/관리자/디자이너/PM/등이 되고 싶으면, 바로 가까이에 있는 문제에 뛰어들고, 더 큰 문제에 부딪힐 수 있게 정열과 아이디어를 집중하고, 당신이 최고로 잘하는 분야가 아닌 이상 현실에 안주하지 말기 바란다.
댓글 없음:
댓글 쓰기