올해 들어 프론트엔드 엔지니어 채용, 팀 빌딩, 커리어 설계 등을 주제로 크고작은 스타트업의 CEO나 CTO 분들과 대화할 기회가 몇 번 있었습니다. 그 때 CTO를 비롯한 시니어 엔지니어들이 대부분 백엔드 출신인 조직에서는, 시니어 프론트엔드 엔지니어에 대한 상像이 불명확하여 주니어/미들급 엔지니어 개발자들을 성장시키고 리텐션을 유지하기가 쉽지 않다는 이야기를 많이 들었습니다.
처음에는 엔지니어링 래더를 토대로 제 의견을 말씀드렸지만, 아무래도 엔지니어링 래더는 좀 추상적이고 역량 기준이 분야에 무관하게 쓰여있다 보니 이것만으로는 주니어 프론트엔드 엔지니어들에게 큰 도움이 되지 않을 것 같았습니다. 또한 “프론트엔드 커리어 로드맵” 같은 키워드로 검색했을 때 나오는 내용은 대부분 기술적인 공부에만 치중되어 있어 현실과는 살짝 동떨어진 면이 있다고 느꼈습니다. 그런 글에서 자주 인용되는 게 이런 기술 로드맵인데, 물론 여기에 훌륭한 키워드가 잘 정리되어 있긴 하나 ‘이렇게 기술을 공부하는 것만으로 좋은 시니어 프론트엔드 엔지니어가 될 수 있는가?’에 대해서는 회의적이었기 때문입니다.
시간이 지나며 생각이 조금씩 정리되었고, 성심성의껏 답변하고 토론하다 보니 “주니어 프론트엔드 엔지니어가 역량 성장 목표와 커리어 로드맵을 어떻게 가져가야 할까?”에 대한 그림이 점차 구체화되었습니다.
다만 저도 개발 경력이 그리 길지 않고, 지금까지 거쳐온 회사도 100명 이하의 스타트업 뿐이었기에 굉장히 주관적인 시각임을 염두에 두고 읽어주시면 감사하겠습니다. 반박 또는 토론할 만한 부분이 있다면 언제든지 편하게 댓글 남겨주세요. 레터에는 요약만 담았고, 전문은 제 블로그에서 보실 수 있습니다.
프론트엔드 개발의 역사가 짧아, 많은 조직에서 좋은 시니어 프론트엔드 엔지니어를 원하지만 찾기는 어렵다.여러 중소규모 스타트업 CTO들이 비슷한 고민을 하게 된다.
- 프론트엔드에 요구하는 기술 수준이 그다지 높지 않아 엔지니어의 역량 발전 동기가 적음
- 프론트엔드 엔지니어 출신으로 좋은 커리어를 쌓은 롤모델이 주변에 별로 없어서 커리어 설계가 어려움
- 조직 내 시니어 프론트엔드 엔지니어의 부재로 미들급에게 리더십이 더 많이 요구됨
이 글은 이런 고민을 하는 프론트엔드 엔지니어와, 그들을 어떻게 이끌지 고민하는 팀 리드 및 CTO를 위해 썼다. 프론트엔드 엔지니어가 어떤 방향으로 전문성을 특화시켜 어떻게 시니어로서 커리어를 쌓아나갈지에 대한 가이드로서 도움이 되길 기대한다.
1. 탁월한 엔지니어 되기
‘탁월한 시니어 프론트엔드 엔지니어가 되고 싶다’는 문장은 3가지 측면에서 해석할 수 있다.
- 탁월한 (시니어 프론트엔드) 엔지니어가 되고 싶다.
- 탁월한 (시니어) 프론트엔드 엔지니어가 되고 싶다.
- 탁월한 시니어 (프론트엔드) 엔지니어가 되고 싶다.
What Makes a Great Software Engineer?라는 논문에 따르면 탁월한 엔지니어는 좋은 코드를 짜고, 작업의 현재 가치를 극대화하고, 데이터에 기반하여 의사결정하고, 동료의 효과적 의사결정을 돕고, 꾸준히 학습하는 사람이다. 이 다섯 가지 역량을 발전시키고자 노력하면 좋은 엔지니어가 될 것이다.
덧붙여, 점차 강화되는 인공지능 때문에 커뮤니케이션과 글쓰기 능력이 훨씬 더 중요해졌다. 인공지능에게 개발 업무를 대체당하는 대신 인공지능을 비서로 삼아 효과적으로 일하려면 Prompt Engineering 관점에서 영어 글쓰기나 인터뷰 기법을 공부하는 게 좋다.
2. 탁월한 프론트엔드 엔지니어 되기
위의 기본기에 더해 주니어 프론트엔드 엔지니어가 어떤 방향으로 전문성을 쌓으면 좋을지 세 가지 트랙을 생각해봤다. 각 트랙은 상호보완적이므로 한쪽의 전문성이 충분히 있는 사람은 다른 트랙의 전문성을 쌓기 훨씬 쉬워지며, 당연히 각 트랙에서 시니어로서 가능한 커리어도 일부 겹친다.
(‘운영 트랙’은 데브옵스적 측면과 프로세스/조직 운영적인 측면 둘 다를 포함했으나, 이 두 가지 역량을 꼭 같이 가져가야만 좋은 커리어를 쌓는 건 아니다. ‘프로세스 특화’ 트랙을 별도로 둬야 할지 고민도 됐지만 4번째 트랙을 유의미하게 만들기에는 아직 나의 역량이 부족하여 일단 하나로 합쳤다.)
3. 탁월한 시니어 엔지니어 되기
위와 같이 전문성을 쌓은 사람이 탁월한 시니어 엔지니어가 되려면 어떻게 해야 할까? 나는 어떻게 시니어 역할을 맡게 됐는지, 또 내가 만나왔던 훌륭한 시니어 엔지니어들은 어떤 사람이었는지를 토대로 탁월한 시니어 엔지니어가 되기 위한 세 가지 포인트를 짚어본다.
- 기본에 충실하고자 노력한다: 탁월한 엔지니어의 5가지 역량은 당연히 시니어 엔지니어에게도 똑같이 적용된다.
- 명시적 리더가 아니어도 리더처럼 행동한다: 리더십은 명시적 리더가 아닐 때도 충분히 발휘할 수 있고, 때론 동료의 모범적 행동 하나가 명시적 리더의 수많은 말보다 더 큰 영향을 끼칠 수 있다. 주어진 역할과 상관없이 제품과 팀과 조직 전체에 긍정적 영향을 미치기 위해 힘쓰면 어느새 시니어로 인정받을 것이다.
- 어떤 상황에서든 큰 임팩트를 낸다: 디버그와 같은 작은 행위에서도 시니어는 주니어보다 훨씬 큰 영향력을 발휘한다. 주어진 일을 잘 끝마치는 걸로 만족하지 않고, 전후 맥락을 살피며 여러 사람과 의사소통하여 큰 임팩트를 만들어내는 사람이라면 제품에서든, 팀에서든, 회사에서든 어느 한 파트를 안심하고 맡길 수 있는 시니어로 성장할 것이다.
의견을 남겨주세요
앰버
엔지니어는 아니지만 3번은 모든 사람들에게 적용될 수 있는 좋은 가이드인 것 같네요 !
삶의 밀도를 높이는 여정
네 맞아요. "좋은 코드를 짜고, 작업의 현재 가치를 극대화하고, 데이터에 기반하여 의사결정하고, 동료의 효과적 의사결정을 돕고, 꾸준히 학습한다"에서도 "좋은 코드"만 자신의 전문성 관련 무언가로만 바꾸면 아주 좋은 기준이라고 생각해왔습니다. :)
의견을 남겨주세요