900명에서 1명으로: 로빈 말페를 채용한 이야기
- Date
- Adam Wathan
5월에 우리는 팀에 합류할 풀스택 개발자를 찾기 위해 첫 번째 채용 공고를 게시했습니다.
약 900명의 지원서를 받고 수십 명의 재능 있는 사람들과 인터뷰를 진행한 끝에, 로빈 말페가 우리의 제안을 수락하고 오늘부터 Tailwind Labs 팀의 공식 멤버가 되었다는 소식을 전하게 되어 기쁩니다!
로빈은 벨기에 출신의 재능 있는 개발자로, 오랜 시간 동안 Tailwind 커뮤니티의 활발한 멤버였습니다. Tailwind UI 고객이시라면 우리 Discord 서버의 #react
채널에서 질문을 한 적이 있을 텐데, 그 질문에 답변을 해준 사람이 바로 로빈일 확률이 90%입니다. 그는 심지어 Tailwind UI 컴포넌트를 JSX로 변환하는 데 도움을 주는 북마클릿도 만들었습니다!
로빈은 매우 경험이 풍부한 React 개발자이며, 우리가 작업 중인 오픈소스 렌더리스 UI 라이브러리를 주도적으로 이끌어갈 예정입니다. 이 라이브러리는 Tailwind UI에서 공식적으로 React와 Vue _(일단은)_를 지원하기 위한 기반이 될 것입니다.
그가 오늘부터 우리 팀에 합류하게 되어 매우 기쁘고, 그의 기여가 더 빠르고 자신 있게 멋진 UI를 구축할 수 있도록 도울 날이 기대됩니다. 팀에 오신 것을 환영합니다!
이어지는 내용은 이 역할을 위해 채용을 진행한 과정과, 약 900명의 초기 지원자 중에서 로빈에게 최종 제안을 하기까지의 이야기입니다.
채용 공고
이 역할을 채용하기 전, 우리는 이미 알고 신뢰하는 Brad만을 채용했기 때문에 채용 공고나 엄격한 지원 절차가 필요하지 않았습니다.
하지만 정말 뛰어난 지원자를 확보하려면 매력적인 채용 공고를 작성해야 한다는 것을 알았습니다. 약 3-4일 동안 작업한 끝에, 우리는 다음과 같은 결과물을 만들었습니다:
이 공고를 작성할 때 제가 중점을 둔 중요한 사항들은 다음과 같습니다:
- 지원자가 입사 후 진행하게 될 프로젝트에 대해 구체적으로 설명
- 우리가 작은 팀이기 때문에 모든 팀원이 고객 지원을 포함한 다양한 업무를 수행해야 한다는 점을 명확히 전달
- 지원자가 이미 회사에 있었다면 참여했을 만한 최근 완료된 프로젝트의 구체적인 예시 제공
- 다음 주요 프로젝트에서 마주칠 것으로 예상되는 특정한 어려운 문제들에 대해 상세히 설명하여, 어떤 전문 지식이 우리에게 가치 있는지 지원자가 이해할 수 있도록 함
- 구체적인 급여 및 복지 정보 공유. 저는 급여에 대한 명확한 이해 없이는 채용 공고에 지원하지 않을 것이므로, 왜 우리 공고에 뛰어난 인재들이 급여 정보 없이 지원해야 할까요?
이 공고에 대해 엄청나게 많은 긍정적인 피드백을 받았고, 결과물에 대해 정말 자랑스럽게 생각합니다. 지원자 중심으로 작성되었으며, 이는 우리가 받은 지원서의 질에 큰 차이를 만들었다고 생각합니다.
지원 과정
다른 회사와 조금 다르게 진행한 점은 이력서를 요구하지 않았고, 지원자에게 긴 질문 목록을 주지 않았다는 것입니다. 우리가 요구한 것은 단순히 “지원서”였고, 그 형태는 지원자가 원하는 대로 정할 수 있었습니다. 커버레터, 작은 웹사이트, 영상, 슬라이드 덱 등 무엇이든 가능했습니다.
이렇게 지원서를 요구한 데에는 몇 가지 이유가 있습니다:
- 이력서가 그렇게 중요하지 않다고 생각했습니다.
- 내재된 마케팅 감각을 가진 사람을 걸러내고 싶었습니다. 우리는 작은 회사이기 때문에 전문가보다는 T자형 인재가 더 필요했습니다.
- 무언가를 완성할 수 있는 사람을 걸러내고 싶었습니다. 지원서를 완전히 자유 형식으로 요구하면, 아무것도 없는 상태에서 완성된 제품을 만들어내는 능력을 파악할 수 있습니다.
- 우리가 찾는 것에 대해 자연스럽게 이야기하는 사람을 찾고 싶었습니다. 우리가 하려는 일과 자연스럽게 잘 맞는 사람을 찾는 것은 큰 이점이 될 것입니다.
- 많은 지원서가 올 것으로 예상했고, 이 방법을 통해 무차별적으로 지원하는 사람들을 쉽게 걸러낼 수 있을 거라고 생각했습니다.
꽤나 부담스러운 지원 과정이었음에도 불구하고, 100개가 넘는 지원서를 받았습니다. 그중에는 우리 공고를 위해 특별히 시간을 들여 만든 것들이 많았고, 물론 Robin의 지원서도 포함되어 있었습니다:
일부 사람들은 지원서에서 정말 독창적이고 창의적인 것을 보여주었습니다. (한 사람은 심지어 인터랙티브 게임을 만들었습니다!) 하지만 Robin의 지원서는 몇 가지 이유로 두드러졌습니다:
- 시각적 디자인이 훌륭했습니다. 우리는 디자인에 매우 중점을 두는 회사이기 때문에 디자인 감각이 좋은 것은 매우 중요합니다.
- 프로그래밍을 배우고 Laravel 커뮤니티에 참여한 이야기는 우리가 만난 적이 없더라도 공유된 역사가 풍부하다는 것을 알려주었습니다.
- 그는 용기를 내어 컴포넌트 디자인에 대한 강한 의견을 공유했고, 그 의견은 우리가 곧 진행할 작업과 매우 관련이 있었습니다. 나는 그의 의견에 동의했고, 심지어 몇 가지를 배우기도 했습니다.
- 그가 작성한 오픈소스 라이브러리를 공유했는데, 이 라이브러리는 잘 알려지지 않았음에도 매우 잘 구성된 문서를 가지고 있었습니다. 마크다운 파일을 작성할 때도 시각적 디자인을 고려한다는 것이 분명했습니다.
- 그는 우리와 함께 진행하고 싶은 프로젝트에 대한 구체적인 아이디어를 많이 공유했고, 그 중 많은 것들이 내가 이미 하고 싶어 했던 것들이었습니다.
- 그는 “GitHub”에서 “H”를 대문자로 썼습니다. (사람들이 이걸 안 하는 걸 정말 싫어합니다.)
Robin의 지원서는 내용 면에서 정말 눈에 띄는 40-50개 중 하나였습니다.
지원서 필터링하기
약 900건에 달하는 채용 지원서를 처리하는 것은 상당히 많은 작업이었습니다. 그중 절반 이상은 LinkedIn 프로필 링크나 일반적인 이력서만 제공한 경우라서 바로 제외할 수 있었지만, 나머지를 걸러내는 것은 정말 어려웠습니다.
이런 방식으로 채용을 진행해 본 적이 없어서, 처음에는 질 좋은 지원서를 제출한 모든 사람과 면접을 진행해야 한다고 생각했습니다. 하지만 지원서가 계속 쏟아지면서 이 방법이 현실적이지 않다는 것을 깨달았고, 어느 정도 제한을 둬야 한다는 결론에 이르렀습니다.
저는 좋은 지원서를 최대한 잘 정렬한 후 상위 20명만 선별해 면접을 시작하기로 결정했습니다. 이는 우리가 이야기하지 못한 많은 훌륭한 사람들이 있고, 아마도 가장 뛰어난 지원자를 놓쳤을 가능성도 있다는 것을 의미했습니다. 하지만 현실적으로 우리가 이 작업에 투자할 수 있는 시간은 한정되어 있었고, 상위 20명의 지원자 중에는 절대 후회하지 않을 만한 사람들이 분명히 여러 명 있을 거라고 믿어야 했습니다. 설령 가장 뛰어난 지원자가 나머지 30명 중에 있을 가능성이 있다 하더라도 말이죠.
인터뷰 프로세스
먼저 상위 약 20명의 지원자와 화상 인터뷰 일정을 잡았고, 이를 모두 진행하는 데 약 3주가 걸렸습니다.
각 인터뷰는 30~45분 정도로 진행되었으며, 다음과 같은 주제에 대해 비교적 캐주얼한 대화를 나눴습니다:
- 최근에 어떤 일을 해왔는지, 그리고 자신의 강점이 무엇이라고 생각하는지
- 왜 이 직무에 지원했는지, 그리고 어떤 부분이 흥미로웠는지
- 회사가 앞으로 1년 동안 어떤 일을 할 예정인지, 그리고 몇 가지 프로젝트를 자세히 살펴보기
- 지원자가 직무나 회사에 대해 궁금한 점이 있다면 답변하기
이 과정은 지원자들을 알아가고, 누가 가장 눈에 띄는지 직감적으로 파악할 수 있는 좋은 방법이었습니다. 모든 지원자와의 만남이 즐거웠지만, 다음 단계로 넘어갈 약 10명으로 다시 필터링하는 어려운 결정을 내렸습니다.
Take-Home Project
지원 과정의 다음 단계는 테이크홈 프로젝트였습니다. 지원자는 Vue나 React를 사용해 Steve가 만든 디자인을 구현해야 했습니다. 이 프로젝트는 대략 4~8시간 정도 걸릴 것으로 예상했습니다.
우리는 모든 지침, Figma 파일로 된 디자인, 그리고 Figma로는 표현하기 어려운 동작을 설명하는 구현 동영상을 포함한 zip 파일을 제공했습니다.
우리는 매우 명확한 지침을 제공하려고 노력했고, 지원자들이 시간을 집중해야 할 부분과 너무 깊이 생각하거나 시간을 많이 들이지 않아도 되는 부분을 명확히 알려주었습니다.
각 지원자에게 약 2주 정도의 시간을 주어 프로젝트를 완료할 수 있도록 했습니다. 이는 지원자들이 일정에 맞춰 프로젝트를 진행할 수 있도록 배려한 것입니다.
우리가 받은 모든 제출물은 훌륭했지만, 다시 한 번 다음 단계로 넘어갈 지원자를 6명으로 제한했습니다.
Robin의 제출물에서 정말 마음에 들었던 점은, 코드에 주석을 통해 자신의 해결 방식을 상세히 설명했다는 것입니다. 일반적인 프로덕션 코드에서는 과하다고 할 수 있지만, 채용 과정에서는 그가 코드를 어떻게 _생각_하는지 엿볼 수 있어 매우 유용했습니다. 또한, 특정 문제에 대한 대안 해결책과 그 방식을 선택하지 않은 이유를 상세히 설명한 점도 매우 도움이 되었습니다.
페어 프로그래밍 세션
지원 과정의 마지막 단계는 저와 함께하는 2시간짜리 페어 프로그래밍 세션이었습니다.
이런 면접 과정에서 페어 프로그래밍을 할 때, 내재된 권력 관계가 전체 과정에 영향을 미칠 위험이 매우 큽니다. 저는 이를 최대한 피하고 싶었기 때문에 두 가지를 시도했습니다:
- 우리가 함께 작업할 내용이 완전히 새로운 것이고, 제가 이전에 경험해본 적이 없는 주제를 선택했습니다.
- 지원자에게 함께 작업할 몇 가지 아이디어를 제안하게 하고, 그 목록에서 하나를 골랐습니다.
저는 제가 모든 답을 알고 있는 문제를 페어 프로그래밍으로 다루고 싶지 않았습니다. 그런 상황은 실제 업무를 반영하지 않을 뿐만 아니라 전혀 유용하지 않다고 생각했습니다.
대신, 우리 둘 다 경험이 없는 문제를 선택함으로써 권력 관계를 최대한 배제하고, 함께 새로운 것을 배우고, 서로가 어떻게 문제를 해결하는지 보는 데 집중할 수 있었습니다.
우리가 함께 작업한 몇 가지 예시는 다음과 같습니다:
- 날짜 선택기를 처음부터 만들기
- XState 배우기
- Vue 3 컴포지션 API로 모달 다이얼로그 만들기
이 과정은 정말 즐거웠고, 우리가 어떻게 이를 구성했는지 자랑스럽게 생각합니다. 이 세션은 면접 과정에서 가장 유익한 부분이었고, 우리가 적합한 사람에게 직책을 제안하고 있다는 확신을 크게 얻을 수 있었습니다.
로빈과의 세션에서는, 우리는 Svelte(우리 둘 다 사용해본 적 없는 프레임워크)로 SVG 차트 라이브러리를 처음부터 만들어보기로 결정했습니다. 이는 로빈의 아이디어였고, 면접 상황에서 두 가지 완전히 새로운 문제를 동시에 해결하려는 용기가 정말 인상 깊었습니다. 우리는 이 작업을 함께 하며 즐거운 시간을 보냈고, 세션 중 어느 순간도 누군가가 앞서가거나 따라잡으려는 느낌이 들지 않았습니다. 우리는 정말 좋은 케미를 보였고, 매우 활기차고 생산적인 분위기였습니다. 이는 제 경력 중 최고의 페어 프로그래밍 세션 중 하나를 떠올리게 했는데, 이는 우리가 이전에 함께 일한 적도 없고, 그가 직책을 평가받고 있는 상황에서 꽤 놀라운 일이었습니다.
제안하기
전체 과정은 약 1.5개월이 걸렸고, 마지막에는 상위 몇 명의 후보자들 중에서 선택하기가 매우 어려웠습니다. 현실적으로는 그들 중 누구를 채용해도 후회하지 않았을 테지만, 로빈과의 인터뷰와 페어링 경험이 조금 더 돋보였고, 그에게 역할을 제안할 수 있어 정말 기뻤습니다. 우리는 그가 팀에 완벽히 어울릴 것이라고 확신하며, 앞으로 몇 달 동안 그와 함께 어려운 문제를 해결해 나가는 것이 기대됩니다.
이 글에 대해 이야기하고 싶으신가요? GitHub에서 토론하기 →