부트스트랩 창업자로 지낸 6번째 해
6년 전, 저는 Google에서 개발자로 일하던 직장을 그만두고 직접 부트스트랩 소프트웨어 회사를 만들기로 했습니다.
처음 몇 년 동안 제가 시도한 사업은 모두 실패했습니다. 그나마 가장 잘됐던 사업도 한 달에 수백 달러 정도의 매출을 올리는 데 그쳤고, 수익을 낸 사업은 하나도 없었습니다.
3년 차 중반에 저는 TinyPilot이라는 장치를 만들었습니다. 이 장치는 사용자가 컴퓨터를 원격으로 제어할 수 있게 해 줍니다. 제품은 빠르게 반응을 얻었고, 그 이후로 줄곧 제 일의 중심이 되었습니다.


TinyPilot은 사용자가 컴퓨터를 원격으로 제어할 수 있게 해 주는 작은 장치입니다.
2023년 TinyPilot은 99만 7천 달러의 매출을 올렸는데, 넉넉하게 반올림하면 100만 달러입니다. 더 중요한 것은 사업이 23만 6천 달러의 순이익을 냈다는 점으로, 2022년 대비 20배 증가한 수치입니다.
이번 글에서는 부트스트랩 창업자로서 6번째 해를 보내며 배운 것들을 공유하려고 합니다.
이전 회고 글
TinyPilot의 수익성이 20배로 뛰었습니다
| 수입/지출 | 2022 | 2023 | 변동 |
|---|---|---|---|
| 매출 | $807,458 | $992,597 | 자바스크립트를 활성화하면 증감 확인 가능 |
| 신용카드 리워드 | $4,327 | $4,379 | 자바스크립트를 활성화하면 증감 확인 가능 |
| 총수입 | $811,785 | $996,976 | 자바스크립트를 활성화하면 증감 확인 가능 |
| 광고비 | -$51,764 | -$39,270 | 자바스크립트를 활성화하면 증감 확인 가능 |
| 클라우드 서비스 | -$9,151 | -$16,408 | 자바스크립트를 활성화하면 증감 확인 가능 |
| 디자인 컨설팅 | -$30,215 | -$950 | 자바스크립트를 활성화하면 증감 확인 가능 |
| 전기·전자 엔지니어링 컨설팅 | -$124,643 | -$23,427 | 자바스크립트를 활성화하면 증감 확인 가능 |
| 풀필먼트 업체 | -$0 | -$28,321 | 자바스크립트를 활성화하면 증감 확인 가능 |
| 사무실 임대료 | -$6,600 | -$6,310 | 자바스크립트를 활성화하면 증감 확인 가능 |
| 인건비 | -$205,984 | -$255,779 | 자바스크립트를 활성화하면 증감 확인 가능 |
| 배송비 | -$28,324 | -$16,853 | 자바스크립트를 활성화하면 증감 확인 가능 |
| 원자재 | -$324,140 | -$358,457 | 자바스크립트를 활성화하면 증감 확인 가능 |
| 기타 비용 | -$25,398 | -$31,404 | 자바스크립트를 활성화하면 증감 확인 가능 |
| 총지출 | -$806,219 | -$777,179 | 자바스크립트를 활성화하면 증감 확인 가능 |
| 순이익 | $10,447 | $235,568 | 자바스크립트를 활성화하면 증감 확인 가능 |
거의 손익분기점 수준이던 2년을 거쳐 TinyPilot은 마침내 의미 있는 수익을 내게 되었습니다.
변화의 대부분은 매출 증가 덕분입니다. 올해 메탈 케이스로 전환했는데, 덕분에 고객이 기꺼이 지불하려는 가격이 올라갔고 생산 능력도 함께 늘었습니다.
비용 항목은 이리저리 변동이 있었지만 전체적으로는 거의 비슷한 수준을 유지했습니다. 로고를 다듬는 데 매달 6천 달러씩 디자인 에이전시에 지불하는 것을 중단하면서 디자인 비용은 거의 0에 가깝게 줄었습니다. 하드웨어 설계를 계속 개선하는 대신 기존 제품을 확장하는 데 집중했고, 그 결과 전기·전자 엔지니어링 비용을 10만 달러 줄일 수 있었습니다.
저는 급여를 따로 받지 않기 때문에 2023년 TinyPilot을 통해 제가 번 총액은 23만 6천 달러였습니다. 사람들은 제가 부트스트랩 창업 초반 5년 동안 적은 수입으로 어떻게 버틸 수 있었는지 자주 궁금해합니다. 답은 제가 물가가 낮은 매사추세츠 서부에 살고 있기 때문입니다. 빅테크에서 일하던 시절 모아 인덱스 펀드에 넣어 둔 저축이 있었고, 그 투자에서 나온 배당 소득만으로 생활할 수 있었습니다.
2023년 가장 아찔했던 10분
2월의 한 나른한 토요일 오후, 현관문을 두드리는 소리가 들렸습니다. 현관 앞에 서 있는 사람은 청바지에 윈드브레이커를 입은 50대 중반의 남성이었습니다. 저는 아직 잠옷 차림으로 문을 열었습니다.
“TinyPilot 하시는 분 맞나요?” 그가 물었습니다.
“큰일이다”라고 생각했습니다. 불만 있는 고객이 집을 찾아온 건 아닐까 싶었습니다.
“네, 맞는데요…” 저는 조심스럽게 대답했습니다.
“사무실 관리인입니다. 스프링클러가 터졌는데 댁 사무실에 들어갈 수가 없어서요. 내려와 보실 수 있을까요?”
심상치 않은 이야기였습니다.
사무실까지 5분 정도 운전하는 동안, 이게 사업의 끝일지도 모른다는 생각이 들었습니다. TinyPilot의 재고는 모두 사무실에 보관하고 있었습니다. 회로 기판이 물에 흠뻑 젖은 뒤에도 정상적으로 작동할까? 아마 아닐 겁니다.
TinyPilot은 보험에 가입되어 있었지만, 1년 전에 들었던 보험이라 당시 재고는 지금의 절반 수준이었습니다. 설령 보험금을 받는다고 해도 전체 제조 파이프라인을 다시 가동하기까지 TinyPilot은 몇 달 동안 꼼짝없이 멈춰 있어야 할 것이었습니다.
건물에 도착해 2층에 있는 TinyPilot 사무실로 올라가는 동안, 발을 디딜 때마다 카펫에서 물이 질퍽하게 밟혔습니다.
층에 도착해 보니 스프링클러는 다행히 TinyPilot 사무실이 아니라 공용 회의실에서 터진 것이었습니다. 사무실 문을 열고 들어가 보니 안은 완전히 말라 있었습니다. 물이 문틈으로 스며들지도 않았습니다.
안도감도 잠시, 건물주는 회의실과 맞닿은 벽을 수리해야 하므로 “몇 주에서 몇 달” 동안 사무실을 비워야 할 수도 있다고 말했습니다.

TinyPilot 사무실 옆방에서 스프링클러가 터져 내부가 완전히 망가졌습니다.
보통도 며칠 만에 사무실 전체를 옮겨야 하는 상황은 큰 혼란을 초래하지만, 그 주는 특히 더 그랬습니다. 저는 TinyPilot을 시작한 이후 가장 긴 여행인 2주간의 유럽 여행을 앞두고 있었습니다.
제가 없는 동안 팀이 이사를 해야 한다면 컴퓨터나 프린터를 세팅할 사람이 아무도 없었습니다. 사무실 IT 담당자는 바로 저였기 때문입니다. 그리고 팀이 배송 라벨을 출력할 수 없으면 주문을 처리할 수도 없었습니다.
결론적으로 이사를 하지 않아도 됐지만, 그 일을 겪고 나니 다시는 그런 상황에 처하고 싶지 않다는 생각이 들었습니다. TinyPilot의 운영을 작고 단일한 사무실 한 곳에 집중시키는 것은 너무 큰 위험을 감수하는 일이었습니다.
주문 처리 외주화와 스트레스 줄이기
TinyPilot의 주문 처리는 항상 매우 원활했기 때문에 외주화를 계속 미뤄 왔습니다. 지난 2년간 3,500건이 넘는 주문 중 잘못된 제품을 보낸 경우는 다섯 건 정도에 불과했습니다.
2023년 3월, TinyPilot은 주문 처리를 자체적으로 하던 방식에서 제3자 물류(3PL) 창고를 이용하는 방식으로 전환했습니다. 장치 조립은 여전히 사무실에서 했지만, 고객에게 바로 발송할 수 있도록 포장된 제품을 대량으로 창고에 보내면 3PL이 고객에게 배송하는 마지막 단계를 맡는 구조였습니다.
3PL로 전환할 당시 우리는 “긴급 모드”에 있었습니다. 두 명의 파트타임 직원으로 구성된 팀이 일주일에 약 50대를 조립하고 있었는데, 고객들도 같은 속도로 구매하고 있었습니다. 작은 차질만 생겨도 판매를 중단해야 할 수 있는 아슬아슬한 상황이었습니다.
풀필먼트를 외주화하면 팀의 시간을 확보해 주당 100대 정도를 생산할 수 있을 거라 기대했습니다. 하지만 실제 최대 생산 능력은 70대 정도에 불과했습니다. 그 속도라면 창고에 충분한 재고를 쌓는 데 최대 능력으로 몇 달을 일해야 했습니다. 결국 여름을 버티기 위해 임시로 직원 한 명을 더 채용했습니다.
결국 풀필먼트 외주화가 시간을 크게 벌어다 주지는 않았지만, 훨씬 더 많은 유연성을 얻을 수 있었습니다.
현지 팀은 이미 유연하게 일하는 것처럼 보였습니다. 다음 날 우편 수거 전까지 주문 포장만 끝내면 됐기 때문에, 마음만 먹으면 새벽 3시에 나와 일해도 됐습니다.
3PL로 전환하자 매일 우편을 부쳐야 하는 마감 압박이 사라졌습니다. 대신 일주일에 한 번 조립된 제품을 창고로 보내기만 하면 됐습니다.
유연성이 높아지면서 스트레스가 많이 줄었습니다. 직원이 4일 연휴를 쓰고 싶으면 스케줄을 조정해 그 주에도 평소대로 15시간을 채울 수 있었습니다. 며칠을 쉬더라도 다른 팀원에게 부담을 준다는 느낌 없이 쉴 수 있었습니다.
TinyPilot을 진짜 제품처럼 보이게 만들기
2023년 TinyPilot에서 가장 눈에 띄는 변화 중 하나는 제품 외관을 개선한 것이었습니다.
2022년 말까지도 우리는 7대의 고급 3D 프린터를 쉬지 않고 돌려 TinyPilot 케이스를 만들고 있었습니다. 3D 프린팅 제품치고는 케이스 품질이 꽤 훌륭했지만, 여전히 3D 프린팅 특유의 ‘시제품 같은’ 느낌을 벗어나지 못했습니다.

이전: TinyPilot의 3D 프린팅 케이스
2023년 2월, 우리는 메탈 케이스로 전환했습니다.

이후: TinyPilot의 메탈 케이스
메탈 케이스가 판매에 미친 영향은 놀라울 정도였습니다. 판매량 자체가 늘었을 뿐 아니라 고객이 지불하고자 하는 가격도 올라갔습니다. 가격 실험을 거친 뒤 결국 가격을 10% 인상했는데도 월 판매량은 3D 프린팅 케이스를 쓰던 때보다 많았습니다.
TinyPilot의 패키징도 개선했습니다. 작년 말까지만 해도 장치와 케이블을 모두 버블 파우치에 한데 넣고 그냥 평범한 갈색 박스에 담아 보내고 있었습니다.


이전 TinyPilot 패키징은 장치와 케이블, 설명서를 버블 파우치에 깔끔하게 넣어 포장한 것이 전부였습니다.
리뷰어가 TinyPilot 개봉 경험을 공유할 때마다 저는 조금씩 얼굴을 찡그렸습니다.

한 홈랩 리뷰어가 리뷰에서 TinyPilot의 예전 부끄러운 패키징을 보여주고 있습니다
제품용으로 멋진 리테일 박스를 만들자고 디자이너들과 몇 차례 이야기한 적은 있었지만 제대로 진척되지 않았고, 우선순위도 높지 않았습니다. 메탈 케이스로 바꾼 뒤에는 TinyPilot의 패키징이 특히 미숙해 보였습니다.
2023년 하반기에는 위탁 제조업체와 협력해 전체 생산 과정을 넘겼습니다. 그 과정에서 업체가 리테일 박스 제작도 제안해 주었습니다.


TinyPilot의 새로운 위탁 제조업체가 제품을 위한 브랜드 리테일 박스를 만들어 주었습니다.
위탁 제조업체는 박스를 정말 잘 만들어 주었습니다. Best Buy 매대에 진열된다고 해서 눈길을 사로잡을 정도는 아니지만, 네트워킹 하드웨어 제품으로서 전문적인 패키징처럼 느껴집니다.
교훈
즉각 대응해야 하는 책임에는 보이지 않는 스트레스가 있다
TinyPilot의 주문 처리를 3PL로 전환한 것은 현지 팀의 스트레스를 줄이고 유연성을 높여 주었지만, 제 스트레스가 얼마나 크게 해소됐는지에 가장 놀랐습니다.
저는 몇 년 동안 깨닫지도 못한 채 수많은 ‘만약에…’ 불안을 안고 살고 있었습니다.
3PL로 전환하기 전에는 주문 처리를 막을 수 있는 온갖 변수에 대한 걱정이 항상 마음 한구석에 있었습니다. 사무실 공유기가 고장 나서 인터넷에 접속하지 못하면 어떡하지? 데스크톱이 갑자기 프린터와 연결이 안 되면 어떡하지? 긴급하게 핵심 프로세스를 복구하러 호출될 수 있는 상황이 수십 가지나 있었습니다.
이제 3PL과 위탁 제조업체로 전환한 뒤에도 잘못될 수 있는 일은 여전히 많지만, 저는 대부분의 일상 운영에서 핵심 경로 밖에 있습니다. 창고에서 프린터가 고장 나도 다른 누군가가 고칠 것이고, 저는 아마 그 사실조차 듣지 못할 겁니다.
프로젝트가 성숙할수록 유지보수에 더 많은 시간이 든다
6월, 최신 TinyPilot 소프트웨어 업데이트의 변경 사항을 정리하려고 앉았을 때, 우리가 한 작업 중 무엇이 사용자에게 도움이 됐는지 설명하기가 어려웠습니다. 리팩터링 작업을 너무 많이 한 탓이라 생각하고 다음 릴리스에서는 사용자 중심으로 만들겠다고 다짐했습니다.
다음 업데이트를 발표할 때도 같은 문제에 부딪혔습니다. 두 달 반 동안 개발한 끝에 보여줄 수 있는 것은 작은 외관 개선뿐이었습니다.
몇 달마다 주요 기능을 출시하던 초창기에 비하면 지금 속도는 거북이걸음처럼 느껴졌습니다. 제가 업무 우선순위를 잘못 정한 걸까? 팀의 열정이 식은 걸까? 기술 부채를 너무 많이 떠안은 걸까?
최종 사용자에게는 보이지 않는 작업을 포함해 이번 릴리스의 전체 작업 목록을 검토했습니다. 지금 돌이켜봐도 올바른 작업을 선택했다고 느꼈고, 각 작업에 들인 시간도 합리적이라고 생각했습니다.

TinyPilot 2.6.1 릴리스의 작업들을 제품 개선(초록), 자동화 및 복잡도 감소(파랑), 일반 유지보수(빨강)로 색상 구분한 모습
그렇다면 우선순위를 잘 정하고 효율적으로 일하는데도 왜 진행 속도는 이렇게 느려진 걸까?
가장 큰 원인은 코드베이스의 규모라는 것을 깨달았습니다. 지금 코드량은 3년 전의 3배입니다. 그리고 코드 한 줄마다 유지보수에 시간이 듭니다. 개발자 수를 그대로 유지한 채 코드베이스만 커진다면, 우리 시간 중 더 많은 비중을 기존 코드 유지보수에 써야 하는 것입니다.
유지보수를 넘어 코드가 많아질수록 새로운 기능을 만드는 비용도 커집니다. 앱에 기능이 하나도 없을 때는 첫 번째 기능을 만드는 것이 쉽습니다. 하지만 이미 20개의 기능이 있는 앱에 21번째 기능을 추가하려면 다른 모든 기능과 어떻게 통합할지 훨씬 더 많은 고민이 필요합니다.
그래서 아직 획기적으로 속도를 높일 방법은 찾지 못했지만, 기능 개발 속도에 대한 기대치를 조절하는 법을 배웠습니다. 그리고 더 복잡해진 코드베이스를 고려해 개발 비용을 산정하는 방식도 조정했습니다.
대부분의 지원 에스컬레이션은 비동기로 처리할 수 있다
저는 TinyPilot 팀에 가능한 한 많은 자율성을 주려고 노력합니다. 동시에 막히는 부분이 있을 때 누구나 편하게 저에게 도움을 요청할 수 있도록 하고 싶습니다.
문제는 지원 티켓이 저에게 에스컬레이션될 때 특히 스트레스가 심하다는 것이었습니다.
한동안은 그게 에스컬레이션의 본질이라고 생각했습니다. 가장 어려운 고객 문의만 저에게 오니 당연히 스트레스를 받을 수밖에 없다고 여겼습니다. 하지만 대부분은 개선할 수 있는 문제였습니다.
먼저 에스컬레이션 프로세스를 조정했습니다. 대부분의 에스컬레이션은 “Michael, 전에 본 적 없는 문제가 생겼어요. 어떻게 처리할까요?”라는 형태였습니다. 저는 팀에게 에스컬레이션할 때 해결책을 함께 제안하는 방식으로 접근법을 바꿔 보자고 했습니다. 만약 제가 부재중이고 자신들이 최후의 지원 라인이라면 고객에게 뭐라고 말할지 생각해 보라는 것이었습니다.
80%의 경우 팀이 제가 제안했을 해결책과 같은 답을 내놓았습니다. 지원 팀이 이런 방식을 반복할수록 어려운 케이스를 다루는 능력도 점점 좋아졌습니다.
팀의 답이 제 생각과 얼마나 가까운지 알게 되자, 제 답변 때문에 지원 티켓 처리를 멈출 필요가 없다는 것을 깨달았습니다. 80%의 케이스에서 제 역할이 “그래, 그렇게 해”라는 확인뿐이라면, 바로 팀의 계획대로 실행하고 병렬로 저에게 대안을 확인하면 되지 않을까 하는 생각이 들었습니다.
제가 더 나은 해결책을 가지고 있던 소수의 경우에도, 그것은 거의 항상 팀의 제안에 더해 고객이 시도해 볼 수 있는 추가적인 방법이었습니다. “더 일찍 개입해 주셨으면 좋았을 텐데요. 저희가 장치 전자레인지에 넣으라고 했더니 집에 불이 났어요” 같은 상황은 한 번도 일어나지 않았습니다.
작년 목표 평가
작년에는 한 해 동안 달성하고 싶은 큰 목표 세 가지를 세웠습니다. 그 목표들을 어떻게 달성했는지 돌아보겠습니다.
주 20시간으로 TinyPilot 운영하기
- 결과: 이전 해들보다 근무 시간을 크게 줄였고 어느 해보다 많이 여행했습니다.
- 학점: B-
2023년에는 2022년보다 훨씬 적게 일했습니다. 업무와 개인적인 이유로 여행을 많이 다녔습니다. 합치면 약 5주 동안 “자리 비움” 상태였지만 모든 일은 잘 진행되었습니다.
저녁에 업무를 마무리할 때 보통 하루 일이 깔끔하게 끝났다는 느낌이 들었는데, 2022년에는 마무리하지 못한 일이 남았다는 느낌을 자주 받았습니다.
10만 달러 순이익 달성
- 결과: 23만 6천 달러의 순이익을 달성했습니다.
- 학점: A+
하드웨어 엔지니어링 비용이 줄어들 것을 알았기 때문에 올해는 수익이 날 거라 예상했지만, 메탈 케이스 전환으로 TinyPilot이 얼마나 더 많은 매출을 올릴지는 과소평가했습니다.
목표를 초과 달성해 기분 좋게 놀랐습니다.
TinyPilot 사무실 닫기
- 결과: 중요도가 낮은 업무를 위해 사무실을 계속 유지하고 있습니다.
- 학점: B
이 목표를 세울 때는 건물주가 월 단위 임대 계약에 동의할 거라 기대하지 않았는데, 동의해 주었습니다. 장기 계약이 아니니 특정 기한까지 나가야 한다는 압박이 덜합니다.
제조와 풀필먼트라는 핵심 운영을 사무실 밖으로 성공적으로 이전했습니다. 그래서 엄밀히 말하면 사무실이 꼭 필요한 것은 아니지만, 거점 공간이 있다는 것은 여전히 편리합니다.
내일 당장 관리인이 찾아와 어떤 재해로 사무실 재산이 모두 파손되고 공간을 사용할 수 없게 됐다고 해도 답답하겠지만 치명적이지는 않을 것입니다.
7년 차 목표
주 20시간으로 TinyPilot 운영하기
2022년에도 2022년에도 2023년에도 같은 목표를 세웠다는 걸 알고 있습니다. 하지만 세 번째 도전에는 행운이 따른다고 하죠! 관리에 쓰는 시간이 계속 줄어드는 추세이니 올해는 달성할 수 있을지도 모르겠습니다.
강의나 책 출간하기
2021년에 저는 개발자의 글쓰기 개선을 돕는 책을 쓰겠다고 말했습니다. 첫 장의 80%까지 썼다가 TinyPilot이 그해 제 여가 시간을 모두 흡수해 버렸습니다.
여전히 그 책을 쓰고 싶기 때문에, 관리 시간을 줄일 수 있다면 확보된 시간을 글쓰기에 쓰고 싶습니다.
최근에는 Nix와 Zig라는 두 기술을 실험하고 있는데, 흥미로운 기술이지만 교육 자료가 부족하다고 느낍니다. 그중 하나에 대한 강의를 만드는 것은 제 전문성을 키우면서 다른 사람들이 이 도구를 더 쉽게 접할 수 있게 하는 재미있는 방법이 될 수 있을 것 같습니다.
주 10시간 소프트웨어 개발하기
코딩은 여전히 제가 가장 좋아하는 일 중 하나입니다.
지난 몇 년간 TinyPilot에서 프로그래밍을 즐기긴 했지만, 제한된 근무 시간을 쓰는 현명한 방법은 아니었습니다. 6명의 팀원, 여러 핵심 협력업체, 그리고 많은 움직이는 요소들이 있는 상황에서 TinyPilot에서 가장 시급한 일은 항상 관리였습니다.
TinyPilot의 운영 측면을 더 많이 외주화하고 위임함으로써, 프로그래밍이 제 시간을 쓰는 최적의 방법은 아니더라도 적어도 합리적인 방법이 될 만큼의 여유를 확보할 수 있기를 바랍니다.
여전히 이 일이 좋을까?
매년 이런 회고 글을 쓸 때마다 저는 지금 하는 일이 여전히 좋은지 스스로에게 물어봅니다.
2022년은 지금까지 가장 힘들었던 해로 남아 있습니다. 고용주를 위해 일하는 것보다는 여전히 나았지만, 글로벌 칩 부족 사태를 헤쳐 나가며 새로운 팀원을 온보딩하는 것은 엄청난 도전이었습니다.
2023년은 전년에 비해 크게 나아졌습니다. 급하게 꺼야 할 불도 적었고, 핵심 워크플로를 전문 업체에 이전한 것은 만족스러웠습니다.
2023년의 단점은 좀처럼 흥이 나지 않았다는 것입니다. 구조조정의 해였기 때문에 TinyPilot의 프로세스를 재정의하고 팀의 역할을 조정하는 데 많은 시간을 썼습니다. TinyPilot을 통해 저는 조직 프로세스를 설계하는 데 있어 평균적인 개발자보다 뛰어나다는 것을 알게 됐지만, 여전히 그 일은 지독하게 지루하게 느껴집니다.
그 해를 사랑했다고 말할 수는 없지만, 대부분은 즐겁게 보냈고 고용주를 위해 일하는 것보다 여전히 좋았습니다. 스스로 일하며 자랑스러운 제품을 만들어 생계를 이어갈 수 있는 위치에 있다는 것에 감사합니다.
글을 무작위로 읽기