My Roundabout Journey Bootstrapping to $15M in Lifetime Revenue

This year we should pass $15M in lifetime revenue at Facet. That seems pretty crazy. Just a few years ago I was an individual contributor software engineer at Netflix. Last year we did $2.2M in revenue, and this year I think we can do $4M to $5M.

We’re building Facet the old-fashioned way — we are building a business that is self-sustaining and profitable. We’ve never taken any outside funding, and Facet employees and I own 100% of the business. We aren’t trying to build the next Facebook, but this isn’t a “lifestyle business” either. We think we can build a large company without venture capital.

Sidenote: I hate the term “lifestyle business.” It feels so demeaning. Like, you don’t have a real business if you aren’t trying to build a unicorn and IPO.

I started Facet almost eight years ago, so we aren’t a new startup. However, a few months ago, we decided to pivot the company into a new business model that we think will allow us to scale much faster.

The first 8 years

My best friend Damien and I started Facet, originally called Attack Pattern, as a contract software development company while we were both working full-time at Netflix. For the next year we would get together almost every day, early in the morning, or in the evening after work, to build out our website and work on other areas of our startup. We had no idea how to start or run a business, but we were filled with naive optimism and excitement. Eventually, we got lucky when a friend sent us a referral. It was Western Digital, the storage giant.

We didn’t know how to bid a custom software project, so we decided to just pick a huge number that we thought they would be crazy to pay. After all, we really liked our jobs at Netflix. We told them it would cost $450,000. Their response: “OK.”

We were shocked. We felt like we could complete the app in about 3 months, which left us with plenty of runway to find our next customer. So in September 2012, we both quit our jobs and started working full-time on Facet. We both knew that, if we weren’t able to find our second customer in 12 months time, we could always go back to work at some BigCo.

Fortunately, we were able to find another customer, and then another, and then another. The company grew fairly quickly during the first four years. We eventually hired additional full-time developers to help us do the work we were bringing in.

Our Revenue from 2012 to 2018

Since starting Facet, we’ve earned a total of $11.8M. Here’s how our revenue breaks down over the company’s lifetime:

Facet Revenue as of 2018

That’s not what revenue charts are supposed to look like!

Our first four years were really good! We grew almost 4x in our second year, then 50% in years three and four. Hitting $1M in revenue in our second year felt amazing! We had bootstrapped a company from nothing into a real business with real customers. We had a handful of amazing employees and we were quite profitable. I was proud that I, a Senior Software Engineer with no prior business experience, had built a real business.

In 2015, I started splitting my time between Facet and a new startup I was working on: Numetric. Eventually, I hired a CEO to take over the daily operations of Facet and I began to focus completely on Numetric. As startups do, Numetric took over my life and I ended up spending very little time on Facet. At first I thought it was cool that I had a company that I owned that didn’t require any work. This was a mistake. When I stopped working on my company, it stopped growing.

From 2015 to 2018, revenue at Facet was flat or declining. It’s hard for me to say exactly what went wrong during this time because I spent so little time thinking about Facet. I just didn’t have the bandwidth to work on it.

Our Gross Profit from 2012 to 2018

Gross Profit = Revenue - Cost of Goods Sold. If your company sold cookies, your Cost of Goods Sold (COGS) would be the cost of the ingredients, the labor cost to make the cookies, packaging and delivery costs. Facet provides contract software development services, so our COGS are the salaries or subcontractor payments we make to the people that do the work for our customers.

Facet Gross Profit as of 2018

Gross Profit charts are also supposed to go up and to the right…but ours didn’t.

Facet Revenue vs Gross Profit as of 2018

There was a big drop in Gross Profit in 2015 and it has continued to decline since then. We had hired additional devs, but we weren’t finding enough new work to keep our new devs busy.

I never thought I’d have a down-turn in my business. This is one of the hard things about owning a company. You will care deeply about every employee that works at your company. As the business owner, you get paid after everyone else has been paid. When business isn’t going well, you will have to decide whether you are going to keep all your employees and not pay yourself, or lay off some of your employees so you can take a salary.

Ultimately, we had to make significant cuts. We ended up cutting 50% of our staff.

Pivoting Facet

In December 2017, after 3.5 years of building Numetric, I was completely burnt out. We were hitting the right milestones, but I was constantly fighting with my co-founder. Every night I talked to my wife about resigning and taking some time off. Luckily, before I got a chance to resign, the board of directors at Numetric decided it was best if I moved on. They offered me a seat on the board, gave me a nice severance and I was able to take a much needed break.

Seven months later, in September of 2018, I had an idea for a new business model for Facet. Rather than being a company that provides custom software development solutions, Facet would become a platform for hiring ex-FAANGetc engineers as contractors.

The hypothesis I had was that there are a ton of engineers at FAANG and other top software companies that would rather be independent contractors, much like I did before becoming a founder. But the prospect of having to find work, chase down payments and run an independent contracting business is just too overwhelming. If we built a company that took care of all that for them, then devs, PMs and designers would feel much safer about leaving their full-time jobs and becoming independent contractors. We would make money by adding a 20% markup on the rate our contractors charged.

Testing the Idea

It seemed like a good idea, but there were two big unknowns:

  1. Are there really developers, designers and PMs out there that want to transition to full-time contract, but haven’t because they don’t want to deal with sales?
  2. How do I consistently find companies that want to hire senior, ex-FAANGetc contractors?

The developer in me really wanted to just go and start building the product. It took a lot of self control to build a quick and dirty proof of concept first, to see if my new startup idea was any good. So I created a simple contractor sign up form that saved records to AirTable. That would be our membership database. Then I found some off-the-shelf software to do time tracking, billing and payments. It took about two weeks to put together a proof of concept and build a brand new website. To save money I decided to do this all myself. I designed our new logo and branding, built the website and wrote the copy.

The next step was to prove/disprove my main hypothesis: that there are full-timers who would prefer to go contract, but need a service like Facet. I wrote up a blog post announcing our new product/service and started sharing it on LinkedIn. I even sent a bunch of direct messages to devs inviting them to join. It took a lot of time and effort, but I managed to get 6 developers to sign up. It wasn’t much, but it was something!

Then, one day, while browsing Hacker News, someone posted a question: “Ex-FAANG developers, where are you now and why?” I thought people might be interested in my story and the services of Facet, so I made a comment describing my new startup. The response was incredible! My comment only got 35 upvotes, but it drove about 4,000 people to our website and generated 56 sign-ups in one day! Most of the applications were absolutely incredible. We ended up accepting 42 of them!

That day I felt like I had eliminated the biggest unknown: people wanted our service. It was thrilling! There were still many other unknowns, but in just 6 weeks I had built a prototype, launched it, and collected enough data to know whether or not there was a business here. The idea was good, now came the hard part — I needed to execute it well.

Returning to the company I founded

My CEO who had been running Facet for the past four years wasn’t convinced that the new business model would work. I spent a lot of time trying to help him catch the vision, but eventually I realized it wasn’t going to work. I couldn’t have someone else build my startup; it had to be me. That meant I had to let my current CEO go. Over the years I’ve had to let a lot of people go; it’s probably the worst part of the job. I’m still terrible at those conversations. If you’ve had a positive experience while being let go, I’d love to hear how they managed to do it.

For the last two months of 2018 I worked on pivoting the company. I brought on a co-founder, Blake Gibbons, to help me build this new company. We mapped out our long-term vision and goals for the company to make sure we were aligned. Next we created an execution plan and goals for 2019. Here’s what we decided.

How we bootstrap to a $100M company

Sometime in the next five to ten years we’d like to sell the company for $100M to someone who can do a better job operating the business than we can.

To sell the company for $100M, assuming we can get a 10x multiple on our profit, we would need to be earning $10M/year in profit (or more accurately: EBITDA). If we keep our operational costs at 50% of our gross profit, then our gross profit would need to be $20M. With a 20% margin on all the hours that are billed through Facet, we would need to earn $100M in revenue (or more accurately: GMV) in order to generate $20M in gross profit.

Assuming we bill $175/hr on average, we would need to bill about 550,000 hours/year. ($100M / $175/hr = 547,428 hours.) Assuming a contractor works 1,800 hours per year, that works out to be 304 contractors working full-time through Facet. It also equates to billing 10,527 hours on average each week. Whew!

By working backward from our goal sale price, we were able to arrive at a very actionable metric: hours billed per week. We’ve made this our primary KPI for Facet. We like this KPI because the hours worked by our contractors generally map to value provided to our customers. It also maps to income earned by the contractor. The more hours worked through Facet, the more people we are helping find quality work.

This one metric, hours billed, is the primary KPI that all teams at Facet will be focused on. It’s really important that your key metric aligns with your company mission and your business interests of revenue and profitability.

The other assumptions we made in our calculations are additional metrics we will be measuring along the way: average hourly rate billed, revenue, gross margin, and net margin. They are mostly educated guesses at this point, so there are still lots of unknowns.

2019 Goals

After changing the business model for the company, we were able to convert some of our existing customers over to the new business model. We were also able to add several new customers at the end of 2018. In December 2018, we averaged 306 hours billed per week - this is where we are starting from in 2019.

A 10-15% month over month growth rate is a very strong growth rate for a startup that has meaningful revenue. Since we are bootstrapped and we own 100% of the company, we don’t have investors pushing us to grow at all costs. We want strong growth, but we want profitable and sustainable growth. So, we set a goal to grow 8% every month. That works out to be about 160% growth in a single year. We feel like growing by ~2.5x, while producing a good profit, would be an incredible achievement. Here’s what we hope to be able to do in 2019.

Facet 2019 Goal - Hours Billed
Facet 2019 Goal - Revenue

Our other goals for 2019 are:

  1. Build a marketing engine that produces a steady stream of new clients.
  2. Build a marketing engine that produces a steady stream of new contractors.
  3. Build and rollout our MVP.

I’ll go into more detail about the other goals in a future update.

If we can hit our goals for 2019, then this is what our revenue chart will look like at the end of the year:

Facet 2019 Goal - Lifetime Revenue

Much better!

Next Up: Q1 2019 Results

Next week I will be publishing our Q1 (Jan-Mar) results. I’ll go over the different tactics we’ve tried for marketing and lessons we’ve learned so far.

If you’d like to be notified when the next post is up, you can subscribe to the blog below.

I’d also really appreciate your feedback. Was this helpful? Do you have suggestions that would make it more helpful? You can email your comments and feedback to

Subscribe to the Facet blog

If you are interested in modernizing company culture, hiring best practices or just following our journey, you can get the latest blog posts delivered right to your inbox.

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.