Today, we are filing the Certificate of Dissolution for Staffjoy. Since announcing our shutdown, I have been busy. I helped our former team transition, and they now all have accepted stable contract work or jobs. I open-sourced ten repos of our code on Github (see below). I published the pitch decks we used to raise $1.7M in funding and our Y Combinator Fellowship application.

Our small business customers transitioned to different scheduling tools, like Homebase. Our large customers deployed Staffjoy on-premise using the open-source code. I returned 90% of our cash to investors last week. We will pay out remaining cash after completing final obligations (like taxes).

I learned a lot through starting Staffjoy. Even though it failed, I am glad that our team had the opportunity to go through this experience together. I’m optimistic about the future, and excited for next steps.

Open-Source Overview

We are leaving our homepage online to help provide teams with open scheduling options. The two Staffjoy apps are now free and open-sourced under MIT licenses.

V1, AKA “Suite” — Auto-scheduling for hundreds of workers

This app focused on automated scheduling, which reduced costs. Early customers emailed us spreadsheets, which we ran through calculations and returned. We went on to build a web app, mobile apps, and new algorithms . We kept each service in a different code repository, which is why there are so many links below. We stopped active development of this product in July 2016. An early architecture overview of the architecture is available here.

autoscheduler: Original auto-scheduling algorithm and microservice. Deprecated in early 2016 in favor of Chomp and Mobius (below). Published for informational purposes — no longer compatible with the suite web app.

suite: Web app and API in Flask. The core repo of V1.

mobius-assignment: Microservice that assigns workers to shifts, subject to compliance

chomp-decomposition: Microservice that converts forecasting data into shifts.

suite-cron: Microservice that triggers the Suite cron jobs

mobile: React Native mobile apps for Android and iOS. These are basic wrappers around the web app, not full implementations.

client_python: Python API client for Suite, used for our smoke testing and microservices.

V2 — Schedule with text messages for small businesses

This app solves a communication problem for small business scheduling. You can learn about our V1 to V2 journey in Tommy’s blog post. V2 provides a simple click-and-drag interface for managers. Workers receive shifts through text messages. We put all microservices in the same “monorepo” for simplicity. An overview of the V2 architecture is available here.

V2: Complete code for V2 in a single repo

Key Learnings

Don’t avoid hard decisions . Whether it’s hiring, firing, or shutting down, be decisive. If you put off decisions, you only frustrate those around you.

. Whether it’s hiring, firing, or shutting down, be decisive. If you put off decisions, you only frustrate those around you. Cofounders should have different skills . One of the issues we had was that our founding team had high overlap in our skills. This made it tough to divide ownership of areas of the business.

. One of the issues we had was that our founding team had high overlap in our skills. This made it tough to divide ownership of areas of the business. We didn’t build a product for ourselves . This made it hard to tell whether we were making something people wanted. To compensate, we had to spend a lot of time doing research and prototyping.

. This made it hard to tell whether we were making something people wanted. To compensate, we had to spend a lot of time doing research and prototyping. A founder should be the first salesperson . I realize now that we hired sales too early. We should have had a founder do sales. This is key for navigating product/market fit. In retrospect, I wish that I had done the first $30K+ in sales before hiring. With our V2 launch, I made myself the salesperson. Viewing leading data rather than lagging data contributed to a swift shutdown decision.

. I realize now that we hired sales too early. We should have had a founder do sales. This is key for navigating product/market fit. In retrospect, I wish that I had done the first $30K+ in sales before hiring. With our V2 launch, I made myself the salesperson. Viewing leading data rather than lagging data contributed to a swift shutdown decision. Control money to make money . In workforce management, I now realize that controlling payroll data is key. It’s tough to quantify the creation of value otherwise.

. In workforce management, I now realize that controlling payroll data is key. It’s tough to quantify the creation of value otherwise. Have air cover . What’s the huge problem that you solve? When our first product pitched “reduce labor costs 10%”, prospects wanted to learn more. I realize that our V2 didn’t solve as urgent of a problem. “Share schedules in less time” fixed something that wasn’t broken.

. What’s the huge problem that you solve? When our first product pitched “reduce labor costs 10%”, prospects wanted to learn more. I realize that our V2 didn’t solve as urgent of a problem. “Share schedules in less time” fixed something that wasn’t broken. If it’s not working, shut it down . We had a firm acquisition offer on the table, and soft offers from others. I didn’t like the terms, and they would have required me to work as a product manager. Shrewd advisors and investors taught me that a soft landing was not necessary at such a young company, and that it was better to move on.

. We had a firm acquisition offer on the table, and soft offers from others. I didn’t like the terms, and they would have required me to work as a product manager. Shrewd advisors and investors taught me that a soft landing was not necessary at such a young company, and that it was better to move on. Great investors provide support when there is bad news . It’s tough to share bad news. I learned that great investors empower leaders during pivotal events. Thanks to Ray Tonsing and Semil Shah for some great advice during difficult times.

. It’s tough to share bad news. I learned that great investors empower leaders during pivotal events. Thanks to Ray Tonsing and Semil Shah for some great advice during difficult times. Good technical talent is hard to find . When in hiring mode, I spent about a third of my time trying to source and close candidates. Hiring a candidate through a recruiter can cost $20K or more.

. When in hiring mode, I spent about a third of my time trying to source and close candidates. Hiring a candidate through a recruiter can cost $20K or more. When sourced and managed well, contractors filled our development needs. I had many friends who wanted to support us, but were not candidates for full-time employment. Selective application of specialized contractors fulfilled most of our development needs.

Future

Our biggest problem while building Staffjoy was getting good technical talent. We shut down with $1M in the bank, in part because we could not spend the money quickly enough.

We solved this problem in part by hiring part-time contractors. One contractor was bootstrapping a startup, and worked one day a week to cover living costs. Another was a public school teacher who wanted to keep coding on the side. Many had day jobs, but wanted to experiment with new technology in their free time.

Recently, I co-founded a new company called Moonlight. Moonlight is a marketplace for software engineers and designers to find part-time work. The company is in its early stages, and we are matching workers to projects by hand right now. (You can apply to work or start a project). Our first projects have been providing support and modification of Staffjoy’s open-source code. We plan to launch a full marketplace app by the end of the summer.

In the past few weeks, I started freelancing to better learn the industry and live the lifestyle. The future of labor is remote, so I am moving to Mexico City for the summer. I am using this time to research remote work and to find time for deep focus while building Moonlight.

I’m seeking connections while in Mexico City — please feel free to email me. If you need help building software, or if you want a part-time software job, check out Moonlight.

This may be the final post on the Staffjoy blog. But, we can still stay in contact through my personal newsletter or Twitter.

Thanks to everybody who worked so hard to build Staffjoy! I look forward to hearing about your future successes.