Stripe SWE 면접을 한 바퀴 돌고 나서 뒤늦게 적어 둔 메모.
이미 짐작했겠지만 이 글은 LeetCode 문제를 죽어라 풀라거나, 동적 프로그래밍을 공부하라거나, 하다못해 이진 트리를 뒤집으라는 이야기가 아니다. 생각만 해도 몸서리가 쳐진다. 나는 그런 조언을 할 만한 사람이 못 된다. 다만 비교적 최근에 Stripe 면접 과정을 직접 겪었으니 형식에 관해서라면 아는 게 조금 있다. 그러니 Stripe식 면접에 대해서는 조언할 자격이 있다고 혼자 선언해 보겠다. 다들 “Stripe는 달라요”라고만 하고 대체 뭐가 다른지는 말해 주지 않아 답답했던 사람에게 특히 쓸모가 있을 것이다.
그럼 시작해 보자!
Stripe 면접도 연습하면 나아질 수 있다. 다른 기술과 다르지 않다는 게 그나마 좋은 소식이다. 반쯤 망가진 결제 코드를 자신 있게 읽는 데까지 나도 연습을 꽤 오래 했다. 그렇다고 지금 잘하느냐 하면 그것도 아니다. 마지막 CoderPad 라운드만 떠올려도 그렇다. 그날은 작게나마 참사였다.
2부에서 짧은 함수를 하나 만들었다. 당시에는 꽤 영리하게 썼다고 생각했는데 3부로 넘어가자 그 함수를 도무지 확장할 수가 없었다. 면접관은 보고 있고 나는 땀을 빼며 코드 여러 덩어리를 다시 썼다. 문제는 1부를 빨리 끝내겠다는 마음이었다. 확장성은 뒤로 미루고 영리함부터 골라 버렸다. 3부에서 재시도 메커니즘이 추가될 걸 알았다면서 왜 그랬느냐고? 정말 좋은 질문이다. 당시 나는 면접 준비를 어떻게 해야 하는지조차 모르고 있었다.
Ready to ace your next interview?
InterviewMan gives you real-time AI answers during live interviews — undetectable on Zoom, Meet, and Teams.
Try InterviewMan Free여기서 첫 번째 조언이 나온다. 버그부터 짐작하지 말고 망가진 코드를 먼저 읽어보자.
Bug Bash 준비법을 찾아보면 ‘결제 코드에서 흔히 생기는 버그 유형’을 외워 가라는 이야기가 많이 나온다. 시작하고 2분쯤 됐을 때 익숙한 패턴을 골라내려는 것이다. 좋은 뜻에서 하는 말인 건 안다. 그래도 내 생각에는 아무 소용 없는 준비다. 운 좋게 정답을 찍으면 10분 동안은 스스로 꽤 똑똑해 보일 수 있다. 곧 내 수정이 다른 코드 경로를 망가뜨렸다는 사실을 발견하겠지만. 운이 없으면 틀린 가설 하나를 확인하느라 주어진 1시간이 다 간다.
내가 치른 라운드도 60분이었고 실제 Stripe 코드를 받았다. 처음 10분 동안은 고치지 않고 읽기만 했다. 버그가 보인 건 34분쯤 지나서였다. 검증 함수에서 재시도 경로로 넘어가는 경계가 문제였다. 두 번째로 실행되면 상태를 슬쩍 초기화하고 있었다.
Integration 라운드 준비는 오히려 예상하기 쉬웠다. Stripe 면접관이 “PaymentIntents로 무언가 만들어 보세요”라고 말하지 않을 가능성은 정확히 0이다. 미리 알고 있으니 이 라운드를 아주 잘 치를 준비도 할 수 있다. 면접 전까지 아래 세 페이지를 손에 익혀 두었다. 생각하지 않고도 이리저리 눌러 다닐 수 있을 정도가 목표였다.
- PaymentIntents 페이지.
- 오류 코드 페이지.
- 멱등성 페이지.
어느 페이지를 열어야 하나 현장에서 고민하다가 클릭 하나 제대로 못 할 필요는 없다. 면접 전에 시간을 들여 페이지를 눌러 보면 된다. 길을 손으로 기억할 때까지 계속 돌아다녀 보는 것이다. 너무 당연한 말 같지만 의외로 이렇게 준비하지 않는 사람이 많다. 문서를 열어 둔 채 연습하는 일은 어렵지 않다. 그런데도 이 단계에서 다른 지원자보다 돋보이게 해 주는 가장 쉽고 효과가 큰 방법이었다.
이럴 때만큼은 스토커처럼 파고들어도 괜찮다. 시스템 설계 면접에 앞서 Stripe 엔지니어링 블로그를 조사해야 할 이유는 두 가지다. 하나는 Stripe가 실제로 어떤 분산 시스템 문제에 관심을 두는지, 면접관이 무엇을 더 캐물을지 감을 잡을 수 있어서다. 또 하나는 회사가 어떤 문제를 풀 사람을 채용하는지 알 수 있어서다. 내 면접에서는 Whimsical을 썼고, 문제는 rate limiter와 비슷했다. 대화 후반에는 클라이언트가 한도를 넘었는지를 두 서버가 서로 다르게 판단하면 어떻게 되는지를 깊이 물었다. 일반적인 시스템 설계 강의에서는 다이어그램을 배웠다. 하지만 면접관이 실제로 확인하려던 관점은 Stripe 엔지니어링 블로그에서 얻었다.
도구 이야기도 해 두어야겠다. 이 질문을 매번 받기 때문이다. 코딩 전용 오버레이로는 대비할 수 없는 부분을 준비할 때 나는 InterviewMan을 활용했다. Stripe 면접은 CoderPad만 보는 과정이 아니다. 음성, 영상, 화면 공유, 행동 면접도 있다. Interview Coder 2.0은 한 달에 $299이며 코딩만 다룬다. InterviewMan은 연간 결제 기준 한 달에 $12, 1년이면 $144다. 사용자는 57,000명이다. 리뷰 257개에서 평점은 5점 만점에 4.8점이다. 모든 스텔스 기능이 포함된다.
Zoom, Teams, Meet, Chime, Webex를 지원한다. HackerRank, CoderPad, Codility 안에서도 작동한다. Windows, macOS, Android, iOS에 더해 Chrome에서도 쓸 수 있다. 그래도 나는 나중에 모의 녹화를 한 번 더 돌려 Dock과 프로세스 목록, Zoom 녹화 화면까지 확인했다. 반드시 확인해야 한다.
불합격하더라도 합격 제안을 받게 될 면접 과정에 한 번 더 가까워진 셈이다. 결과와 상관없이 채용 담당자에게 피드백을 요청하자. 꽤 자주 도움이 된다. 물론 아주 근소한 차이였지만 핀테크와 조금이라도 더 직접 관련된 경험을 가진 지원자가 더 낫다고 판단됐다는 답이 돌아올 때도 있다. 이런 피드백은 대단히 쓸모 있지는 않다. 그래도 자신이 정말, 정말 가까이 왔다는 위안 정도는 될 것이다.
이제 가서 해내자!
Ready to Ace Your Next Interview?
Join 57,000+ professionals using InterviewMan to get real-time AI assistance during their interviews.

