#마인드셋 #커리어 #트렌드
실리콘밸리에서 배운, 대체 되지 않는 사람들의 비밀(개발자편)

AI 시대 어떻게 해야 대체되지 않고 살아남을 수 있을까요? 
전직 작가였던 저는 그 답을 찾기 위해 실리콘밸리로 30일간 떠났습니다. 낯선 도시에서 영어도 못 하던 제가 만난 사람들과 인터뷰를 하며 깨달은 것들을 전합니다.

실리콘밸리에서 살아남기: 1년 만에 주니어에서 시니어로 성장한 개발자 이야기

오늘은 한국을 떠나 실리콘밸리에서 1년 만에 놀라운 성장을 이뤄낸 개발자를 만나보았습니다. 1500개가 넘는 지원서를 넣고, 하루 20개의 시스템 디자인을 연습하며, 결국 테슬라, 애플, 메타 등 빅테크 기업들의 최종 면접까지 통과한 그의 이야기를 들어봅니다.

안녕하세요. 실리콘밸리 생존자님 자기소개 부탁드립니다.

안녕하세요. 저는 현재 실리콘밸리에서 AI 스타트업을 준비하고 있는 개발자입니다. 2022년 11월 미국으로 건너와 펠로우십 프로그램을 거쳐 핀테크 스타트업에서 일을 했습니다.

이후 아마존 소프트웨어 엔지니어 포지션 최종 인터뷰까지 가게 되었습니다. 하지만 제 생각한 사업 아이템 시장 타이밍을 놓치고 싶지 않아 인터뷰를 정중하게 철회했습니다. 대신 최근에 제 코딩 에이전트 MVP를 런칭해서 창업을 하게 되었습니다.

*실리콘밸리 개발자님의 아마존 최종 인터뷰 제안 메일

실리콘밸리로 가게 된 계기가 궁금합니다.

실리콘밸리에 가서 일을 해보고 싶다는 생각이 들었습니다. 그런데 석사 과정보다는 실무 역량을 빠르게 쌓고 싶었어요.

하지만 해당 직무에 한국에서 일을 했더라도, 바로 취업을 하기는 어려웠습니다. 그래서 펠로우십 프로그램에 지원을 해서 취업 준비를 했습니다.

펠로우쉽 프로그램이 무엇인지 설명해주실 수 있나요?

실무에 진입할 수 있도록 돕기 위해 주 교육 기관이 빅테크 엔지니어들을 끌어모아 교육 과정을 운영하는 전문 교육 프로그램입니다.

https://siliconvalleyinternship.com/svip-developer-fellowship/

일주일에 평균 12시간, 많을 때는 30시간까지 수업을 들어야 했어요. 어도비 엔지니어, 인도 엔지니어들과 코딩 페어를 하고, 빅테크 엔지니어들에게 직접 배웠습니다.

*코딩페어 : 두 명의 개발자가 한 컴퓨터에서 함께 코드를 작성하며 실시간으로 의견을 나누고 피드백하면서 협업하는 개발 방식

펠로우쉽 프로그램에서 힘드셨던 부분은 어떤 점이 있었나요?

먼저 토론이 힘들었습니다.

한국 학교에서 수업을 하면 질문을 하지 않는 문화에 익숙합니다. 하지만 프로그램에 참여한 인도인들은 달랐어요. 토론을 막 해요. 틀리든 맞든 일단 의견을 내뱉는거죠.

또 영어로 듣고, 말하고, 생각해야 했기 때문에 질문하는 일이 굉장히 어려웠습니다.

이후 저는 인도애들이랑 경쟁이 안 된다고 생각하고 이후 수업 준비에 많은 시간을 투자하게 되었습니다. 왜냐하면 인도, 미국 학생들은 기본적으로 영어가 되니 준비 없이도 질문하는 일이 어렵지 않았기 때문입니다.

이후 저는 간단한 질문부터 하는 연습을 시작했고, 점차 복잡한 질문도 할 수 있는 단계까지 올라섰습니다.

프로그램 내 평가 시스템도 쉽지 않았습니다. 알고리즘과 시스템 디자인 테스트가 단계별로 있었는데, 통과하지 못하면 다음 단계로 넘어갈 수 없었습니다. 실제 인터뷰 방식으로 진행되고, 평가도 공개됩니다. 이 사람은 어떤 레벨이다라고 명확하게 표시되죠.

이 중 시스템 디자인이 가장 어려웠다고 들었는데요. 왜 그랬는지 말씀해주실 수 있나요?

먼저 알고리즘은 정해진 포맷이 있어서 연습하면 답변이 가능합니다. 하지만 시스템 디자인은 다양한 시나리오에서 어떻게 동작할지 고려해야 합니다. 또한 제한된 자원에서 어떻게 합리적인 해결안을 도출할지 생각해야 했기에 개발 지식 이외에 비지니스 관점도 요구 되었습니다. 또한 이 사고과정을 영어로 설명해야 했었습니다.

*시스템 디자인

시스템 디자인은 큰 문제를 여러 부분으로 나누어 어떻게 만들지 계획하는 작업입니다. 예를 들어 월병을 만드는 공장을 예로 들어볼게요.

그러면 반죽을 자르는 역할, 반죽을 빗는 역할, 포장하는 역할, 손님에게 전달하는 역할까지 미리 잘 나눠놔야 하죠.

이처럼 시스템 디자인은 많은 사람이 한꺼번에 써도 문제없이 돌아가게 만드는 서비스의 설계라고 보면 됩니다.

 

그렇다면 시스템 디자인의 어려움을 어떻게 돌파하셨나요?

하루에 시스템 디자인을 20개씩 했습니다. 펠로우십에서 모의 인터뷰를 할 수 있게 지원해줬기 때문에 가능했어요. 그리고 일상생활에서 접할 수 있는 시스템디자인을 스스로 생각해보았습니다. 스타벅스 앱을 만든다면, 주문 시스템은 어떻게 구축할지, 어떤 최적화가 필요한지, 병목이 어디서 발생할지 다이어그램을 그려보는 거죠.

그런데 시스템 디자인은 정답이 정해져 있지 않아요. 합리적이란 개념은 상황에 따라 바뀌거든요. 현재 비즈니스 자금 상태나 목적에 따라 달라지기도 하니까요.

또한 시스템 디자인 관점을 위해서는 개발자, 디자이너, PM(프로젝트 관리), 그리고 비즈니스적인 관점이 모두 필요하며, 이 모든 요소를 아우르는 합리적인 판단이 중요합니다.

특히 스탠포드 대학교 서점에서 시스템 디자인과 알고리즘 책이 있으면 한두 시간씩 읽고 왔어요. 블로그, 뉴스레터, 논문, 책 모든 자료를 찾아봤습니다. 처음에는 평가 기준에서 리젝트가 떴지만, 결국 시니어 레벨까지 올라갔어요.
 

펠로우쉽을 마치고, 취업 하면서 1500개 지원서를 썼다면서요?

맞습니다. 금리인상과 레이오프 시기가 겹쳐서 취업이 정말 힘들었습니다. 어느 정도였냐면 메타에서 리퍼럴을 받았는데 새로고침 하자마자 5분만에 거절 메일이 와 있더라고요.

지원서를 1500개까지 세다가 그냥 세는 걸 포기했습니다. 모의 인터뷰도 수십 번 하고, 애플, 테슬라, 메타, 아마존, 빅테크는 거의 다 인터뷰를 봤던 것 같아요.

그러다 24년 결국 핀테크 스타트업에 들어가서 LLM 관련 작업을 했습니다. 실시간 주식 정보를 연동하는 RAG 시스템을 구축했죠. 그리고 최근에는 회사를 나와 코딩 에이전트를 만들고 있습니다.

 

스레드 계정에서 올린 문장 중 실패를 기본값으로 설계하라는 말이 인상 깊었는데요. 해당 내용 설명해주시겠어요?
 

저는 시스템을 설계할 때 실패를 기본값으로 생각합니다. 완벽한 시스템은 없어요. 사람이 만든 것이기 때문에 실패할 수 있다는 전제를 가지고 설계하는 거죠.

예를 들어, 티켓예매 시스템에서 대기열에 들어가지 못하는 상황이 발생할 수 있잖아요. 네트워크 문제나 버그 때문이든 말이죠. 그럴 때 시스템이 어떻게 대응할 것인가를 미리 설계해야 합니다. 그래야 신뢰성을 얻을 수 있어요.

재밌는건 실패를 기본값으로 설계하는 문화가 실리콘밸리에 깔려 있다는 점이었습니다. 펠로우쉽을 받는 지인이 메타 관계자에게 교육을 받던 도중이었습니다. 이때 인스타그램 서버가 다운된 적이 있었는데요. 그때 메타 관계자가 교육을 중단하고 "오늘은 인스타그램 서버 다운을 어떻게 복구하는지 직접 보여주겠다"고 했다더라고요.

한국에서는 실패를 망했다라고 표현하잖아요. 여기서는 실패도 자연스럽게 받아들이고, 그걸로 배우고 발전합니다. 실패해도 자신감이 있는 문화죠.
 

AI 시대, 주니어 개발자를 대체 한다는 이야기가 많이 나오는데요. 실제 현장 분위기는 어떤가요?

마이크로소프트는 이미 코딩 업무를 에이전트가 하고 있고, 구글도 내부 에이전트를 개발하고 있다고 연락이 왔어요. 솔직히 주니어 레벨은 대체될 가능성이 높습니다. AI도 계속 경력이 쌓이고 있거든요.

그래서 신입 개발자라면 AI를 넘어서는 수준까지 올라가야 해요. 중간만 하면 안 됩니다. 높은 수준의 프로젝트를 하거나, 논문을 보고 실무에 적용하는 경험이 필요하죠.

그렇다면 신입은 어떻게 AI와 경쟁력을 키울 수 있을까요?

먼저 생각의 범위를 확장해야 합니다.

회사 눈앞의 문제만 생각하면 성장도 그만큼에 그치게 됩니다.
하지만 인류와 사회를 위한 문제를 생각하면 사고의 수준이 달라져요.

일론 머스크는 어렸을 때부터 우주를 생각했고, 스티브 잡스나 래리 페이지도 마찬가지였죠. 그런 마인드로 문제 해결에 집중했기 때문에 그 정도로 성장할 수 있었던 겁니다

*일론 머스크와 스페이스 X(grok으로 생성)


또 앞서 언급한, 시스템 디자인을 위한 합리적인 사고를 할 수 있어야 합니다.

그러기 위해서는 일상생활에서 사용하는 시스템(예: 스타벅스 앱, 토스, 배달의 민족, 맥도날드 키오스크)을 스스로 디자인해보는 연습을 해봅니다.

이때 다른 사람의 디자인이나 블로그 자료를 정답으로 여기지 말고, 스스로 디자인을 해보는 일이 중요해요. 노트에 정리하며 내가 놓친 최적화 요소나 연결 지점을 파악하고 개선하는 과정을 반복해야 합니다. 이때 내 의견이나 해결책에 대해 why를 최소 네 번 정도 반복하여 질문하는 훈련을 하면 사고를 심화시키는데 도움이 됩니다.

이 과정을 통해 주니어 수준을 넘어 시니어 수준까지 도달하는 것이 가능합니다.

오히려 AI 때문에 신입에게 요구하는 역량이 커졌다고 볼 수 있겠네요?

맞습니다. 신입이라도 논문을 보고, 그 아이디어를 사이드 프로젝트 등에 실제 적용해 보는 수준까지 올라가야 합니다.

또 업계 뉴스를 읽는 것도 중요한데요. 이때 팁이 있다면 빅테크 기업에 채용된 인재들의 커리어를 추적하고 분석하면 좋습니다.
그러면 어떤 역량과 프로젝트가 업계에서 인정받는지 파악할 수 있어서 공부하기 용이하기 때문입니다.

 

실무에서 AI를 어떻게 활용하시나요?

저는 클로드 코드를 쓰는데, 다른 사람들과 좀 다르게 사용합니다. 프롬프트만 입력해서 시키는 게 아니라, 먼저 제가 설계를 해요.

지금 상황에서 어떤 최적화가 필요한지, 어떤 리팩토링이 필요한지, 어떤 기술이 추가되어야 하는지 먼저 그려봅니다. 논문도 찾아보고, 이걸 어떻게 적용할지 연결한 다음에 AI에게 구체적으로 지시하는 거죠.

AI한테 모든 걸 맡겨버리면 제 경력이 되지 못하기 때문입니다. 특히 신입이라면 코딩 기본 역량이 안 되면 의미가 없어요. AI가 만든 코드를 자기가 짤 수 있는 수준까지는 되어야 합니다. 그래야 검증할 수 있으니까요.

요즘 AI로 코드를 만들었는데 설명을 못 하는 사람들이 많아요. 면접에서 "이거 어떻게 만들었어요?"라고 물으면 대답을 못 하는 거죠

 

마지막으로 AI 시대에 대체 불가능한 인재가 되고 싶은 분들에게 조언을 해주신다면?

이 정도면 되겠지?라는 생각을 하지 마세요. 중간만 하면 AI한테 대체됩니다. 
그리고 자기가 배우는 것에 투자를 아끼지 마세요. 저는 강의에 60~70만 원 쓸 때도 있었어요. 그걸로 인해 파생되는 가치가 훨씬 크니까요. 
마지막으로 사고 과정을 말로 설명하는 연습도 중요합니다. 이때 생각의 범위를 제한하지 마세요. 우리는 무의식적으로 생각에 제한을 두는데, 그걸 없애야 해요.

실리콘밸리 생존자님의 더 많은 이야기가 궁금하시다면, 쓰레드(Thread)에서 팔로우하세요!

실리콘밸리 생존자님의 인프런 시스템 디자인 강의 

해당 강의 링크 : https://inf.run/M1ssY

실리콘밸리 생존자님 최근 MVP 런칭한 서비스 

해당 서비스 링크 : https://snailer.ai
 


이 뉴스레터는 실리콘밸리 현지에서 작성되고 있습니다. 다음 편을 기대해주세요.

짧은 소회글은 아래 계정으로 작성하고 있습니다.

링크 복사

댓글 1

추천 아티클
1