시니어 개발자는 코드를 잘 짜는 사람이 아니다. 물론 코드도 잘 짜야 한다. 하지만 그것만으로는 부족하다. 시니어는 팀을 더 낫게 만드는 사람이다.
기술적 깊이가 필요하다. 한 분야를 깊이 파야 한다. 프론트엔드든 백엔드든 인프라든. 전문성이 없으면 의사결정을 내릴 때 근거가 부족하다. 깊이 없는 넓이는 시니어의 조건이 아니다.
커뮤니케이션
기술을 비기술자에게 설명할 수 있어야 한다. 매니저, PM, 디자이너와 소통해야 한다. 왜 이 기술을 선택했는지 설명해야 한다. 왜 이 일정이 필요한지 논리적으로 전달해야 한다.
문서화도 커뮤니케이션이다. ADR(Architecture Decision Record)를 작성하자. 기술 결정의 배경과 근거를 남기자. 미래의 동료가 감사할 것이다.
멘토링
주니어를 성장시키는 것이 시니어의 역할이다. 코드 리뷰로 가르친다. 페어 프로그래밍으로 함께 문제를 푼다. 직접 하는 것보다 가르치는 게 더 어렵지만 더 가치 있다.
팀의 생산성을 높이는 것도 멘토링이다. 반복 작업을 자동화하자. 문서를 정리하자. 온보딩 프로세스를 개선하자. 자신만 성장하면 시니어가 아니다.
겸손함
모르는 것을 인정하자. 기술은 계속 변한다. 배울 게 끝없이 있다. 내가 틀릴 수 있다는 것을 받아들이자. 경험은 자산이지만 고집은 부채다.