Cottage

Task-based freelancing for software engineers

Why Cottage?

What would it be like to wake up whenever you want, perform any task you want, and get paid for the results of your labor instead of your time? This is the central idea behind Cottage. In this article, I'll be explaining how we discovered this problem and how we plan to solve it.

Discovering the Problem

In February of 2021, I quit my stable job teaching software development at a coding bootcamp to pursue greater creative freedom and autonomy. My plan was to start a freelancing business so that I could work when I want, how I want, and where I want while also teaching on the side.

As it turns out, freelancing was more demanding than my previous jobs and I was getting paid even less. Something was terribly wrong. How had I lost more autonomy and financial freedom by starting a freelancing business?

Freelancing is an art. Not only did I need to be a proficient software engineer, I needed to be a great negotiator and communicator. While these are fantastic skills to develop, I was frustrated that I couldn't focus purely on software engineering and earn money that was proportional to the value that I was adding to businesses. My clients hired me part-time, but eventually developed expectations that I would come on full-time. I didn't manage these expectations very well and should have been more firm when expressing my desire for flexibility.

This was the failure that gave me the inspiration for Cottage.

Identifying Specific Pain Points

There are many businesses that have more tasks than they have engineers to perform those tasks. Why couldn't I perform as many or as little of those tasks as I wanted while working on a schedule that I chose?

I didn't want to attend Zoom meetings, company all-hands, or happy hours to schmooze with upper management. In my mind, these activities were a bottleneck in what could be a system of liberating work/life balance. The current system of social climbing within corporations also seems to be rife with unconscious bias, which contributes to the homogenous makeup of the tech industry.

Why can't people get paid for their capabilities or potential to learn rather than their ability to relate to people in power?

Let's solve this problem.

Designing a Solution

First thing's first: How do we connect engineers who have spare time with companies that have small tasks?

Experimenting with an Alpha Launch

We approached this problem with our alpha launch. The biggest obstacle to this type of arrangement was the time required to onboard an engineer onto a project. There are permissions to grant in dependent resources like AWS/GCP/Azure, adding a freelancer as a contributor in Github, and then hoping that they don't run away with intellectual property.

Strategics Partnerships

This is where we have been fortunate to find strategic partners like Strong Network. Strong Network provides a zero-trust platform for working on software engineering and data science projects in cloud-hosted development environments.

Aligning with a Paradigm Shift

Cloud-hosted development environments allow us to drastically reduce the time that freelancers spend context-switching into a project by having permissions pre-configured and dependencies installed. To get started on a task, freelancers just need to click a link to a cloud-hosted development environment and start coding. It's as easy as that.

We believe this paradigm shift towards cloud-hosted development environments will enable an ephemeral relationship between freelancers and clients.

Our Value Proposition

Most clients have tasks that have been sitting in their backlog forever. Why not just put them on our platform and assign them a price? We find freelancers that are willing to complete such tasks for a given price.

Implementing a Solution

Great, so the solution design is sound. Let's build out a system that accomplishes this goal.

Creating a virtuous cycle of freelancers and clients

Cottage is a two sided market between freelancers and clients, just like Uber is a two sided market between drivers and riders.

In Uber's business model, adding more drivers to the platform reduces pickup times by increasing the geographic coverage of pickup zones. This results in faster pickups, which in turn increases demand for the services of the drivers, which in turn encourages more drivers to join the platform. It also results in lower downtime for drivers, which allows Uber to lower their prices for riders, which in turn encourages even more demand.

This system of self-reinforcing platform growth has been dubbed “the virtuous cycle” and is best illustrated in the famous ad-hoc diagram created by David Sacks.

Virtuous Cycle of Uber

If we take this idea and apply it to the business of connecting freelancers and clients, we come up with the slightly modified diagram below that represents the core business of Cottage. Here, freelancers take the place of drivers and clients take the place of riders.

Virtuous Cycle of Cottage

Platforms like Upwork benefit from this type of virtuous cycle, but we believe they are missing one key ingredient: ephemeral relationships between freelancers and clients.

When booking a trip through Uber, a rider does not interview a driver before agreeing to engage in a transaction. Uber engages in strict quality control with respect to both riders and drivers, thus facilitating trust. A rider does not need to call a centralized dispatch service to request a ride either; it all happens with the click of a button in an app.

When submitting a task through Cottage, a client will not interview a freelancer before engaging in a transaction. Cottage will engage in strict quality control of both clients and freelancers to facilitate trust. Clients will also not need to worry about onboarding freelancers into a project since projects will be set up only once as a cloud-hosted development environment and made accessible to multiple freelancers. With a click of a button, a freelancer will be able to perform a task for a client without having to set up a project. When the freelancer is finished, they will be automatically offboarded from the project. From the perspective of the client, tasks will be completed without any of the overhead of managing freelancers.

We believe that this system will accelerate the development of digital businesses while also providing unprecedented freedom for knowledge workers.

What will you do with this newfound flexibility?

Are you a software engineer or data scientist who is interested in freelancing in your spare time?

Join us.

Are you a startup looking to augment your existing engineering team?

Work with us.

Initial Idea

Before Cottage even had a name, we had an initial idea to create a low/no-code editor to enable developers and businesses to build UIs quickly. However, it wasn't just going to be a standalone application. We thought that if we built a popular framework that enabled developers to build quickly that we could crank out tons of features for businesses and eventually offload that to other developers working for us.

The Hurdles

We soon came to realize that this concept was going to limit who we could attract to our platform. Anyone who already had a web app was eliminated right off the bat as they would have to rewrite their app on our framework if they wanted to use it. Additionally, we would have to convince developers why they should build using our framework instead of other popular technologies.

The First Pivot

The goal: don't eliminate existing businesses / applications from being customers

We dropped the idea of the no-code editor and decided that we should instead build a platform to let developers pick up small chunks of work when they had free time and wanted to earn some quick cash.

Enter Cottage

When we were discussing how this idea would work, we equated it to the Cottage industries where people would produce goods in their homes. This landed us with the perfect name for our business: Cottage.

Attracting Users

Early on, we sparked a lot of developer interest with the appeal of just picking up small features to work on for a couple hours at a time and getting paid for it. However, we were still left with a big question: how were we going to get businesses to buy in to this model?

Protecting Business IP

In an effort to gain trust, we decided that we needed a way for developers to work on the software for a business without running the code on their local machine. We knew GitHub Codespaces was in the works, but it still did not quite solve the permission restrictions we hoped to impose. After some research for other alternative solutions we came across Gitpod, which looked like the solution to our problem.

Following Along

This is a very high level summary of our journey to this point. Check out our other post, Looking for Lightning in a Bottle, if you would like to read more about how we are validating this approach.

Are you a software engineer who is interested in freelancing in your spare time?

Join us.

Are you a startup looking to augment your existing engineering team?

Work with us.

The Vision

What would it be like to wake up whenever you want, perform any task you want, and get paid for the results of your labor instead of your time?

With the trend toward remote work and ever more people flocking to the field of software engineering, we think it's the perfect time to build this type of system.

The goal of Cottage is to provide autonomy to freelancers while also allowing startups to augment the capabilities of their existing engineering teams.

Below is an account of our first attempt at facilitating this type of interaction between freelancers and startups.

Our First Attempt

We worked with an existing startup named Tabella to test the on-demand aspect of our platform. We also built a startup named Piggybank to test the ability of Cottage to protect the intellectual property of client startups and simplify freelancer onboarding.

Tabella

  • Tabella is a platform for Catholic communities to connect with one another: https://jointabella.com/
  • Tabella required assistance with a bug in their mobile application
  • Cottage contracted a developer within 24 hours
  • Engagement lasted 5 days while freelancer worked in his spare time
  • Result was consulting advice that helped Tabella make progress towards a bug fix
  • Amount paid to freelancer: $375 for 6 hours of work. We're still working on the ability to accurately price tasks, thus we're defaulting to hourly payments.

What we learned:

  • Cottage needs to onboard many more freelancers if we want to offer an “on demand” service
  • Cottage also needs to reduce the time required to for a freelancer to obtain the correct permissions for a given project
  • Stripe makes it simple to bill startups and pay freelancers without writing any code

Piggybank

Piggybank is a financial SaaS app created by Cottage for the purpose of testing our platform: https://piggybank.dev – Piggybank needed to implement a “contact us” form as well as user authentication for the web application – Purpose of the engagement was testing Gitpod (https://www.gitpod.io/) as a way to protect the IP of client startups and simplify freelancer onboarding – Engagement lasted 3 days and required dedicated time from a freelancer so that Cottage could observe development – Result was the discovery of performance bottlenecks in Gitpod that could lead to churn among freelancers. We also discovered that we will need to self-host Gitpod if we want to protect the IP of client startups. – Amount paid to freelancer: $810 for 18 hours of work. We're still working on the ability to accurately price tasks, thus we're defaulting to hourly payments.

What we learned:

  • Gitpod has unresolved performance issues that could lead to high turnover among freelancers, but could simplify freelancer onboarding
  • We will need to self-host Gitpod if we want to protect the IP of client startups. Gitpod doesn't offer this functionality and has not responded to requests to implement this.

Next steps for Cottage:

  • Onboard additional freelancers via LinkedIn job post (173 applicants at time of writing)
  • Find an alternative to Gitpod
  • Create standard operating procedure for helping a freelancer get started on a task

Are you a software engineer who is interested in freelancing in your spare time?

Join us.

Are you a startup looking to augment your existing engineering team?

Work with us.