Mise en place

Table of Contents

There is a term used in cooking, “Mise en place”, a French term that translates to “putting in place”. It is a culinary practice of prepping all ingredients and organizing them before cooking in order to streamline as much of the procedure as possible. It is the culinary-equivalent of Henry Ford’s assembly line, and any chef will tell you this is the ultimate way to handle a high number of orders.

I find this practice to also be helpful for founders/engineers who plan to launch a new product.

1. Documentation (Create a Menu)

I’ve taken a lot of time over the years to write a complete handbook on various subjects such as “Company Values”, “Mission Statement”, “Your First Day”, “Coding Standards”, “Development Tools”, and much more. I’ve compiled all of these subjects into one convienent site that I can take with me anywhere I go. At the time of writing, this handbook spans 77 different page/topics.

This handbook is written using plain markdown and organized using mkdocs. The site functions as a portal for team members and contributors, allowing one to to lookup information and be as self-sufficient as possible.

I like to think of this handbook as a menu. Without a menu, you will not know what to prepare. It plainly outlines a process for operations and what resources are needed to fulfill these processes.

2. Technology Stack (Choose Ingredients)

I choose boring technology that is well-understood (i.e. I can hire developers for) and easy to wrangle with (i.e. I can sleep at night).

This means clearly outlining what technology is permittable and which should be banned from use. In the handbook, these topics are covered by “Approved Technology” and “Banned Technology”.

Laravel/PHP, MySQL, Redis, Alpine.js, TailwindCSS, and maybe some React. That’s about all there is in any new project we create and the stack has been working incredibly well.

For hosting, I use Vultr simply because it’s cheap and I have had no issues with it so far.

3. Automation (Chop Onions)

This is the heart of “mise en place”. A chef chops onions before opening, engineers setup pipelines before launching.

Take the time to solidify how you deploy, rollback, backup, and restore your applications before launching. While trivial to say, this can take some time to figure out correctly.

I use Terraform in combination with GitHub Actions to automatically plan and execute infrastructure changes and application deployments. As expected, all of this is documented in the handbook under “Deployments” for any team member to read.

Automation is also built into the culture of any new venture I start. If it needs to be done twice, it’s worth automating. Every application we build is developed with “queues” that various jobs (or people) can execute on asyncronously. This allows any site operator to handle day-to-day operations without hassle.

For example, for a two-sided marketplace, we might have queues for:

  • Creator Submission - All submissions are placed in a queue for site operators to approve.
  • Chargebacks - All chargebacks are surfaced for review. Automation can be built in to reach out to customers.
  • Payouts - All payout requests are queued for site operators to execute.
  • Taxes - Quarterly reports are automatically queued and processed for site operators to review.

You do not need to have an exhaustive list of automation built by launch, but you should have some process to do so. Any new feature that requires some human interaction should be built with a queue in mind.

4. Conclusion

“It’s like we’re changing the engine of a plane mid-flight!”

Founders and engineers can avoid ever hearing this phrase again by taking the time to plan and prepare for scale before launching.

Take the time to craft your menu, choose your ingredients, and chop onions before launching to create a solid foundation for you, your employees, and your potential investors or buyers.

Author: Thomas Lackemann

Created: 2022-05-20 Fri 08:23