In 2017, Jennifer, Betsy, and I were burnt out. Over the past two years, we had grown an engineering team from 4 to 40 and extended a product that served hundreds of smaller lending institutions to be the first production, cloud-hosted software as a service at one of the largest banks in America.

We’d done the near impossible and made lifelong friends while doing it. More importantly, we had launched the careers of a dozen first-time developers. But, as the dust settled, we had to ask ourselves: was it worth it?

It took sacrifice. I gained 30 pounds. My significant other and I broke up. My alcohol use skyrocketed. I lost touch with friends and lacked the spoons to keep those friendships active.

So we took a step back and concluded that while our financial health was important, our physical, mental, and relational health was just as important.

Origins - Q4 2017 - Formation as a Worker Cooperative

In Q4 2017, we formed a three-person worker cooperative. Our goals were to build an environment where we each could:

  • Be financially comfortable without compromising our relationships, health, and happiness.
  • Make space for the things we value outside of work.
  • Do work we enjoy doing.
  • Develop long-term financial security independent of client-work.

Initially, we were a bog-standard technology agency. My experience running Zinc and Cognizance, and working for Leandog and Pillar Technology, made tech consulting an easy way to generate revenue. The structure was similar to many small agencies: three partners; a few subcontractors.

In Q4 2017, we earned almost what it would take for us to be financially comfortable. All of our revenue came from shipping features for clients.

My physical health improved. I dropped 10 pounds. My non-work relationships improved. My relationships with my co-founders were mostly solid, with some cracks that were easily attributable to our stage in the norming, forming, storming, performing cycle and us being crispy from our previous job.

We liked getting paid to do good work on hard problems for our clients. But it was impossible to pursue our goal of long-term financial freedom independent of client-work. We were three people billing as near-to-full-time as possible, after all! Further, the lack of slack in our work schedules meant we didn’t really get much opportunity to work together.

So we began to experiment.

Experiment 0 - Can We Make a Viable Product?

In December, we went on “break” and attempted to launch an open-source, crowd-funding SAAS: Nourish. It didn’t work. We built a proof of concept; but lacked the marketing, design, and business development chops to make it desirable and viable.

Since we could build a proof of concept with a small budget why not sell that to people who do have the product marketing and business development chops? Try to get a cut of the equity pie on the same terms as the seed and angel investors?

Experiment 1 - Q1 2018 - Angel/Seed Startup Launcher

We began by pitching to a few friends and colleagues who had pre-seed startups. We offered a severely restricted rate in exchange for a piece of the equity. No one gave us equity, but we launched both Walden and BlockButler in Q1 2018 for clients who wanted MVPs.

Meanwhile, Jennifer started pitching training and coaching to startups on how to do engineering, hiring, and interviewing and landed our first training client.

But again we saw a high cost to our personal health, happiness, and relationships with one another.

The stakes were too high.

Our clients were relying on us to launch their businesses; most of which were funded via friends and family rounds or their own investment. It was difficult for us to bill at a reasonable rate when the hours necessary to adapt to their learnings rose.

So we cut our rates and fell prey to a common failure mode of good consultants: prioritizing other people’s needs too far above our own.

Our revenues per-hour billed declined precipitously. Yet we learned two things!

1. We find more joy in helping teams solve a particular social or technical challenge than typing code.

2. When we do type code, we’d rather do it for stable nonprofits, and for businesses where we’re getting paid out of revenues, not retirement accounts, or capital investments.

In Q1 2018 we earned just over what we consider enough revenue to be sustainable, 28% of income came from training and coaching, and 62% of it from typing code. Unfortunately, due to how unbalanced our time for dollars rate was; we compromised our goal to leave space for the things we enjoy outside of work. As a result, my physical activity levels were way down and I began gaining weight again. Further, our working relationships suffered.

Something had to change.

Experiment 2 - Q2 2018 - Technical Training and eCourses

This time we pivoted our market towards mature startups, bootstrapped revenue-positive businesses and nonprofits that seek to fill a niche instead of dominating a market.

This was challenging. First, most technology companies want full-time employees or contractors. We don’t want to be full-time anything. Second, bootstrapped, revenue-positive businesses need a pretty significant pain-point in order to justify spending. So we diversified.

Jennifer spearheaded the work of developing a sales and marketing practice for our myriad of coaching and other training offerings. Betsy recorded and launched our first video course, Mastering the Object Oriented Mindset and took full responsibility for our technical coaching clients.

We made our first public offerings of our Interviewer Skills and Real-World Refactoring workshops at RailsConf and the public launch of our Pairing with Privilege workshop at PearConf.

This shifted both Jennifer and Betsy’s time and attention investment towards primarily non-billable activities. In order for us to keep making rent, I focused on typing code for existing clients and following up on leads for new delivery projects.

At the end of Q2 2018, our revenues had slipped to halfway between sustainable and survival levels. 77% of those revenues were from delivery and 23% of them were through training and coaching. Our relationships which had begun sliding in Q1 stabilized. Betsy and Jennifer were working closely together, which was great; but I was off all by myself.

We were excited that our revenues were slowly being decoupled from typing code or otherwise billing dollars for hours, but we still struggled to market and do business development for our own products.

Experiment 3 - Q3 2018 - Will Ship for Revenue Share?

In Q2, one of our long-time technical coaching clients had a problem to solve. One of the products they’ve had for decades felt like it could be a blue ocean in their market niche, but they lacked the funds to invest in integrating it with their main product line.

Over a few months of discussions, we decided to pull the trigger on a deal where we matched their investment dollar for dollar in exchange for a 50% revenue share from the product line we were extending.

Jennifer scaled back her coaching and training marketing and business development efforts and took point on delivering the product with Betsy. The entire project has taken us six months of quarter-time investment, and our partners are demoing it and beginning to transition clients to it in Q1 2019.

At the end of Q3 2018, our revenues had rebounded to slightly below sustainable levels; with 26% of those revenues from the Mastering Object Oriented Programming course, 15% from training and coaching, and 59% from typing code for money. Our relationships were recovering, and my physical and mental health had begun to stabilize.

Experiment 4 - Q4 2018 - Reaching a Broader Market

We stepped into Q4 feeling pretty good. Our non-delivery revenues were trending in the right direction. Our first product launch was a success. There was demand for the services we were offering beyond typing code for money.

But there was another trap we had to navigate. Our customers are predominantly people who already knew us.

This isn’t a bad thing! It’s given us an almost sustainable livelihood in 2018. But we’re not entirely sure people are buying our services because they value the services or because they value us.

This is not a complaint. It’s a beautiful feeling to be so well-liked that someone will carve out a few grand from their training budget to work with you. In fact, I’m bragging a little bit and reveling in the feeling. Mmmmm.

But from a long-term business viability perspective, it kept us up at night. So we invested Q4 in building out a more intentional practice of marketing.

And it failed.

We spent a lot of time on self-promotion instead of meeting people where they are. Yes, we’re super excited about helping people have more delightful pair-programming experiences and we successfully partnered to kickstart a zine series on the topic but we were spending a lot of the trust we’d earned in the community to do so.

We did not like that our marketing efforts were spending trust instead of building it. We went back to the drawing board and hired a marketing professional. Further, we shifted our marketing efforts from convincing people to buy our shit, to sharing what we were thinking, learning and doing on

Jennifer’s work in Q1 and Q2 on marketing and business development for our coaching and training services paid off in Q4, capturing 60% of our revenue. Product and revenue share revenue dipped to 5%, and our typing code for money revenue dropped to 35% of our revenues.

My physical and mental health is mostly recovered to a reasonable point. I’ve reduced my drinking to a drink (or three) one or two days a week. I’m spending my free time doing fun things (like running a very casual gaming guild!) and re-investing in the friendships I’d neglected since 2015.

TL/DR - What We Learned in 2018

In 2018 we learned what kinds of work we didn’t enjoy doing. And perhaps just as importantly what kind of work we enjoy that we may even be able to make a living doing. The TL/DR?

  • We adore helping people solve their most interesting and painful programming and engineering management challenges.
  • Businesses are pretty willing to pay part-time people to solve a pressing need; especially if it’s something that they think is valuable but can’t justify the opportunity cost to take the time to do it internally.
  • Our most effective sales and marketing efforts are giving away free help when we can.
  • Coaching and training for teams and individuals on nuanced topics such as refactoring, testing, pair programming, hiring, interviewing, management etc. is tough to sell.
  • Our favorite way to type code is maintaining software with a demonstrably viable business model. We love gently iterating it towards something its customers find more useful and its stakeholders find more profitable.

From a financial perspective, a picture paints a thousand words. The following graph shows our gross revenue, broken down into net revenues and across revenue sharing, product sales, training and coaching, and typing code for money.

Cohere's 2018 Year in Review financial graph.

We don’t know what 2019 holds, but one of the things we’re planning to do is shift even further toward technology education, training, and coaching. We probably won’t be sharing this much detail too often, but If you’d like to learn a bit more about engineering leadership from us every month you can sign up for our newsletter, or you can follow Jennifer, Betsy, Zee, or Cohere on Twitter.

Older post

Debugging a Race Condition in a Brittle Cypress Test Live on Stream on January 3rd, 2019

A few weeks ago, we asked the and broader programming community what programming problems they would like watch being solved on stream in a real-world...

Newer post

Level up by managing up: an engineer's primer

A few months back, I shared a quick lightning talk at [Fog City Ruby]( on managing up. This article is a...