My Third Year as a Solo Developer

Michael Lynch

솔로 개발자 3년 차 회고

원문은 Michael Lynch님이 에 게재했습니다. 이 블로그 구독하기

오늘은 구글을 그만두고 나만의 소프트웨어 비즈니스를 시작하기로 한 지 3주년이 되는 날이다. 첫 해두 번째 해가 끝날 때 근황을 공유했으니, 이제 그동안의 진행 상황을 나눌 차례다.

모든 것이 맞아떨어진 해

스스로 일한 첫 2년 동안 내가 번 돈은 총 1만 달러가 채 되지 않았다. 3년 차 목표는 매출 2만 달러를 달성하는 것이었다.

연중 절반이 지났을 때도 목표 달성은 어려워 보였다. 내 비즈니스들을 모두 합쳐도 한 달에 약 300달러를 버는 수준이었고, 새로 시도한 아이디어 중 제대로 된 것은 하나도 없었다.

기적처럼 5월에 출시한 하나의 신제품이 모든 것을 뒤바꿨다. 연말이 되자 매출은 6만 3천 달러를 기록하며 목표를 훨씬 웃돌았다.

물론 순이익은 여전히 적자지만, 이번에는 그럴 만한 이유가 있다!

이제 실물 제품을 판매하다 보니 수익이 비용보다 2~3개월 늦게 잡힌다. 건당 마진율이 30~50%이니 결국 숫자는 따라잡히게 되어 있다.

잠깐, 계속 손해를 보는데 어떻게 버티고 있나요?

작년 회고에서 이 부분에 대해 더 자세히 설명했지만, 요약하자면 생활비가 낮고, 구글 시절 모아둔 여윳돈이 있으며, 투자를 통한 불로소득이 있기 때문이다.

프로젝트별 이야기

TinyPilot

TinyPilot은 서버를 원격으로 관리하기 위해 내가 만든 저렴한 장치다.

지난 몇 년 동안 나는 모든 소프트웨어 개발을 홈 서버에서 해왔다. 네트워크 설정을 망치거나 새 운영 체제를 설치해야 할 때만 빼면 아주 잘 작동했다. 내 서버에는 모니터나 키보드가 연결되어 있지 않아서, 그럴 때마다 서버를 책상까지 끌고 와 워크스테이션의 케이블을 전부 바꿔 꽂았다가 작업이 끝나면 다시 원상복구해야 했다.

라즈베리 파이가 USB 키보드인 척할 수 있다는 글을 읽은 적이 있고, 영상을 캡처할 수도 있다는 걸 알고 있었다. 이 두 기능을 결합한 웹 앱을 만들면 라즈베리 파이를 소형 원격 관리 장치로 탈바꿈시킬 수 있지 않을까?

몇 달간 이것저것 만져본 끝에 작동하는 프로토타입이 나왔다.

두 컴퓨터를 연결한 TinyPilot 사진

오픈소스 KVM over IP 장치인 TinyPilot의 프로토타입

시장이 있을지 의문이었다. 누구나 쉽게 구할 수 있는 하드웨어 부품들을 모아놓은 것뿐인 이 장치를 누가 굳이 나에게서 사려고 할까? 일주일에 한두 명 정도가 구매한다면, 키트 하나당 80달러를 남길 수 있으니 포장과 배송에 들이는 시간이 아깝지 않을 것 같았다.

그리고 블로그 글을 하나 올렸다.

즉시 이 비즈니스가 지금까지 해온 그 어떤 것과도 다르다는 게 분명해졌다. 블로그 글이 올라온 지 4시간도 채 되지 않아 재고로 있던 9개의 키트가 모두 팔렸고, 품절 상태에서도 주문은 계속 들어왔다.

일주일 만에 그 블로그 글은 8,800달러의 매출을 만들었다. 해커 뉴스(Hacker News) 메인에 올랐고, 역대 인기 “Show HN” 게시물 중 하나가 되었다.

해커 뉴스와 레딧에서의 TinyPilot 반응

첫 폭발 이후 매출이 잠시 주춤했지만, 그 뒤로 TinyPilot은 꾸준히 성장해왔다. 실물 제품을 팔아본 경험이 전혀 없었던 나는 재고 관리하는 법, 주문 처리 과정을 체계화하는 법, 그리고 회로 기판3D 프린팅 케이스를 만들기 위해 협력업체와 일하는 법을 빠르게 배워야 했다.

TinyPilot은 연말까지 거의 5만 4천 달러의 매출로 한 해를 마쳤다. 순이익은 여전히 적자지만, 비용이 선투입됐기 때문이다. TinyPilot의 2020년 지출에는 2021년 2월까지 쓸 재고 비용이 포함되어 있다.

수익/비용2020
매출$53,362
기부$380
재료비-$46,143
전기 엔지니어링 컨설팅-$7,130
주문 처리-$2,570
소프트웨어 개발*-$1,321
오픈소스 기여-$1,270
광고-$675
그래픽 디자인-$250
호스팅 / 도메인-$64
순이익-$5,681

* 코드는 대부분 내가 직접 작성하지만, 판매 페이지는 개발자를 고용해 도움을 받았다.

Hit the Front Page of Hacker News

Hit the Front Page of Hacker News는 내 블로그 운영에 관한 강의다.

5월에 나는 동료 멘토링 그룹에서 “How to be a Sort of Successful Software Blogger.”라는 비공식 발표를 했다. 내 글이 해커 뉴스나 레딧 같은 곳에서 통하는 비결을 분해해보려 했다. 내 과정을 공유하는 건 재미있었지만, 그 자료로 무엇을 더 해야 할지는 알 수 없었다.

한 해가 지나면서 개발자들이 자신이 아는 것을 유료 강의로 가르치는 모습을 점점 더 많이 보게 됐다. TinyPilot을 통해 블로그와 비즈니스를 연결하는 것이 얼마나 강력한지 알게 됐다. 사람들이 내 블로그를 좋아한다면, 글쓰기에 관한 강의를 구매하는 데도 관심이 있을지 모른다.

강의를 녹화하는 일은 생각보다 훨씬 어려웠다. 30~40시간이면 될 거라 예상했지만, 거의 200시간이 걸렸다.

강의는 2021년 1월에 출시됐기 때문에 아래 수치에는 출시 이후 주문이 포함되어 있지 않다. 지금까지 판매량은 많지 않지만, 장기적인 수익을 가늠하기엔 아직 이르다. 어쨌든 결과물 자체가 자랑스럽고, 몇몇 수강생들은 강의 내용이 글쓰기에 큰 영향을 미쳤다고 말해주었다.

지표2020
사전 주문29
사전 주문 매출$1,431
표지 디자인-$293
녹음 장비-$584
순이익$554

mtlynch.io (이 블로그)

올해 블로그 운영에서 가장 크게 달라진 점은 글 주제를 더 전략적으로 고민하기 시작했다는 것이다. 2020년 이전에는 “지금 떠오른 주제니까 일단 써보고 반응을 보자”는 식으로 글을 썼다. 가끔은 독자를 찾기도 했지만, 대부분은 그렇지 못했다.

올해는 새로운 글을 쓰기 전에 스스로에게 두 가지 질문을 던졌다.

  1. 이 주제에 관심 있는 독자는 얼마나 되는가?
  2. 그들에게 도달할 방법이 있는가?

이 작은 계획이 독자 수에 엄청난 차이를 만들었다. 2019년에는 게시 후 첫 주 평균 조회수가 5,000명이었지만, 2020년에는 25,000명으로 뛰었다. 새로 발행한 아홉 개의 글 중 하나를 제외하고 모두 해커 뉴스 메인에 올랐고, 그중 네 개는 1위를 차지했다.

지표20192020변화
페이지뷰273,817719,899+446,082 (+163%)
제휴 수익*$374$1,599+$1,225 (+328%)
개발-$460$0-$460 (-100%)
일러스트-$769-$964+$195 (+25%)
호스팅 / 도메인-$150-$534+$384 (+256%)
교정 + Grammarly-$200-$222+$22 (+11%)
순이익-$3,835-$121+$3,714

* 나는 2020년 말에 이 블로그의 모든 제휴 파트너십을 중단했다.

실패한 프로젝트들

작년에 배운 가장 중요한 교훈 중 하나는 올바른 아이디어를 추구한다는 것이 잘못된 아이디어를 버리는 것을 의미한다는 점이었다. 6~8주가 지나도 의미 있는 매출이 나오지 않으면, 다른 고객층을 겨냥해 방향을 틀거나 아예 새로운 프로젝트로 넘어간다.

Is It Keto

Is It Keto 웹사이트 스크린샷

Is It Keto는 어떤 음식이 키토 식단에 맞는지 알려준다.

나는 2018년에 Is It Keto를 시작했다. 특정 음식이 키토 식단에 맞는지 여부를 알려주는 단순한 사이트다.

2019년에 이 사이트를 포기했지만, 새로 시도한 비즈니스 아이디어들이 연달아 실패하자 2020년 4월에 다시 기웃거리게 됐다. Is It Keto는 수익이 났지만 간신히 나는 수준이었다. 방문자 한 명당 0.01달러도 채 벌지 못했기 때문에 방문자 수나 수익을 대폭 늘려야 했다.

성장을 확대하기 위해 글 작성을 자동화해보려 했다. Is It Keto가 운영되는 동안 모든 글은 100% 내가 직접 쓰거나 고용한 작가들이 작성한 오리지널 콘텐츠였다. 기존 콘텐츠를 검토하다 보니 템플릿으로 추상화할 수 있는 일관된 패턴이 보였다. 알맞은 음식 이름과 사진, 영양 정보를 넣으면 빠르게 새로운 페이지를 생성할 수 있었다.

Is It Keto 글과 그것을 생성한 소스 코드

템플릿으로 Is It Keto 글을 프로그래밍 방식으로 생성하기

처음에는 콘텐츠를 템플릿화하면 일주일에 수백 개의 글을 추가할 수 있을 것 같았지만, 품질을 희생하지 않고 그 속도로 확장하는 것은 어려웠다. 두 달 동안 추가한 글은 118개에 불과했다. 템플릿을 추가할수록 속도는 빨라졌지만, 추가된 콘텐츠가 끌어오는 방문자는 너무 적어 노력을 들일 가치가 없었다.

다른 아이디어는 친구인 저스틴 빈센트에게서 나왔다. 그는 내 사이트가 한 달에 7만~10만 페이지뷰를 기록하면서도 수익이 그토록 적다는 사실에 깜짝 놀랐다. 그는 유료 자매 제품을 만들고 Is It Keto를 이용해 잠재 고객을 끌어오라고 조언했다.

키토 커뮤니티와 앱을 위한 랜딩 페이지 몇 가지를 테스트해봤지만, 방문자 중 추가 정보를 신청한 비율은 0.1%에 불과했다. 그 무렵 TinyPilot이 본격적으로 성장하기 시작하면서 Is It Keto는 다시 뒷전으로 밀려났다.

지표20192020변화
페이지뷰521,9131,314,583+792,670 (+152%)
광고 수익$940$2,934+$1,994 (+212%)
제휴 수익$1,315$2,147+$832 (+63%)
식단 판매*$24$18-$6 (-25%)
프리랜서 디자이너 및 콘텐츠 작가-$4,322-$105-$4,217 (-98%)
호스팅 / 도메인-$115-$241+$126 (+110%)
순이익-$2,158$4,753+$6,911

* 나는 2020년 1월에 식단 판매를 포기했다

WanderJest

WanderJest 웹사이트 스크린샷

WanderJest는 코미디 팬들이 근처의 라이브 코미디 공연을 찾도록 돕는다.

WanderJest는 2020년 초에 시작한 단명한 프로젝트였다. 나는 이를 “Bandsintown의 코미디 버전”이라고 설명했다.

나는 코미디를 좋아하지만, 근처에서 열리는 코미디언 공연을 수없이 놓쳐왔다. 올바른 메일링 리스트에 없거나, 올바른 소셜 미디어 계정을 팔로우하지 않거나, 티켓마스터를 적절한 시점에 확인하지 않았기 때문이다. WanderJest는 가능한 한 많은 출처에서 공연 목록을 모아 이 문제를 해결하려는 시도였다.

극장과 제휴를 맺어 수익을 내려고 했지만, 아무도 내 할인 코드를 사용하지 않았다. 코로나19가 덮치자 나는 사이트를 폐쇄했다.

Portfolio Rebalancer

Portfolio Rebalancer 웹사이트 스크린샷

Portfolio Rebalancer는 패시브 투자자들이 투자를 관리하도록 돕는다.

내 투자 포트폴리오는 여러 범주의 주식과 채권이 섞여 있고, 각 자산 유형마다 목표 비중이 있다. 가격이 변동하면 투자 비중이 달라지므로, 목표 비율로 되돌리기 위해 자금을 옮겨야 한다. 나는 1년에 몇 번씩 스프레드시트에 숫자를 일일이 입력해 모든 게 맞아 보일 때까지 지루하게 조정하곤 했다.

웹 앱이 이를 자동화하면 어떨까? 빠르게 프로토타입을 만들어 레딧과 내 블로그, 구글 광고를 통해 공유했다. 이 도구는 첫 달에 방문자 1,000명을 끌어모았다. 안타깝게도 무료 체험을 신청한 사람은 단 한 명뿐이었고, 그마저도 유료 플랜으로 전환하지 않았다. 애초에 아이디어에 대한 확신이 없었기에 한 달 만에 접었다.

배운 교훈들

프로덕트 마켓 핏은 마법이다

“프로덕트 마켓 핏(product/market fit)”을 찾는다는 것은 비즈니스를 지속 가능하게 만들 만큼 충분한 고객과 연결되는 제품을 만드는 것을 의미한다. 창업자들이 프로덕트 마켓 핏을 달성했다고 말할 때, 그들은 마치 진정한 사랑을 찾은 것처럼 황홀한 어조로 말한다. 이제 나는 그 이유를 알 것 같다.

스스로 일한 첫 2년 반 동안 나는 아이디어를 실행하는 데 수백 시간을 쏟고도 몇 달러의 추가 수익을 보는 데 그쳤다. TinyPilot은 첫눈에 프로덕트 마켓 핏이었다. 블로그 글을 게시하자마자 바로 알 수 있었다.

TinyPilot과 함께라면 제품이 비즈니스를 이끌고 나는 그저 따라가는 느낌이다. 비즈니스를 운영하는 데 치명적인 실수를 한 달도 있었지만, 성장은 계속됐다.

제품을 개선하면 그 결과는 즉각적이고 상당하다. 11월에는 TinyPilot의 새로운 고급 모델을 출시했다. 첫 달에 55대가 팔리며 1만 4천 달러의 추가 매출이 발생했다. Is It Keto와 Portfolio Rebalancer에서 기록한 0.1%의 가입률과는 비교할 수 없을 만큼 기분 좋은 경험이었다.

24시간 대기하지 않고도 성공적인 비즈니스를 만들 수 있다

나는 2017년 말 UCB 코미디 극장에서 본 공연을 아직도 생생히 기억하지만, 공연 중 어떤 농담을 들었는지는 하나도 기억나지 않는다. 주머니 속 호출기가 언제 울릴지 몰라 내내 걱정했기 때문이다. 집으로 급히 달려가야 할지도 모른다는 생각에.

구글에 있을 때 우리 팀은 “당직 로테이션”이 있었다. 두 달에 한 번씩 2주 동안 어디를 가든 호출기를 들고 다녀야 했다. 호출기가 울리면 30분 이내에 “키보드에 손을 올려야” 했다.

구글을 떠날 때 나는 앞으로의 계획에 대해 확신이 없었지만, 한 가지는 분명했다. 다시는 호출기를 들고 다니지 않겠다는 것. 그리고 실제로 그러지 않았다. 장애가 “큰일”이 되는 비즈니스 아이디어는 일절 고려하지 않았다.

2년이 가까워지자 그런 생각이 스멀스멀 들기 시작했다. 바로 그 점 때문에 내가 뒤처지고 있는 건 아닐까 하는 생각이었다. 다른 창업자들은 상시 이용 가능한 서비스를 만들고 있는데, 나는 그보다 못한 것으로 성공할 수 있을까?

다행히 자수성가 창업의 대가인 제이슨 코헨이 계속 지금 하던 대로 하라고 말해주었다. 정확히 나에게 한 말은 아니었지만, 마치 나에게 직접 하는 말처럼 들렸다. 그의 훌륭한 강연 “Designing the Ideal Bootstrapped Business”32분 지점에서 코헨은 창업자들에게 “실시간” 비즈니스를 만들지 말라고 단호히 조언한다. 스스로 자금을 조달하는 소규모 비즈니스라면, 고객 때문에 한밤중에 깨는 것은 가치가 없다는 것이다.

두려움에 굴복하지 않길 정말 잘했다고 생각한다. TinyPilot은 “실시간”과는 거리가 멀다. 고객들은 내 소프트웨어를 자신들의 하드웨어에서 실행하기 때문에, 내가 모든 서버와 코드 저장소를 닫아도 누구의 업무에도 지장이 생기지 않는다.

성공은 실패보다 더 스트레스가 된다

TinyPilot이 상시 대기를 요구하지 않는데도, 내 뇌는 종종 그 사실을 잊는다.

대규모 출시 이후 이틀 동안 잠을 이루지 못했다. 9개의 키트를 모두 고객에게 발송한 뒤 다음에 무슨 일이 일어날지 끙끙 앓았다. 만약 모든 고객이 장치를 받았는데 하나도 작동하지 않으면 어떡하지? 고객들이 TinyPilot이 전혀 다른 기능을 하리라 기대하고 있으면 어떡하지? 모든 사람의 서버를 망가뜨리는 끔찍한 버그가 있으면 어떡하지?

내가 포장한 최초의 TinyPilot 주문 9건

다행히 초기 고객들은 TinyPilot을 마음에 들어 했고, 나는 마침내 안도의 숨을 내쉬었다. 하지만 몇 주마다 새로운 걱정이 생겨 며칠씩 마음을 졸였다. 우체국이 중요 부품을 담은 배송을 분실했다. 호평이 주문 폭주로 이어져 재고가 바닥났다. 세관 서류를 잘못 작성해 수출 금지 감옥에 갇릴까 전전긍긍했다.

현실적으로 내가 느끼는 압박은 모두 스스로 만든 것이다. 며칠 품절 상태가 된다면 누가 신경이나 쓰겠는가? 내 부실한 계획 때문에 주문이 지연되면 고객을 실망시킬까 불안하지만, 아무도 불평한 적은 없다. 오히려 배송이 늦어질 것 같아 사과하면, 고객들은 일일이 알려줘서 고맙다는 답장만 보내온다.

나는 스스로에 대한 압박을 덜고 일과 사생활을 분리하는 법을 점점 더 잘하게 되고 있지만, 여전히 진행 중인 과정이다.

작년 목표 채점

작년 초에 나는 세 가지 큰 목표를 세웠다.

모든 비즈니스를 합쳐 매출 2만 달러 달성하기

  • 결과: 매출 6만 3천 달러 달성
  • 등급: A+

초반에는 전망이 어두웠지만 목표를 훨씬 초과 달성했다. 2019년 매출이 7,200달러에 불과했던 것을 고려하면, 거의 9배에 달하는 증가는 큰 성과라고 느껴진다.

블로그 글 10개 발행하기

  • 결과: 블로그 글 9개 발행
  • 등급: A-

10개를 채울 뻔했지만, 글쓰기 강의를 만들느라 열 번째 글을 포기했다. 그럼에도 올해 블로그 성과에는 만족한다. 자랑스러운 글들을 여러 편 썼고, 그 글들이 공감하는 독자들에게 닿았다.

새로운 기술 하나 배우기

  • 결과: JavaScript를 더 깊이 배움
  • 등급: B-

Rust를 배울 핑계를 찾고 싶었지만, 마땅한 기회를 찾지 못했다.

대신 JavaScript에 대한 폭과 깊이를 넓혔다. 이미 Vue는 알고 있었지만, 올해는 Vue 기반 정적 사이트 생성기인 Gridsome을 배웠다. 이를 이용해 TinyPilot 판매 사이트를 만들고 Is It Keto를 다시 만들었다.

순수 JavaScript를 더 효과적으로 쓰는 법도 배웠다. TinyPilot 웹 앱은 빌드나 컴파일 과정 없이 순수 JavaScript로만 되어 있다. 최신 JavaScript 프레임워크를 쓰지 않음으로써 얼마나 많은 복잡성을 줄일 수 있는지 놀라울 따름이다.

4년 차 목표

TinyPilot 연 매출 60만 달러로 성장시키기

연 2만 달러 목표에서 연 60만 달러 목표로 가는 것이 미친 것처럼 들리겠지만, 나는 충분히 가능하다고 생각한다.

TinyPilot은 2021년 1월에 4만 3천 달러를 벌었으니, 매달 평균 3%씩만 성장하면 연간 60만 달러에 도달할 수 있다.

블로그 글 6편과 책 한 권 출간하기

스스로 일하기 시작한 이래로 언젠가 책을 자비 출판하고 싶다는 막연한 꿈을 꿔왔다. 올해는 마침내 실행에 옮기려 한다.

이 책은 소프트웨어 엔지니어들에게 글쓰기를 개선하는 실용적인 방법을 가르칠 것이다. 가제는 Refactoring English: Effective Writing for Software Developers다.

TinyPilot 운영 자동화하기

내 여자친구는 TinyPilot에서 파트타임으로 일하며 재고 관리와 주문 포장을 맡고 있다. 함께 일하는 건 즐겁지만, 확장이 어렵고 취약한 시스템이다. 둘 중 한 명이라도 며칠 자리를 비우면 금세 엄청난 백로그가 쌓인다.

우리의 프로세스를 충분히 체계화하고 외주화해서 2주 휴가를 떠나도 모든 것이 마비되지 않도록 만들고 싶다.

마무리하며

퇴사 전 나는 스타트업에 관한 책을 끊임없이 읽고 팟캐스트를 들었다. 가장 흥미로웠던 부분은 무한한 가능성에 대한 이야기였다.

자신의 비즈니스를 운영하면 무엇이든 할 수 있다. 한 달의 시간과 1만 달러의 자본이 있으면 비즈니스를 성장시킬 수 있는 방법은 수백만 가지다. 새로운 기능을 추가하거나, 새로운 마케팅 전략을 시도하거나, 새로운 영업 담당자를 고용할 수 있다. 업계에서 아무도 본 적 없는 완전히 새로운 기법을 만들어낼 수도 있다.

직장 생활 내내 나는 항상 정해진 커리어 사다리 위에 있었다. 성장하려면 일상적인 업무와는 거의 관련 없는 자의적 기준을 충족했음을 증명해야 했다. 만약 상사가 새로운 기능을 추가하라고 하면 “아니요, 더 나은 마케팅 전략이 필요하다고 생각하니 대신 그걸 하겠습니다”라고 말할 수 없었다. 하지만 내 비즈니스에서는 그런 말을 항상 한다! (물론 이제 상사와 직원이 모두 나 자신이지만.)

마침내 내 비즈니스 중 하나에서 재정적 성공을 맛보니 수익이 늘었고, 이는 더 많은 가능성을 의미한다. 내가 기대했던 만큼 재미있다. 스트레스가 많지만, 재미있다.

다시 한 번, 스스로를 위해 일할 수 있어 엄청난 행운이라고 느끼며, 앞으로도 영원히 이렇게 일할 수 있기를 바란다.

이 글은 muse-spark-1.2-contributor 모델을 사용해 번역했습니다.

댓글