0219

정보

[정보 공유] 스타트업에서 신입 {엔지니어}에게 정말 기대하는 것들

당근마켓 이영신, Recruiting Manager

채용 A부터 Z까지

- 웹페이지 전부에 대한 담당

- 채용 관련 내용

- 인턴, 정규직 등까지 운영

- 신규 입사자의 온보딩

- 채용담당자로써, 면접관 관리까지

스타트업은 신입 엔지니어에게 무엇을 기대할까?

- 이를 통해서 우리가 무엇을 준비할 수 있을지 도움이 될 것 같다.

1. 스타트업의 조직 구조와 엔지니어의 역할

(스타트업의 5가지 특성 이해하기, https://acquiredentrepreneur.tistory.com/127)

성장을 보면 J-Curve가 많이 보여진다.

1) 앞단 : 빠른 가설 > 검증 > 학습

- MVP, Product/Market Fit

2) 뒷단 : 프로덕트 & 매출의 급격한 확장

- Channel / Product Fit

- 제품, 비즈니서 모델과 가장 알맞은 성장 채널을 찾고, 집중함으로써 빠르게 성장

조직 구조의 2가지 대분류

1) TRADITIONAL TEAM 기능 조직

: 같은 직군을 가진 사람들이 한 팀을 구성한다.

2) CORSS-FUNCTIONAL TEAM 목적 조직

: 한 팀 안에 다양한 직군들이 속해져 있어서, 기능 조직과 대비해서 빠르게 제품을 개선하고 성장시킬 수 있다.

당근의 조직 구조 (참고 링크)

스타트업 목적 조직 엔지니어의 역할? (참고 링크)

-> 사용자 가치 실현을 위해 팀과 함께 기술로 문제를 해결

1) 사용자 중심 사고

2) 협업

3) 기술 역량

4) Ownership

5) Growth Mindset -> 신입에겐 더 필요!

2. 주요 역랑 5가지

1) 기술 역량

- 기술 역량이 높다는 것 = 복잡성과 범위가 증가하는 문제를 풀 수 있따는 것

(1) 복잡성
: 복잡하지 않은 기술적 문제 -> 복잡한 기술적 문제 > 복잡한 아키텍처 및 비즈니스 문제 > 매우 복잡한 아키텍처 및 광범위한 문제

(2) 범위
: 팀의 시스템 > 팀의 아키텍처 > 여러 팀의 아키텍처 > 상위 조직의 아키텍처 > 전사의 아키텍처

- 역량이 성장하다보면 점점 범위가 단계별로 성장에 따라서 맡을 수 있는 복잡성과 범위 및 문제가 달라진다.

어떻게 평가할까?

- 코딩 테스트

- 기존에는 다수 지원자의 필터링을 목적으로 주로 진행

- AI로 인해 변별력이 낮아지고 있어, 치팅을 강하게 방지할 수 있는 조건에서만 진행

- 라이브 코딩 테스트 (AI로 인해서 요즘 더 많이 사용하는 방식)

- 코딩테스트의 대체 전형으로 지원자 당 소요 시간이 긴 편

- 코드 작성 화면을 공유하고 대화를 나누며 해결책을 찾아가는 과정에 초점 (단순히 구현 완성이 아닌 과정까지 본다.)

- 과제

- AI 사용을 허용하고, 큰 범위의 과제로 문제 정의 -> 해결 방식까지 보는 경우가 있음.

- 처음부터 끝까지 구현해 가는 것을 기대해볼 수도 있다.

- 인터뷰

2) 사용자 중심 사고

(1) 어떻게 정의할까?

- 모든 기술적 결정과 개발 과정에서 실제 사용자의 필요와 경험을 최우선으로 고려하는 사고

- {사용자 입장에서} 문제는 왜 발생했고 어떻게 정의 했는지

- 이로 인해 {사용자에게 발생하는} 가치는 무엇인지

- 예시 : 당근마켓은 왜 GPS 기반 동네 인증을 할까?

- 동네라는 공통점을 가진 이웃들은 서로를 더 신뢰하고 거래할 수 있다는 점을 발견.
-> 이를 전국 단위로 확장해 더 많은 연결을 만들고 제공하고 싶어서.

(2) 올라온 블로그 포스팅

아마 모든 요구사항을 기술적으로 완벽하게 만족시키려 했다면, 주어진 시간 안에 절대로 완성하지 못했을 거예요. 저희는 이렇게 사용자 경험을 위해 기술적 완성도를 타협하지, 기술적 완성도를 위해 사용자 경험을 타협하지 않아요. 사용자를 위해 필요하다면 한 번밖에 사용하지 못할 코드라도 우선 작성해요. 사용자에게 빠르게 가치를 전달한 후, 뒤에서 더 안정적이고 지속가능한 기술적 구조를 만들어 나가죠. 저희 팀의 엔지니어들은 다들 엔지니어링 역량에 대한 자부심이 있지만, 그 역량을 적절하게 사용하는 데 더 큰 자부심을 느껴요.

- 내가 잘 만들고 싶고, 유지보수하고 오래가고 싶을텐데, 그것보다는 우리가 사용자 경험을 위해 빨리해야 한다면, 한 번만 코드를 쓴다 할지라도, 행하는 것이 목적 지향 엔지니어에게 중요한 요소이다.

(3) 어떻게 성장시킬까?

- 무언가를 만들거나 해결하거나 시도하는 과정에서

- 실제 유저가 주는 피드백을 제품에 반영하는 과정을 거친다. (UX 리서처가 행하는 것도 있찌만, 엔지니어가 하면 더 효과적이다.)

- 직접 유저와 소통하는 접점을 만든다.

- 유저의 불만이나 개선 요구사항을 지속적으로 인지한다. (ex. 설문 또는 앱 리뷰를 통해 받는다면, 그걸 바로 확인할 수 있는 채널을 구축)

- 나도 유저로서 '잘 만들어진' 앱을 많이 사용해보고 의도를 파악하려 노력한다.

3) Ownership

(1) 어떻게 정의할까?

- 맡은 일을 해낸다. (0단계)

- 맡은 일을 끝까지 책임진다. (1단계)

- 내가 하는 일이 영향을 주는 프로덕트, 조직에 대해 고민한다. (2단계)

- 마치 리더처럼 나의 프로덕트와 조직이 만들 수 있는 장기적인 성과에 대해 고민한다. (3단계)

-> 오너십이 커진다 = 책임질 수 있는 사람(리더, 시니어 등)이 되어간다.

(2) 해맨만큼 내 땅이다 -> 시도한 만큼 내 땅이다.

1. 질문할 때 먼저 한 번 고민하고, 해결책을 함께 제시한다.

- ~상황인데, 어떻게 할까요?

- ~상황인데, 저는 A, B 안으로 해결할 수 있다고 생각해요. 어떻게 생각하세요?

2. 내 일이 아니더라도 관심을 갖고 함께 기여해본다.

3. 실수나 실패를 두려워하지 않고 우선 시도해본다. 실패하면 배우고 개선한다.

(3) 올라온 블로그 포스팅

저는 시맨틱 캐싱(Semantic Caching)이라는 기술을 실제 프로덕션 환경에 적용해 비용을 크게 절감해 냈어요. 시맨틱 캐싱은 기존 캐싱 기법과는 달리 문장 간 의미 유사도를 고려해, 표현은 달라도 의미가 비슷한 요청에 캐싱이 동작하도록 하는 기법이에요.

이 프로젝트는 제가 인턴 생활 중에 직접 문제를 발견하고 아이디어를 제안해 주도적으로 진행했던 경험이기도 해요. 기술적으로도, 개인적으로도 큰 의미가 있었던 여정을 공유해 볼게요.

- 과제라고 준 것은 아니고, 본인이 문제라고 생각해서 시도해본 결과였다.

4) 협업

(1) 어떻게 정의할까?

- '내'가 아닌, '팀'의 성과를 위해 함께 문제를 해결해나가는 역량

- 팀 : PM, Product Designer, Business Developer, Data Analyst

- 팀 외부 : Infro, Security, Marketing, Legal, Finance

- 나의 고민 > 결정 > 실행 -> 다수의 고민 > 결정 > 실행 과정

- 난이도는 더 높고, 시간은 더 걸리지만 더 큰 성과를 만들어 낼 수 있음

- 나의 사고방식에서 다수의 사고방식을 흡수할 수 있는 가장 좋은 경험

(2) 어떻게 성장시킬까?

1. 다른 배경과 역량을 갖고 있는 사람들과 공동의 목표를 위해 도전하는 경험하기

- 다른 의견에 대해 타인의 입장에서 왜 저런 의견이 나왔는지 고민해보기

2. 팀에서 만들어낼 수 있는 가장 큰 성과를 고민하고, 협업자들과 의견 모아보기

3. 많은 일들 중 팀의 우선순위를 고민해보기

(3) 올라온 블로그 포스팅

엔지니어로서의 성장이 꼭 ‘기술적인 성장’만을 의미하진 않을 것이다. 당근에서 엔지니어는 코드로만 일하는 게 아니라, 결국은 문제를 해결해야 하는 메이커(Maker)로 일한다. 다른 직군 구성원과의 유기적인 커뮤니케이션, 업무의 우선순위 결정과 분배 등을 고민하는 것 역시 코드를 다루는 시간만큼 책임지고 해내야 하는 일인 것이다.

5) Gowth Mindset 성장 가능성, 성장하고자 하는 향상심

(1) 어떻게 정의할까?

- 어제보다 오늘, 오늘보다 더 발전할 수 있다는 마음과 이를 위한 지속적 노력과 학습

- 특히 엔지니어라면, 새로운 기술, 새로운 언어, 새로운 툴, 이젠 AI까지...

- 더욱더 계속해서 성장하려고 하는 마음이 중요하다.

(2) 어떻게 성장시킬까?

- 내가 선택한 시간 내에 최선을 다해 몰입하기

- 주 100시간씩 2년과 주 40시간씩 5년은 2.5배의 식나이지만, 결과는 천지차이이다.
인생에 어떤 순간을 몰입할 수 있다면, 스스로 선택하라

- 크래프톤 장병규 의장 (창업자)

- 지금 몰입하면 성장할 것 같은데? 라고 느끼는 순간이 있으면, 최선을 다해서 일해보라는 것이다.
- 주니어때 성장할 수 있는 가능성은 연차보다 가파르지만, 실력적으로는 10배 20배 차이가 난다.

- 안주하지 않고 계속 나아가기

- 지금 어디에 있는지 <<< 출발점으로부터 얼마나 멀리 왔는지

- 회고하기

- 업무를 하다보면, 프로젝트가 굉장히 많아서 혼자 생각하는 것은 많다. 이것은 좋은데? 아쉬운데? 처럼 말이다. 근데 이를 기록하지 않으면, 전과 똑같이 하게 된다. 회고를 하면 성장에 도움이 많이 된다.

(3) 올라온 블로그 포스팅

2. 마지막으로

1) 소소한 공고 모집 TIP

지원을 희망하는 회사가 있다면?

1. 회사의 홈페이지 JD 내 주요 역량 파악

- 많은 사람들의 노고가 들어간 문서이다. 이를 잘 풀어내다보면, 공고에서 원하는 것을 더 잘 알 수 있따.

2. 회사의 CTO의 이력, 인터뷰 + 지원하려는 팀의 인터뷰, 기술 블로그 체크

3. 1, 2번을 조합해 가장 주요한 역량 3가지와 그걸 잘 드러낼 수 있는 이력서를 준비

+ 가능하다면, 해당 사 현업 엔지니어와의 티타임을 통해 3번의 정확성과 실제 업무 후기 조언 받기. 이때 꼭 리더/시니어가 아니더라도, 직전에 신입으로 입사해썩나 주니어 엔지니어와의 대화도 좋음. (링크드인, 벨로그 등도 추천!)

2) 가장 중요한 것, 나에 대해 많이 고민하기

(1) 취업을 한다면

- 최소 하루 8시간, 주 40시간, 월 200시간을 회사에서 보낸다.

- 24시간 - 8시간 (잠) - 2시간 (밥) - 2시간 (이동, 이동 준비) - 8시간 (일) = 4시간

(2) 창업을 한다면

- 밥, 잠 빼고는 일만해도 98%는 실패

-> 이 시간들이 의미있으려면, 정말 내가 하고 싶고, 재미 있는 일을 해야 한다.

- 그냥 전망이 좋아서, 엄마가 하라고 해서 등이 된다면 10년 후 장기적으로 보았을 때 자신있게 대답하지 못할 수 있다.

내가 진짜 하고 싶은 건 뭘까?

나는 어떤 일을 하면 제일 재미있을까?