우버에 어느 정도 적응했을 무렵, 애런과 태훈은 다시 같은 조직에서 일했다.
그 무렵 전사 회의에서 캘러닉이 한 가지 비전을 던졌다. 운영 업무의 자동화. 우버에는 사람이 하는 운영 조직이 수없이 많았다. 도시 운영, 고객 대응, 예외 처리. 회사가 커질수록 그 사람들도 함께 불어났다. 회의실 유리벽 너머로 마켓 스트리트의 회색 빌딩들이 보였고, 화이트보드에는 박스와 화살표가 순식간에 번졌다. 사람이 하는 일을, 소프트웨어가 대신할 수 없을까. 오큘러스라는 이름의 프로젝트가 시작되었다. 애런이 테크 리드를, 태훈이 백엔드 구현을 맡았다.
그러나 구체화가 시작되자 곧 진실이 드러났다. 무엇을 자동화할 것인가. 어디까지 맡길 것인가. 어떤 판단을 소프트웨어에 넘길 것인가. 막상 들여다보니, 사람조차 자기가 왜 그렇게 결정했는지 명확히 설명하지 못하는 경우가 허다했다. 자동화하려면 그 모호한 판단을 코드로 옮겨야 하는데, 옮길 데이터도 부족했고, 모델도 부족했고, 그 정도 지능을 구현할 인력도 부족했다. 꿈은 거대했지만, 발밑은 비어 있었다.
애런과 태훈은 자주 부딪쳤다. 회의실 문이 닫히고, 화이트보드가 가득 채워지고, 서로 상대의 논리를 깨뜨리려 덤벼들던 날들. 고성이 오간 날도 있었다. 그러나 그 충돌은 우정을 해치지 않았다. 둘 다 그 문제를 진심으로 믿었기 때문이다. 누가 옳으냐가 아니라, 어떻게 해야 제대로 만드느냐가 중요했으니까. 그는 좋은 엔지니어와 그렇지 않은 엔지니어를 가르는 기준 하나를 여기서 얻었다고 말한다. 좋은 엔지니어는 의견을 강하게 주장하되, 자기 자존심보다 문제를 더 중요하게 여긴다. 그들은 서로를 공격한 것이 아니라 문제를 공격하고 있었고, 그래서 아무리 싸워도 사이가 상하지 않았다. 애런은 그런 사람이었다. 결국 오큘러스는 자연스럽게 힘을 잃고 해체되었다. 실패였다. 그러나 태훈은 그 시간을 나쁘게 기억하지 않는다. 뛰어난 사람들과 너무 큰 문제에 진심으로 덤벼본 경험이었기 때문이다. 그때 그는 한 가지를 배웠다. 큰 꿈은 중요하지만, 무엇을 풀고 있는지조차 모르는 꿈은 오래 버티지 못한다는 것. 네오플에서 그렸던 글로벌 액션 포털처럼, 어떤 꿈은 그림이 거대할수록 더 빨리 흩어졌다.
오큘러스 이후, 태훈은 우버 포 비즈니스로 옮겼다.
기업 고객들이 쓰는 이동의 세계였다. 직원들의 출장 기록, 비용, 원장 생성, 정산. 그전까지 그의 질문은 늘 비슷했다. 어떻게 더 빠르게 만들까, 어떻게 더 안정적으로 만들까. 그런데 이곳의 질문은 달랐다. 이 데이터를 얼마나 믿을 수 있는가. 마침 우버는 상장을 앞두고 더 성숙한 회사가 되어가던 참이었고, 숫자의 정확성과 일관성은 단순한 기술 문제가 아니라 회사의 신뢰가 걸린 문제였다. 빠른 코드보다 정직한 숫자가 더 중요한 세계. 그는 거기서 또 다른 결의 엔지니어링을 배웠다.
그 무렵 그는 비즈니스 트립 서비스를 손봤다. 출장 정보를 여러 단계로 병렬화해, 가져오는 속도를 두 배 넘게 끌어올렸다. 화려한 일은 아니었다. 그러나 그런 단단하고 정확한 일들이, 상장을 앞둔 거대 기업의 바닥을 떠받치고 있었다.
그러다 우버 프레이트와의 인연이 시작되었다.
처음엔 비즈니스에서 배운 것을 화물 쪽에도 적용해 볼 수 있지 않을까 하는, 가벼운 내부 컨설팅 같은 일이었다. 프레이트는 당시 우버의 첨단기술그룹 산하에 있었고, 단순히 화물을 옮기는 사업이 아니라 언젠가 운전자 없는 트럭들이 달릴 네트워크를 준비하는 미래지향적 조직으로 설명되었다. 자율주행 트럭의 네트워크라니. 그 그림이 그의 마음을 끌었다.
합류하자마자 그는 시카고로 출장을 갔다. 코드를 쓰러 간 것이 아니었다. 운영자들이 실제로 어떻게 일하는지, 그 옆에서 일주일을 지켜보러 간 것이다. 사무실은 아침부터 전화로 들끓었다. 화물이 늦었다는 연락, 트럭이 고장 났다는 연락, 예상치 못한 비용, 끝없는 고객 문의. 운영자들은 그 아수라장을 맨손으로 처리하고 있었다. 화주와 운송사 사이에서 가격을 조율하고, 대기 시간이며 추가 작업이며 온갖 부대비용을 일일이 계산하고, 전화기를 붙들고 하루를 버텼다. 태훈은 그 옆에 앉아 조금씩 감을 잡았다. 아, 우리가 풀어야 할 문제는 바로 이것이구나. 화이트보드 위의 우아한 그림이 아니라, 전화기 너머의 이 아수라장.
그것은 그가 가장 잘하는 종류의 깨달음이었다. 다음에서 느린 조회의 흐름을 종이에 그려보던 그날처럼, 그는 현장의 실제 고통을 들여다보는 데서 출발했다. 그리고 그 고통이 곧 그가 만들 것의 설계도였다.
시카고라는 도시 자체도 그에게 깊은 인상을 남겼다. 캘리포니아의 무던한 볕과는 전혀 다른 풍경이었다. 시카고 강을 따라 늘어선 오래된 건물들, 그 사이로 솟은 강철과 유리의 고층 빌딩들, 그리고 마천루의 협곡을 가르며 부는 바람. 해 질 무렵 도시 전체가 붉게 물드는 거리를 걸으며, 그는 자신이 처음 보는 미국을 보고 있다는 기분이 들었다. 캘리포니아도 미국이었지만, 이 단단하고 차가운 도시도 미국이었다. 그가 아는 세상은 늘 그가 아는 것보다 넓었다. 며칠 지나 그는 딥디시 피자도 좋아했다. 처음엔 피자라기보다 파이에 가까워 보이던 그 두툼한 음식이, 어느새 시카고의 맛으로 그의 안에 남았다.
시카고에서 본 그 아수라장이, 그의 다음 장을 채웠다.
그는 우버 프레이트의 부대비용 자동화를 만들었다. 대기 시간, 추가 정차, 예외 상황마다 손으로 계산하고 다투던 그 비용들을, 시스템이 알아서 처리하게 했다. 재무 운영의 효율이 여덟 배로 뛰었다. 이어 결제와 정산을 완전 자동화했다. 운송사가 일하고도 돈을 받기까지 한없이 늘어지던 청구 주기를, 최대 일곱 배까지 단축했다. 트럭 운전사가 일한 만큼 제때 돈을 받는 것. 그것은 화면 속 숫자가 아니라, 도로 위 누군가의 생계가 걸린 문제였다.
그가 평생 매료된 것이 정확히 쓴 만큼 정확히 작동하는 세계였다면, 프레이트의 일은 거기에 한 겹을 더했다. 일한 만큼 제때 정직하게 보상받는 세계를, 그가 직접 만들고 있었던 것이다. 차비가 없어 학교를 못 가던 소년, 콩나물 한 줌을 외상으로 달라다 빈손으로 돌아서던 아이가, 이제 수많은 운전사들이 일한 값을 제때 받도록 하는 시스템을 짓고 있었다. 가난이 무엇인지 아는 사람이 만든 정산 시스템에는, 본인은 미처 의식하지 못한 어떤 정의감이 깃들어 있었다.
우버에서의 약 3년은, 그의 커리어에서 가장 단단한 시기였다. 검색도 게임도 데이터도 거쳐온 그가, 이곳에서 비로소 거대한 규모와 현실의 복잡함을 동시에 다루는 백엔드 엔지니어로 무르익었다. 그러나 그 무르익음의 끝에서, 뜻밖의 방향에서 한 통의 연락이 온다. 태평양 건너, 그가 떠나온 나라에서였다. 돌아갈 줄 알고 떠나왔다가 어느새 가방을 다 풀어버린 그에게, 이번에는 그 가방을 다시 싸서 돌아오라는 부름이 도착하고 있었다.
그렇게 3부 「샌프란시스코」가 저문다. 곧 돌아갈 줄 알고 가방을 풀지 않았던 한 사람이, 이 도시에서 종이상자를 들고 울었고, 화장실 셋인 집을 가졌고, 내가 모르는 이름으로 불리며 새 사람이 되었고, 끝내 555 마켓 스트리트의 면접실에 앉아 자기 생의 가장 큰 실패를 이야기할 수 있게 되었다. 트윈픽스에서 누군가 제2의 Home이라 불러주었던 그 도시는, 어느새 정말로 그의 두 번째 고향이 되어 있었다. 그러나 갈매기는 한 항구에 오래 머무는 새가 아니다. 가장 먼 바다에 닻을 내린 듯 보였던 그는, 이제 자신이 떠나온 첫 항구를 향해 다시 날개를 편다.