1️⃣ Engineer I (주니어)
명확하게 정의된 업무를 완료하고 다른 문제로 인해 업무가 차단되었을 때 도움을 요청한다.
관련 기술 및 시스템을 학습하고 적극적으로 시스템을 유지하고 확장한다.
상대방의 의견을 존중하고 대외적으로 정중한 방식으로 의사소통할 줄 안다.
결과물을 배포하고, 코드베이스를 리펙토링하거나 시스템을 업데이트하는 방법을 통해 영향력을 행사한다.
기술 문제를 디버깅하는 것과 문제를 개선할 수 있도록 돕는다.
이전 경력이 필요하지 않는 직급이다.
📌 주니어 직급은 학습과 성장을 통해 꾸준히 결과물을 내는 것이 목표입니다.
2️⃣ Engineer II (중간 개발자 또는 미드 레벨)
개발과 설계 과정에서 기술 부채가 발생하지 않도록 주의하면서 주니어보다 좀 더 규모가 큰 엔지니어링 업무를 맡는다.
시스템에 존재하는 문제를 사전에 점검하면서 가장 큰 문제점을 분석하고 적절한 조취를 취한다.
팀원들을 배려하고 필요하면 그들을 돕는다.
다른 사람의 우선순위와 관심사에 귀기울이고 자신과 다른 관점을 인정한다.
최소 2년 이상 경력이 요구되는 직급이다.
📌 기술 지식을 탄탄히 다지고, 다른 영역의 지식을 획득하며, 좀 더 규모가 큰 업무를 맡음으로써 리더로 성장할 수 있는 기회를 얻고 배우는 단계입니다.
3️⃣ 시니어 엔지니어
시니어는 개인 기여자(IC)다.
특정 기능 또는 내부 시스템 유지보수/업그레이드에 대한 실행 계획을 정의하고 실행한다.
페어 프로그래밍, 검토 및 멘토링 제공을 통해 동료의 업무를 돕는다.
더 큰 규모의 시스템을 리팩토링하며 기술 부채를 줄이기 위해 노력한다.
팀이 개발하고 있는 기능의 목적을 이해하고 그 목적을 팀원이 잘 이해하도록 한다. 기대치가 불분명한 경우 명확하게 하도록 좋은 질문을 한다.
범위가 큰 업무의 큰그림을 볼줄 알고 실행 가능한 작은 단위의 업무로 나눌 줄 안다.
다른 사람과 의사소통을 잘하도록 노력하고 다른 사람의 의견을 개방적으로 듣고 받아들인다. 효과적인 의사소통을 위해 커뮤니케이션 스타일을 조정한다.
유지 관리하기 쉬운 방식으로 시스템을 설계한다.
최소 5년 이상 경력이 요구되는 직급이다.
📌 회사마다 시니어의 기대 역할이 조금 다를 수 있어요. 스태프와 겹치는 경우가 많고, 회사 규모가 작으면 오히려 미드 레벨 개발자의 역할 범위와 비슷할 수 있습니다. 회사의 규모와 역할 범위에 따라 시니어 개발자의 연봉 차이가 크게 날 수 있어요.
4️⃣ 스태프 엔지니어
미팅에 적극적으로 참여하고 비즈니스 목표를 이루기 위해 필요한 경우 팀간 협력을 구성한다.
맡은 시스템의 목적과 구조에 관련된 내부 문서를 구현하고 유지한다.
기능 및 시스템 개선을 위해 시스템을 설정하고 실행 계획을 추진하는 방법을 동료에게 알려준다.
혼자 단독으로 추진하는 것이 아니라 팀간 협력을 주도한다.
다른 사람이 하기 싫어하는 엔지니어링 업무를 대신 수행함으로써 프로젝트 진행이 빠르게 잘되도록 한다.
문제를 능동적으로 분석하고 해결하며, 필요한 경우 절충점을 제공한다.
최소 8년 이상의 경력이 필요한 직급이다.
📌 스태프 엔지니어 직급은 생소할 수 있어요. 시니어와 스태프 레벨 구분 없이 바로 시니어에서 바로 수석 엔지니어가 되는 회사가 많고, 반대로 스태프와 수석을 구분하지 않는 회사도 많습니다. 따라서 스태프라는 직급의 역할 범위는 경계가 모호하거나 존재하지 않는 곳이 상당히 많습니다.
📌 회사마다 다르지만 경우에 따라 시니어 스태프 개발자 직급이 존재할 수 있어요.
📌 스태프 엔지니어에서 관리자로 진로를 바꾸는 경우가 흔히 생깁니다.
5️⃣ 수석 엔지니어
다른 엔지니어들이 시스템을 배우고 개선할 수 있도록 팀 전체에 해당 시스템의 접근 방식을 구현한다.
업계에 관련된 풍부한 지식을 갖고 있다.
기술 비전을 제공한다.
광범위한 비즈니스 목표를 달성하고 영향력을 행사하기 위해 여러 조직과 협력해야 하는 전략을 수립한다.
미팅에 참여하는 것을 넘어서 필요한 경우 미팅을 주도한다.
비즈니스 목표를 이해하고 관련 목표가 기술과 시스템에 반영되도록 한다. 여러 계획을 비판적으로 검토하고 필요에 따라 조정한다.
팀을 확장/멘토링하고 엔지니어링 로드맵에 긍정적인 영향을 미치며, 주요 지표를 관리하고, 연구 및/또는 프로그램을 작성함으로써 성장을 주도한다.
최소 10년 이상의 경력이 필요한 직급이다(그러나 현직에서 10년 안에 수석이 되는 경우는 흔하지 않다)
📌 큰 크림을 볼 줄 아는 것을 떠나 여러 조직에 영향을 미치는 규모가 큰 업무를 맡는 것이 시니어/스태프와 조금 다른 점이라고 생각합니다.
📌 회사마다 다르지만 경우에 따라 시니어 수석 개발자 직급이 존재할 수 있어요.
6️⃣ Distinguished Engineer
회사 OKR에 중요한 요소를 파악하고 그 영향에 부합하는 기술 방향성에 투자한다.
시스템 아키텍처를 꼼꼼하게 검토하고 미래에 그 시스템이 어떻게 사용될 수 있을지 예상한다.
적절하게 확장할 수 있는 시스템을 구축한다.
문제가 있을 때 효과적으로 의사소통할 수 있도록 하고 제안된 변경 사항의 리스크을 잘 이해한다.
최소 12년 이상의 경력이 필요한 직급이다(그러나 현직에서 특히 빅테크에서는 20년 이상 걸린다)
📌 주요 포인트는 큰그림을 보고 전략을 짜는 것을 넘어서 미래를 내다보는 능력이 필요한 것 같습니다.
🪴 함께 읽으면 좋은 글:
신입, 경력직 회사 생활과 자기 계발에 필요한 것
https://careerly.co.kr/comments/77994
테크 리드/시니어 개발자 되는 법
https://careerly.co.kr/comments/73845
똑똑한 직원이라면 관리자와 해야 하는 10가지
https://careerly.co.kr/comments/76210
고속 승진으로 수석 엔지니어가 된 친구의 조언
https://careerly.co.kr/comments/75658