개발자 병특 이직 준비 (feat. 회사선택 기준)

병특 이직을 하는 것에 대해 간단히 본인의 경험을 몇 글자 적어본다

😀 profile

본인은 현재 전문연구요원으로 모기업에서 개발자로 일하고 있다.

  • 석사 졸업 후 바로 입사한 케이스 이다.
  • 개발이라고 할 것도 없고 석사때 까지는 파이썬으로 개발하였지만, 개발자 라고 하기에는 부족했다. (백엔드는 django 나 하고 있었고, DB는 조금 클라우드도 조금 만져본 정도)

✍ 첫입사

입사 하고 나서 정말 바빴다. 바쁜정도가 도를 지나친 수준 이었다. 어느 정도였나면 들어가자마자 제안서 썼다. 기술파트만이지만...

제안서 한 10개를 1달정도에 다 썼다.. 나란사람.. 훗

  • 관련한 기술들 서베이 하고 당위성을 찾고 그 정도야 문제가 안되었다. 글이라는 건 서론 본론 결론의 구성에 주장에 근거만 있으면 되니깐.
  • 가장 문제였던 점은 처음 써본다는 것이었다. 제안서라는 것에 있어서 참고할 만 한 것도 없으니 이건 무슨 망망대해에 조각보트가 배회하는 것 처럼 느껴졌다.

😅 적응기

난 회사에 온 몸과 정신을 바쳤다.

오히려 아침일찍 30분전 출근 퇴근시간 후 약 20분 정도 정리를 하면서, 최대한 내가 이 회사에 헌신하고 있다 라는 것을 보여주고 싶었다.

  • 그도 그럴 것이 병특, 전문연구요원은 될지 안 될지도 모르는 약간 떨리는 불안한 심정이 있기 때문이다.

여기서 팁이다. 전문연구요원을 준비하는 우리 석박사분들 회사에 들어갔다고 다 편입시켜주는 건 또 아니다.
모종의 이유로 병무청 배정제한을 갑자기 받는다던가, 미리 와있던 사람에게 TO를 줘서 본인이 몇개월 기다릴 수도 있다. (중소기업의 총괄배정은 예외다)

하여튼 여차저차 하게 되어서 전문연구요원으로 시작할 수 있게 되었다.

그 때는 정말 막연한 군대 문제에 대한 불안감이 완벽히 해소가 되었다고 느꼈으니깐... 뒤에 딸려올 문제는 상상도 못하고

회사가 바쁠 때는 내 일이 많을 때는 아침 5시에 출근한 적도 있다. 당연 열정 페이 였고, 이건 내가 능력이 부족하다고 생각하니깐 수당 받는 것에는 별로 신경도 안 썼다.

  • (그렇게 돈에 욕심이 많은 편은 아니라서..) 남들은 모르는 나만 알고 있는 얘기이다.

🙃 회사의 환경

적응하는데 가장 어려웠던 것이다. 여기서 회사의 환경이란 무엇인가하면, 개발자의 입장으로써

  • 코드리뷰 문화
  • 담당 프로젝트 코드 인수인계
  • 새 프로젝트 기획
  • 회사에서 사용하고 있는 소프트웨어 (슬랙, 노션 등)

이중에서 주니어 개발자들은 희망과 소망의 날개를 펼치면서

아 이제 드디어 나도 개발자라는 커리어를 겪는구나, 엄청 열심히 해서 능력 키우고 배워야지

라고 생각 할 수 있다.
어림없다. 생각보다 IT 기업인데 코드리뷰 문화가 없는 곳이 많다. 또는 한다고는 하는데 제대로 정립이 안되서 이도저도 안되는 코드리뷰 문화이다. 필자는 후자였다.

코드리뷰 문화 말고 다른 것들은 솔직히 적응하는데 어렵지는 않다. 하지만 이걸 적응한다고 편한 것은 아니었다.

🤯 룰브레이커들의 등장

이 룰브레이커란 회사에 규정이나 병무법 규정을 어기는 사람을 다 콕 집어 얘기한다. 이건 다니고 있는 개발자 뿐만 아니라 비개발직군 거기에 임원진도 포함된다.

  1. 지각
  2. 무단결근, 연락 안됨,
  3. 15분 이상 자리비움

이게 직원들의 룰브레이크 라고 한다면

  1. 법을 회피하여 하려는 것
  2. 연구분야외에 업무하는 것
  3. 논문이나 github에 상업적으로 쓸 수 없다는 명시가 있는데 그냥 쓰자는 의사결정

이게 임원들의 룰브레이크 이다.

첫번째, 직원들의 룰브레이크는 표본이 적지만 회사생활 안 해본, 사회생활 안 해본 사람들에게 나타난다. 회사에는 산업기능요원들이 있다. 고등학교 바로 졸업하고 나서 들어온 갓난애기들이다.

  • 따라서 사회생활을 못하고, 책임감이 없는 행동을 한다. 그리고 추궁하면 변명을 한다. 당연히 성실한 사람들도 있다
  • 명심하자. 변명보다 인정하는 것이 더 쉽다. 모든게 변명인 직원이 있었다.

두번째, 임원들의 룰브레이크.
다 괜찮다. 다만 룰을 지키려는 기본적이 도덕적 양심이 있어야 하는데

어짜피 학습하면 데이터 뭐 썼는지 모른다

라고 하는 것에 경악을 금치 못했다.

  • 잘 생각해보자. 당신이 피땀흘려 만든 코드나 데이터 무단으로 가져다 쓴다. 이게 중국이 한국 프로그램 배끼기를 해서 우리나라 사람들이 욕하는 거랑 뭐가 다른가.(물론 한국도 일본꺼 배낀적도 있다. 일본도 마찬가지고 (특정국가의 비하의도는 없습니다))

  • (난 연구실 시절 엄청난 석박들을 보면서 존경심을 가지고 있다. 대한민국의 모든 석박들 화이팅이다)

😵 입사 후 노력

그래도 많이 참으려 했다. 어짜피 계약관계의 을의 입장으로써 난리치다 해고시켜버리면 안되니깐(물론 해고는 사유가 있어야한다)

일도 재미가 있었다. 한번도 안 다뤄 본 자바스크립트로 Frontend도 해보고, 본격적으로 서버도 만들고, 클라우드 서비스를 사용하여 배포도 해보았다. 그만큼 성장해가는 나 자신이 느껴졌다. 그렇게 하다 보니 1년 사이에 내 테크스택이 이루 말할 수 없을 정도로 늘어나갔다.

  • 뭔가 테트리스 하는 것 처럼 나 이거 부족한데... 에서 하나하나 채우는 느낌이었다.

다른 개발자들과 그리고 개발팀의 문화를 위해 여러가지 제안도 하고 테스트도 해보았다. 결론은 실패다. 실패한 이유는 나중에 가서 얘기한다

🤖 세미나, 해커톤, 코드리뷰

  • 여러가지 시도를 하는 것 중에 이것들이 있겠다. 서로가 개발에 대해 고민 하던 것을 오픈하는 것으로 시작 해야 한다고 생각해서 시작했다.

  • 결론은 못했다. 주니어들은 할 게 없다. 시니어가 주도 해야 한다. 하지만 시니어도 없다. 기껏해서 임원이 와서 보면 칭찬은 안하고 피드백만 준다. 이 피드백이 "너 잘못했다" 이거다.

  • 의견도 못낸다. 강압적인 분위기라는 말이 아니다. 몰라서 못 낸다.

    자기개발을 안하려는 개발자는 도태된다

실제로 내가 코드를 작성하고

이렇게 하시면되요

라고 하면 "이렇게" 만 한다. 그렇게 저렇게는 안하는 무지성 코더들의 등장이다.

  • 또 팁이다. 코드를 보고 분석을 해야한다. 왜 이렇게 되는지를 알아야지 좋은 개발자이다

결론은 하려는 의지도 없고, 피드백은 항상 부정적. 이런 것들이 쌓이다 보니 내가 뭘 잘못했나 라는 포화상태가 왔다. 한마디로 말해 번아웃(burn out) 이다.

👹 번아웃

IT 기업인데 시니어가 없는 건 비일비재 하다. 그럴 수 있다. 원래부터 이과도 적고 그 중 컴공은 손에 꼽고. 그래서 요즘은 문과도 코딩을 하고 이과인데 전공이 아닌데 코딩에 뛰어드는 사례들도 변변치 않게 보았다.

다만 임원들이 원하는건

고학력의 실무에 바로 할 수 있는 사람

이다. 이런 사람들이 보통 내로라 하는 기업에서 인정 받고 있다. 임원의 선택은 존중한다. 하지만 눈높이를 낮추자.

  • 이해를 못하는 것은 아니다. 고학력을 뽑아 놓아 보니 실무(코딩)은 애기수준, 실무에 바로 할 수 있는 사람을 뽑아 보니, 그 실무 능력이 너무 낮은 경우 다 겪어서 그럴 것이다.

이러다보니 내가 할 일은 산더미처럼 불어 나갔다. 그러다 보니 나는 모든 개발에 다 참여하고 있고, 모든 개발프로세스를 다 알고 있는 super man 이 되었다.(하얗게 불태웠어...)

  • 번아웃은 이 이후에 일어났다. 재미가 없었다. 모르는게 있고 그걸 서로 보충해 주면서, 아니면 알려주면서 성장하는 것인다. 나는 반대였다.
  • 내가 알고 있는 것을 알려줘야 하고 나는 받는게 없었다. 여기까지도 괜찮다. 다만 이게 반복이 되었다.

무슨말이 하고 싶은거냐면 모르는걸 알려줘도 또 모른다는 것이다.

내가 방법과 해결책을 알려주면 그 방법이 어떤지 방법을 탐구하는 것은 당연하다. 근데 포인트를 해결책 에게만 집중되어 있다. 이게 무지성 코더들이라고 한 이유이다. 이게 코드 복붙하고 뭐가 다르지...

  • 또 팁하나. 본인들이 면접 볼 때 검증이 애매한 사람들 (github 이나 blog 운영 안하는) 은 지옥 끝까지 파고든다.

이게 왜 그럴까요?
왜 이걸 쓰셨나요?
이것도 있는데 고려해보셨나요?

👽 지식의 습득

약간 글의 결을 달리해서 본인들의 개발 능력의 도움이 되고자 몇자 적으면

  • 예전에 AWS 로 인턴 면접을 보았다. 그때 전화 통화로 1시간 동안 딥러닝에 대해서만 얘기했다. 내가 하는 연구에 대해서는 일절;;

  • 전화를 끊고 나서 든 생각은 내가 너무도 무지하다 라는 것에 창피하였다.

  • 자극 받아 엄청 공부했었다. 이론적인 부분만이 아니라, 이렇게 하면 어떻게 되지? 이러면서 개발을 하였다. 이렇게 되어서 가장 큰 장점이었던 것이, 시니어 처럼 뭔가를 제안 할 수 있다는 점이다. (아는게 있기 때문에, 거기에 경험까지 있다면 충분히 설득력 있는 phrase 가 된다)

한가지 간단한 예를 들자면,

  • 웹개발을 하려는 사람들에게 질문
    - 백엔드와 프론트엔드의 통신 프로토콜의 종류가 몇개나 있고 장단점이 무엇인가?
  • 모바일개발을 하려는 사람들에게 질문
    - React-Native 와 Flutter 의 차이가 무엇인가?
  • 데이터분석 관련 하려는 사람들에게 질문
    - 본인이 만든 모델에 대해서 얼마나 그리고 어떻게 검증을 하였는가?

질문에 대한 대답은 간단하다. 왜? 를 끊임없이 탐구하자.

왜 이 프로토콜은 이럴 때 안 좋은가 거기에 자신이 했던 경험까지 추가한다면 완벽하다.

  • 난 정말 과할 정도로 한 것 같다.

  • 반드시 하라는 것은 아니지만 이론만 아는것과 실제 구현능력은 완전 다르다.
    (중학교때 수학 수열 문제 그래 이건 이렇게 하는 거지 라고 방법만 알고 실제로 고민 안했더니 중간고사때 틀린기억이 새록새록 나타난다)

문제점들이 속속

💢 커뮤니케이션의 부재

관련 영상이 있다 영상

정말 좋은 기업에서의 정말 대단한 개발자 님들 이시다. 여기에 뽑고 싶은 신입 개발자에 대해 나온다.

  • 공통적으로 성장가능성이나 그런 것들도 보는건 당연하다고 생각했다. 다만 가장 흥미로웠던 것이 커뮤니케이션 능력이다

  • 석박 분들은 잘 캐치해 주시면 좋겠다. 연구라는 것이 특히 혼자하는 연구라면 커뮤니케이션 능력이 늘 수가 없다. 차라리 다행인건 논문에는 당위성을 포함해야하고 state of the arts 를 써서 다르다? 라는 것을 보여줘야한다.

  • 그렇게해서 주장 및 설득을 하고 나면 지식이 쌓이고 그걸 기반으로 대화 및 토론이 가능하다.

아는게 많아도 커뮤니케이션 능력이 안 좋을 수 있지만, 기본적으로 많이 알려고 하는것, 호기심이 기반이 된다면 여러분은 충분히 주니어로써 좋은 직장에 갈 수 있다.
(여러분은 석박을 한 그 분야에서 가장 잘 아는 사람이기 때문에 베이스가 남들과는 다르다)

따라서 본론으로 돌아가자면 시니어도 없고 번아웃도 온 상태라 아무 것도 하기가 싫어졌다. 거기에 커뮤니케이션은 안 하려고 하는 개발자들 덕분에? 회사의 활기 생동감은 없어졌다.

  • 다 안다. 나도 연구해보았고 개발자이다. 개발자 디폴트로 소프트웨어가 깔려있다. 귀찮음 이다.

나만 알아보면 되지 코드가..
아 귀찮다. 일단 나중에 수정해야지

이런 생각 버리자. 적어도 자신이 개발자로써 커리어를 쌓을 것이라면 "클린코드" 는 생활화 하자.

남들도 안 귀찮은 건 아니다.

다만 당장의 귀찮음나중에 올 피드백 등을 받고나서의 기분은 비교할 수 없을 정도로 후자가 좋다.

  • (사람은 누구나 인정받고 싶지 않나...?) 익숙해지면 귀찮은게 아니게 된다.

그래서, 이 회사에서의 성장이 멈추고 있다는 느낌과, 재미 라는 것을 점점 희미해져 갔다.

💣 Load Leaning

앞서 얘기 했는 지는 모르겠지만, 정말 많이 하고 정작 하는 사람은 적어서 일이 더딜 수 밖에 없고, 거기에 능력이 부족한 주니어 개발자들이 하나씩 거대하고 맡고 있는데, 임원이 바라는 레벨은 한 없이 안 보이는 하늘 꼭대기의 유니콘을 원한다.

간단하게 하나의 시스템을 프로덕션 레벨로 런칭하고자 하는데, 백엔드에 한명, 프론트에 한명, 디자이너 한명. 이렇게 3명을 가지고 enterprise 레벨이 나오겠는가에는 question mark.

  • 물론 뛰어난 개발자들이면 할 수 있다. 다만 임원이 원하는 건 시간이 촉박하다. 절대로 못 한다.
  • 본인들은 한달만에 클라우드에 서버를 배포해야하는데 API 기능이 30가지가 되고 거기에 AI 까지 해야한다. 할 수 있겠는가? 임원을 만족 시킬 수 있겠는가? 가능하다면 진심 같이 밥 먹고 얘기하고 조언 받고 싶은 유니콘 들이다. 연락주세요 ㅠ


이렇드 로드가 지나치게 치우치고, 그거에 대해서는 못한다고만 하는 것에서 너무 의욕이 없어졌다.

제일 힘들었던 것은 내가 원하는 개발자들간의 서로 소통, 어떻게 보면 debate 가 없었기 때문에

개발자를 뽑을 생각이 없다

라는 것에 대해 충격을 받았다. 그래서 이직을 결심한 이유도 있다.

👋 이직준비

이직은 결심은 했지만 내가 맡은 일에 대해 책임감은 있어서 업무에 지장이 안되는 정도로 작게작게 준비했다. 약 한 6개월 정도 인 것 같다.

이직을 하기에 앞서서 내가 회사를 본 것은 딱 세개로 추려 보았다

  • 회사에 개발자가 어느정도 있나
  • 개발 문화가 어떻고 주 몇회 운영되는가
  • 회사의 비전이 있는가

첫번째와 두번째는 이 긴글을 읽고 계신다면 이유는 아실 것이라 믿는다. 마지막 부분이 솔직히 제일 중요하다고도 해도 과언이 아니다.

💭 회사 비전

이직을 하는데 회사의 비전이 안 좋은 것도 있었다.

지금 뻔히 공룡기업들이 내었고 대기업까지 지금 들어가는 경우도 있는데 경쟁해서 회사에서 만들 제품이 차별성도 없어보이고, 이길 수 있을지도 의문이었다.

  • 실제로 카카오가 한국에 자리 잡고 라인은 손가락만 빨고 있는 느낌이다. 그만큼 첫 선발대 라는 것은 중요하다 생각했다

투자도 많이 받고 있는가 의 정량적인 지표가 있다면 정말 좋다

📑 지원 및 면접

솔직히 두번 다시 실수하고 싶지 않아서 (물론 좋은 경험이었다) 한 3주는 고민한 것 같다.

그러다 문득 아니 지원 안하고 고민하는 것 보단 지원하고 고민해보자 라는 것으로 바로 냈다.

지원서류 낸지 2시간만에 합격 및 면접일정을 잡았다.

  • 면접은 요즘같은 혐로나 시대에 당연히 원격으로 하였다. 한 30분하면서 이런 저런 생각을 드렸다.

  • 초고속 성장을 하려고 하는 스타트업에서는 실력있는 개발자가 너무 필요하다.
    개발자가 없기도 하고..... 필자 뇌피셜 솔직히 가뭄에 단비 같았나 (ㅈㄹ을 한다)

면접이 끝나고 나서 정말 바로 전화가 왔다. 사실 면접 때 나는 의아했다.

아직 합격 확정이 안 났는데 이런거 하셔도 되고요 저런거 하셔도 되고요 라고 하는게 어라 합격한 사람한테 말하는 느낌인데? 라고 기분이 들었다

  • 또 하나 마음에 들었다는 건 전직장이랑 비교를 해도 같은 pre-A 시즌 에 있는데 커지기 위해서 개발자를 공격적으로 뽑아야 한다라는 생각이 나를 자극하게 되었다.

💰 연봉협상

필자는 돈에 그렇게 욕심이 많지는 않다.

다만 연봉 offer 가 들어 왔을 때 말 그대로 "억"💵 하는 소리가 나왔다.

(면접회사) 지금 받고 있는 연봉은 너무 말도 안된다
(면접회사) oooo만원 으로 맞춰주면서 stock에 stock option까지 주겠다

거기서 또 느껴지는 것이 내가 대우 받고 있구나 라고 생각이 들었다. (내부규약이라 얼마라고 공개는 못한다)

이전 직장도 대우 받는다는 느낌은 들었다. 다만 이게 이직을 결심한 이유는 당연히 아니다.

📦 Counter offer 그리고 다른 회사

여러 제안을 받았었다. 최종적으로 전체 합격한 회사들과 마지막 면접을 남기고 있는 회사 등이 있는데 이러하다

  • 이커머스 관련 회사
  • 배달 관련 회사
  • 핀테크 관련 회사
  • 모 대기업

다들 이름만 말하면 알만한 회사들이다. 만약 개발자들 중에 이렇게 들었을 때 모르면 관심을 가져보자

counter offer 를 받았냐? 대우도 받았고 개발자도 없으니 더 잡으려고 했었을텐데?

  • 솔직히 기억이 안난다. 마음이 떠나간 순간 아무 소리도 와 닿지가 않았던 거다.

📁 후기

그래서 필자가 뭘 말하고 싶냐.

병특을 준비하는 석박 개발자들에게 물음을 던진다.

회사선택 기준

💼 기존에 어느 정도 매출이 있는 서비스가 있는 회사인 경우

  • 개발자 수/시니어 개발자 수
  • 개발을 public 하게 공개하고 있는가
  • 개발 문화

이렇게만 되더라도 실제 개발자들 끼리 소통하는 것으로 책임감과 자신의 커리어가 매우 단단해 질 것이다.
물론 자신이 질문하면서 묻는 것도 좋은 방법이다. 질문을 두려워 하지 말자

  • 괜히 대충 네임밸류만 가지고 들어가지는 말자.
  • 이중 개발 문화가 정확하게 자리잡고 있는 것이 좋다

💼 스타트업이고 이제 막 신생인 경우

  • 비개발직군 : 개발직군 이 당연히 개발직군이 많아야 한다 (너무 적으면 안되어서 최소 팀이라고 할 수 있는 5명 이상)
  • 개발 토론 문화 : 반드시 있어야 한다.
  • 회사의 비전 (투자 상황, 앞으로의 시장 전망)
  • 회사 임원의 개발자 여부 : 케바케이지만 나는 그러하다 태클 ㄴ

이렇게 될 경우 회사 임원들이 개발자 대우가 다르다. 그리고 자신의 의견이 바로 반영이 되면서 굉장한 effect 를 전달할 수 있다
덤으로 회사가 많이 커지면 커리어적으로도 물론 그만큼 인정도 받는다

  • 절대로 SI 나 컨설팅 쪽은 되도록이면 피하는 것이 좋다. 매출이 일정하지가 않다.
  • 또 개발자가 많을 가능성이 적고, 많다 해도 갈려나간다

마지막으로

자신이 하고 싶은게 연구인지 개발인지 확실하게 할 것

  • 병특 준비하는 석박분들은 연구랑 개발은 완전히 다르다. 알아두셨으면 좋겠다. 만약 이 이질감을 느끼고 싶지 않다면 연구기관으로 들어가시는 걸 추천한다 TO가 없지만..ㅠㅠ
  • 물론 대기업에 데이터 관련 조직에서는 연구만 할 수도 있다.
  • 주니어 개발자에게 데이터분석을 시키는 곳은 극히 드물다(기본 분석경력 3년이상을 원한다)

또한 딥러닝과 개발은 다르다.

  • 내가 느끼기에는 데이터분석과 딥러닝은 개발에 있어서 툴 정도이다. 그걸 서비스화를 해야지만 비로소 가치창출을 할 수 있다고 본다.
  • 만약에 자신이 만든 분석결과나 모델을 실제로 적용하고 싶고 그러한 회사에서 그러한 일 까지 하고 싶다면 지금이라도 백엔드 개발부터 시작하자.

본 글은 지극히 필자의 개인적인 생각이 꽁꽁 뭉친 쓴 글입니다. 그렇지 않은 회사도 많고 좋은 회사도 많겠지만 저는 다 응원합니다~

좋은 웹페이지 즐겨찾기