멘토링
8 posts
리드 엔지니어란?

To OO님, 주니어, 시니어를 거쳐 언젠가는 조직의 리드 엔지니어가 될테니 리드 엔지니어의 역할과 중요하게 여겨야 할 것들에 대해 얘기해 줄게. 리드 엔지니어의 역할 리드 엔지니어의 역할은 크게 3가지로 요약할 수 있어. 기술 리드 조직의 미션 기반으로 엔지니어링 팀의 기술 목표를 세우고 효율적인 목표 달성을 위해 로드맵을 수립합니다. 조직의 기술 스택을 결정하고 적용하는 과정을 리드합니다. 프로덕트 아키텍처를 만들고 발전시켜야 합니다. 기술 코치 팀이 기술적으로 성장할 수 있는 환경을 만들고 적극적으로 코치해야 합니다. 팀의 기술적 목표를 높게 유지할 수 있도록 해야 합니다. 일하는 방식에 대해서도 팀원이 우선순위 기반으로 자신의 일정을 계획하며 관리할 수 있게 코치해야 합니다. 팀 매니징 조직의 방향성과 비전을 엔지니어들에게 이해시키고 같은 방향을 바라보게 개선합니다. 인재의 채용과 유지 팀에 맞는 최적의 엔지니어를 찾기 위해 노력합니다. 인재들을 주기적으로 면담하여 문제가 …

풀스택의 장점

To OO님, 풀스택을 해야하는가에 대한 고민 잘 읽었어. 엔지니어 성장과 프로덕트 두 가지 관점에서 풀스택을 지향하는 것은 당연하다고 생각해. 엔지니어는 기술을 사용하여 문제를 해결한다고 정의했지? 엔지니어가 성장한다는 것은 점점 더 효율적(더 빠르고 정학하게)으로 문제를 해결할 수 있게 되는 것을 의미해. 특히, 프로덕트 관점에서 문제 해결을 하려면 여러 해결 방법들에 대해 가장 빠른지 또는 효율적인지를 판단하기 위해 여러 기술을 알아야 필요가 있어. 이러한 이유들로 결국 영향력 있는 엔지니어가 되려면 풀스택을 해야 하는데 그 이유를 자세히 설명해 줄게. 효율적인 문제 해결을 위해 예를 들어, 앱의 로딩시간이 길어 사용자가 이탈한다는 문제를 해결하기 위해 담당 엔지니어들이 해결 방법과 필요한 일정을 제안했어. 백엔드 : API 성능 개선 / 3일 iOS : 로딩 상태 애니메이션 인디케이터를 추가 / 1일 AOS : 로컬 캐시를 이용해서 api 호출을 줄임 / 2일 과연 어떤 해…

번아웃에 대응하는 방법

To OO님, 번아웃이 온 것 같아서 걱정이 크다는 메일을 보니 예전의 내가 떠오르며 남일 같지 않더라. 나는 대략 3년 정도에 한 번씩 번아웃이 왔었거든. 어떻게 해결했냐고? 백엔드에서 iOS로 직군을 바꿔보기도 했고 이직을 통해 새로운 곳에서 환경과 업무에 변화를 주기도 했었어. 번아웃이 여러 이유가 있겠지만 가장 큰 이유는 현재 상황에 대한 불만이 개선되지 않는 상태에서 계속 업무를 해야하는 상황일 때 온다고 생각해. 경험상 엔지니어들은 아래 상황들이 지속될 때 번아웃이 오더라고. 기술의 변화를 줄 수 없는 레거시 환경에서의 업무 코드 리팩토링과 성능 개선을 못하고 계속 새로운 기능만 구현해서 기술부채에 대한 부담 업무의 중요도와 내가 생각하는 중요도가 일치하지 않는 상황 일정에 대해 주도권이 없어 엔지니어 의견과는 상관없이 결정되고 그 일정을 반드시 지켜야하는 상황 문제의 해결 방법이나 사용하고 싶은 기술 스택이 조직의 방향과 맞지 않은 상태 자, 그럼 번아웃이 오면 어떻게…

일정보다 더 중요한 것

To OO님, 드디어 원하는 곳에서 엔지니어로 커리어를 시작했구나! 새로운 곳에서 시작을 축하해! 게다가 벌써 업무에 투입되서 첫 배포까지 했다니 대단하다. 이번 메일에서 일정으로 인해 고민하고 부담을 갖기 시작한 것을 보니 엔지니어로서 본격적으로 커리어를 시작했구나란 생각이 들어. 사실 경험 많은 시니어도 일정을 지키는 것은 어렵긴 마찬가지거든. 왜 항상 예측보다 시간이 오래 걸리는 이유? ‘애자일 조직혁명’의 저자 ‘스리람 나자얀’은 소프트웨어 개발이 항상 예측보다 시간이 오래 걸릴 수 밖에 없는 이유에 대해 소프트웨어 개발은 생산 공정이 아닌 디자인 공정이기 때문이라고 얘기했어. 소프트웨어 개발이 왜 항상 예측보다 시간이 오래 걸리는 이유? 진행하고 나서야 그 필요성을 깨닫게 되는 것들이 있음 아무리 예측을 잘하더라도 파악할 수 없는 무지(Unknown unknowns)를 비켜나갈 수 없다. 예상조차 하지 않은 일을 대비할 방도란 없기 때문이다. 그러므로 소스코드는 제품이 아…

주니어 vs 시니어

To. OO님, 주니어와 시니어를 왜 구분하는지, 어떤 기준으로 나누는지 궁금해 하는 것 같아서 설명해 줄게. 조직에서는 원활한 협업을 위해 팀원의 역량에 따라 역할을 나누어 운영해. 단순히 경력으로 구분하지는 않아 채용 과정의 편의를 위해 연차로 구분하기도 하지만 실제 경험해 보면 10년차인데 3년차 정도의 역량을 가진 경우도 있어. 아쉽게도 그동안 성장을 위해 어떤 노력을 해왔는가에 따라 천차만별이야. 그렇기 때문에 단순히 경력으로 시니어, 주니어로 나누기 보단 팀에서 기대하고 있는 각 역할을 담당할 수 있는지로 구분하고 있다고 생각하면 돼. 우선 팀에서 주니어와 시니어에게 기대하는 역할에 대해 알아볼까? 주니어의 역할 주니어 엔지니어의 역할에 대해서 설명할게. 주어진 업무를 완료합니다. 업무를 왜 하는지, 목적이 무엇인지 이해하고 시작합니다. 업무는 우선순위 순으로 진행합니다. 완벽한 구현보다는 주요 기능을 빠르게 구현하여 테스트를 반복하며 완성도를 높힙니다. 완료한 업무를 …

채용 인터뷰시 역질문 활용법

To. OO님, 인터뷰를 진행하고 있다고 알려준 회사들을 보니 저번에 조언한 보람이 있단 생각이 들었어. 채용 인터뷰 말미 역질문 시간에 어떤 질문을 해야할지 몰라 고민이라고? 대개 인터뷰 마무리 시점에 지원자에게 질문할 시간이 주어지지. 지원자의 입장에서 채용 인터뷰는 함께 일할 동료들을 미리 만나보고 조직에 대해 알아가는 기회이기도 해. 인터뷰 내내 질문에 대해 답변을 능숙하게 하지 못했더라도 역질문 시간 만큼은 당당하게 질문하도록 해. It’s your time! 경험상 인터뷰 동안 답변을 잘하지 못해 탈락이 예상된 상황에서도 역질문 시간을 통해 반전이 된 경우도 있었든. 그래서 잘 활용해야해. 아직 인터뷰는 끝나지 않았으니깐. 과연 엔지니어가 성장할 수 있는 조직인지 알아보기 위해 참고할 만한 질문들을 알려줄게. 엔지니어들이 어떻게 성장하고 있는지? 두 번 강조해도 지나치지 않은 것은 성장할 수 있는 조직인가?를 확인하는 것이야. 이 조직의 엔지니어들은 업무를 통해 어떻게 …

채용 인터뷰 준비하기

To OO님, 채용 인터뷰를 어떻게 준비해야 할지 모르겠다고? 어떻게 하면 질문에 답변을 잘해서 원하는 조직에 합류할 수 있을까? 지금부터 질문을 작성하는 인터뷰어 입장에서 인터뷰를 준비하는 방법에 대해 설명해 줄게. 채용 공고의 자격 요건을 확인하기 사실 인터뷰 질문은 채용 공고를 보면 알 수 있어. 기술 질문은 이 요건들을 집중적으로 검증하기 위해 작성되어 있다고 보면 돼. 우리팀의 백엔드 직군의 예를 들어 볼게. 자격요건 Java에 익숙하고 기타 언어 하나 이상을 습득한 분 Spring 프레임워크(Spring Boot)를 이용한 Web Application 개발경험이 있으신 분 MVC framework 기반의 웹 서비스나 API 개발 경험이 있으신 분 MySQL(Maria DB), MS-SQL 등 RDBMS 경험이 있으신 분 기본적인 Linux/Unix 명령 사용 능력을 갖춘 분 테스트 주도 개발 및 페어프로그래밍에 익숙하신 분 우대사항 Java 기반의 C2C 마켓 플랫폼 서…

주니어 엔지니어가 성장할 수 있는 회사는?

To. OO님, 엔지니어로서 어디를 지원할지 고민이 클거라 생각해. 결론부터 얘기하자면 연봉과 처우가 좋은게 다는 아니라는 점이야. 엔지니어로 커리어를 시작하는 지금은 참으로 중요한 시기이고 어디서 시작을 하느냐가 커리어 전반에 영향을 끼치게 될거야. 지금 천만원 더 받으려는 선택이 나중에 더 큰 혜택을 누릴 수 있는 포지션을 놓치게 하기도 해. 그렇다면 어떤 회사를 지원해야 할까? 지금 엔지니어로서 커리어를 시작하는 시점에서는 무조건 성장할 수 있는 회사로 가야해. OO님도 잘 알고 있겠지만 엔지니어는 기술을 사용해 문제를 해결하는 사람이야. 그렇다면 엔지니어로서 성장한다는 것은 어떤 의미일까? 그것은 기술을 사용해 문제를 해결하는 역량이 성장한다는 것이고 이전 보다 문제를 더 빠르고 효율적으로 해결할 수 있게 된다는 것을 의미해. 이렇게 계속 성장하다보면 풀어야 할 문제의 난이도가 올라가는 시점이 오게 되는데 이때가 시니어, 테크리드, CTO로 역할이 확장되는 시점이야. 자, …