시니어 개발자로 성장하기
- 시니어 개발자로 성장하기
25년차 개발자
- 한국 벤쳐기업에서 주니어 엔지니어로 시작
- 텔레카라는 글로벌 기업과 ETRI 연구소
- 2007년 구글의 한국 진출에 합류해서 한국과 미국 구글 본사에서 13년 정도 근무
- 구글에서 테크 리드 역할과 people manager 역할
- 2022년부터는 한국에서 뱅크샐러드에서 기술 이사 역할을 하며 senior management
Roles: Software engineer / Tech lead (manager) / People manager / Product owner(or Product Owner) / Technical advisor / Leadership (senior manager) / Adiunct Professor
- 다양한 Role을 가지고 계신것 같다.
 Domains: Embedded / Smartphone(s) / Consumer servic@ / Tech infrastructure / Big Data / Al / ...
- 다양한 도메인들을 구분해서 정리 했다.
큰 주제 : 성과내기 + 영향력 키우기 + 소통하기 + 좋은 습관 키우기
Job Lader
https://www.levels.fyi/t/software-engineer
https://www.levels.fyi/blog/what-are-career-levels-ladders.html
 
  
- Engineer1 에서 시작한다.
- 보통 시니어는 Engineer3 부터 말한다.
- 테크니컬 Track, 관리/매니저 Track으로 나눈다.
Expectations per level
L4
- Being independent, initiating a task L5 - Senior software engineer
- Autonomous
- Project management, leadership, impact L6 - Staff software engineer
- Company-wide impact first L7+
- Industry-wide impact
*프로모션 : 이미 L5 일을 하고 있으니, 프로모션 기회를 달라 라고 말하기.
Roles
Tech Lead (TL)
- 담당 영역에 대해 기술적 결정, 질문들에 대한 담당자
- Variations: Uber Tech Lead, Area Tech Lead
Engineering Manager (EM)
- 일들의 우선 순위 정리
- 채용, 자원 관리
- reportee들의 정신 건강
Tech Lead Manager (TLM)
- 50% TL, 50% EM
- ~ 7-10 9
팀 : 공통의 목표와 성과가 정해지는 그룹
팀장 : 책임을 질 수 있는 담당자, 잘하면 크레딧을 다 가져가고, 아니라면 질책을 모두 당할 수 있음.  
섹션 1. 성과 내기
기대치 이해하기
Software Engineer I Expectations
- Coding
- Debugging and issue resolution
- Quality assurance
- Collaboration and learning
Software Engineer II Expectations
- Independent work - 기본적인 잣대
- Coding and develoment
- Design contributions
- Debugging and code reviews
- Mentoring and knowledge sharing
Software Engineer III Expectations
- Project leadership
- Design and architecture
- Technical excellence
- Mentoring and training
- Product contribution - 프로젝트 아이디어 제안
Senior Software Engineer Expectations
- Project ownership
- Besian and architecture
- Technical expertise
- Code quality
Staff / Senior Staff Software Engineer Expectations
- Technical vision
- High-impact projects
- Contribute to decision making
- Lead and manage teams
- Drive innovations
완료하고 반복하기
주어진 일은 완료하고, 반복하자
- 당연한 이야기, 완료와 반복
- 팀장이나 매니저가 신경 덜 쓰는 방향으로
- 신뢰 획득이 목표
• 팁
- 여러 개의 환경을 다루어 병렬적으로 진행한다.
- 리팩토링, 클린업, 유닛 테스트에 기여한다.
- 매니저 모르게는 하지 않는다.
눈도장 찍기
좋은 일로 언급되기 - 예제
1.결과물 잘 만들기
- code review , issue update 5
2.팀의 사고에 빠른 대처
3.많이 하면 더 눈에 띈다.
4.Optional 인 미팅에 들어가서 견문을 넓힌다.  
- 할 수 있는 것들을 찾는다.
- E.g. note-taking
5.없는 일을 억지로 만들 필요는 없다.
6.남으로 인해 자랑될 수 있는 것을 목표로  
결과물 정리하기
코드
- 저장소 기여자, 코드 리뷰어
 Tracked Issues
- 이슈와 관련된 해결 사항들
 각종 문서들
- OnePager, 각종 제안서, Design doc, 실험 리포트
 더 중요한 문서들
- 회사 개발 블로그
- 내 이름이 들어간 특허
결과물 남기기에 대한 조언들
언제 ?
- context를 바꿀 때 ( 사람 혹은 기능이 업데이트 )
- 주기적으로 업데이트
어떻게 ?
- 제목과 처음 반 페이지에 신경 많이 쓰기
- 다른 신입이나 새로운 팀원이 보고 이해할 수 있게
- 쉬운 언어와 reference 로
- 실패한 경우에도 남겨라
- 팀원들의 리뷰와 함께 ( 가급적 많이 )
섹션 2. 영향력 키우기
역할을 맡기
어떠한 감투를 쓰거나, 혹은 비즈니스 기능의 담당자로 지정 받기
다음 목표
- 어떤 부분에 대해 담당자가 되어
- 나를 찾는 사람이 생기게 하고
- 더 많은, 좋은 동료들을 만들자.
방법 / 팁
- 잘 할 수 있는 영역에서
- 매니저와 팀원들의 지원 하에
- eg. 운영을 맡으면서 유지 보수 등의 담당이 되어
- e.g. 툴과 문서들에 이름을 넣자.
긍정적 효과 -> 영향력 확대
- 능동적, 주도적으로 문제와 과제를 접근하게 됨
- 제품, 동료, 회사에 영향력을 주는 것을 연습
- 상대방의 입장에서 협업 기회를 연습
챌린지
- 순수 개발 이외의 영역에 시간과 에너지가 사용됨 (시간관리 잘해야함)
- 인터럽트에 노출 됨 (코어 타임이 필요할 수)
큰 일을 맡기
- 큰 일 = 더 많은 역할
- 대답할 수 있는(or 대답해야 하는) 질문이 많아지고
- 만나는 사람이 많아짐
- 팀장과 팀원들의 동의 필요
- Autonomous 기대 (알아서 일이 진해이 되고, 어느순간 끝나 있더라)
큰 일을 맡은 후
- 일이 더 많아짐
- 더 많은 책임감
- 시간 관리가 더 중요해 짐.
- 사소한 팁들- 더 많은 기록 남기기 (말보다는 문서가 주는 효과가 크다.)
- 팀장과 매니저의 시간을 더 확보해 주자.
- 다른 멤버들을 이용하자. E.g. 주고 받기
 
2.3 아이디어 제안하기
협업에서의 아이디어
언제, 어떤 아이디어를 ?
- 답보다는 질문을 하기, 제안을 하기
- 문제점과 개선절을 명확하게 할 수 있는 것으로
- 내가 할 수 있는 것들 위주, 내 제안은 내가 진행하기
- 주변의 지지를 받을 수 있는 것들로
어떻게?
- 적극적으로
- 생각 날 때마다
- 문서로 남기면 좋음 - one pager
- 피드백 받고 몇 번 polishing 하고, 공유하기
주의할 점
- 상호 존중
- 상처 받을 필요 없음
다른 팀의 일들 도와 주기
섹션 3. 소통하기
3.1 매니저와 소통하기
매니저와 소통하기 - 좋은 주제들
- 내가 잘 하고 있나요?
- 여기서 막혀 있는데, 어떻게 당신이 도와 줄 수 있나요?
- 여기서 막혀 있는데, 어떻게 회사가 도와 줄 수 있나요?
- 내가 당신을 위해 어떤 걸 하면 될까요 ?
Aggressive
- 내가 어떻게 하면 promotion 으로 갈 수 있나요?
- 내가 어떻게 하면 당신이 promotion 할 수 있나요?
- *서로 윈윈할 수 있는 전략을 취해야 한다.
- 예) 매니저의 일을 50% 분담한다, 대신 매니저가 다른 업무로 성과를 낼 수 있도록 돕는다.
매니저와 소통하기 - 좋은 습관들
- 매니저가 뭘 할 수 있는지를 이해하고
- 정기적 미팅과 비정기적 미팅 구분해서 하기- 정기적 미팅은 가급적 유지
- 1-2주에 한 번?
 
- 직접적인 업무 이외의 내용들 위주로
- 노트를 남기기
- 커피, 산책 등
- Action item 을 주고 받기 0 굳이 업무 내용이 아니더라도
동료 팀원과 소통하기
다른 팀원과 소통하기
4.좋은 습관들
분기말에 한번에 정리하는것은 좋지 않다.
- 프로젝트 작은 단위마다 측정하는게 좋다.
4.1 측정하며 정리하기
무엇을 측정해야 할까
1.운영 메트릭 측정
- 응답 시간, 에러율, 트래픽
- MAU, DAU
2.코드 품질 지표
- 복잡도
- 테스트 커버리지
- 기술 부채
3.팀 프로세스
- 리드 타임
- 작업 효율성
- 이슈 처리 속도
- *예) oo기능으로 업무 프로세스 xx 시간 단축
4.프로젝트 진행 상황
- 빌드 시간
- timelines
5.별도의 리포트
- 실험 리포트
- 고객 만족도
기록하기
이력서에 남길 수 있는 내용들을 모으기
- 팀의 활동으로 기록하여 주간리포트에 반영하기, 동료평가 좋음 
- Impact을 정의하고 정리하기 
- 새로운 툴을 사용했다면 이를 적기 
- 장애 해결 경험 등, 회사에 교훈이 되는 내용도 괜찮음 
- 이러한 기록물들은 추후 의사결정, 설득, 코드 리뷰에 사용된다. 
- 안 쓰는 걸 만들지는 말자. 
- 다른 사람들이 보고 이해하지 못하면 도움 되지 않음 
4.2 도움을 받기
모든 일을 다 혼자할 수 없다.
- 그래서 도움을 받는 훈련도 해야 한다.
긍정적 도움의 예
- 개발자가 그림을 그리고 있을 때 디자이너의 도움
- 비개발자의 단순 반복적인 작업들을 위한 개발 보조 도구
- 당번 순번 조절
필요한 연습
- 어떤 도움이 필요한 지 파악하기
- 회사의 리소스를 컨트롤 할 수 있는 매니저를 이용 - 적절한 인재를 소개 부탁, 소통, 칭찬
- 각자의 미팅 시간을 조절 하되, 부탁한 사람의 시간을 맞추어야 한다. (배려)
FYI: Google Community Guidelines
• Summary
- Be responsible. 여러분의 말과 행동은 중요합니다. 자신의 말과 행동에 책임을 져야 합니다.
- Be helpful. 여러분의 의견은 많은 도움이 됩니다. 생산적인 의견을 내 주세요.
- Be thoughtful. 여러분의 발언은 의도와 상관없이 Google의 입장으로 인식될 수 있으므로 상대방이 오해할 수 있는 발언을 하지 않도록 주의해야 합니다.
1.When communicating, follow the three Google Values.
- Respect the user.
- Respect the opportunity.
- Respect each other.
4.3 개인 기록 남기기
문서들을 습관으로 남기면 큰 도움이 된다. 복리의 효과가 있다.
Don't  
- 평가 시즌에 몰아서 하지 말자.
- 잊어 버리기 전에 모아 둔다.
- 과제의 스프린트 사이클에 맞추어서 갱신하면 좋다. 
개인 기록 남기기 - 개인 OKR (개인 성과 관리, Goal 작성)
1.분기 별 작성
- (팀 OKR Or KPI 에서 발췌)
- 중간에 한 번 체크 : 1주~2주 마다 progress 체크하여 마감까지 완성할 수 있는지 체크하기
- 개인 grading : 스스로 점수를 매기기
- 업무 이외의 것도 포함 : 자기계발, 건강관리 업무등도 10%정도 비중으로 두고 작성을 한다.
2.매니저와 공유 추천
- 중간중간 피드백, 공유 하기
4.4 이력서 갱신하기
모르는 사람이 봐도 알 수 있게 정리하기
- 대외용을 기준으로 작성하자. 전배가 있다면 사내 기밀정보를 담을 수 있는 정보도 좋다.(사내용)
- 팀의 일과 나의 일을 구분해서 작성을 해야 한다.
- Impact 위주로 추가하기
갱신 주기 설정하기
- 큰 프로젝트 정리할 때
- 분기 별 한 번
Q
장기적인 커리어 관점에서 기술 vs 매니징 역량 중 뭐가 더 중요할까?
둘 다 중요하다.
- 향후 10~20년을 생각해보면 모두 챙겨야 하는 역량이다.
한국과 미국의 일 하는 환경
매니저의 performance을 올리라는 주문은 당연히 있다.
- 이때, 자발적이고, 공격적인 업무를 하고, 성과의 양을 비교할때 차이가 많이 난다.
프로모션은 언제 준비해야 할까요?
- 매니저와 계속 '언제'라는 이야기를 했다.
- 한국의 경우 감투를 먼저 주고 일을 시키는 경우도 있다.
- 기약보다는 보상의 형태이다.
- 주변 사람들이 인정할 만한 성과가 있어야 한다.