2 min read

Building something intentionally small

A few weeks ago I started hacking on Lipstick, a Go library that can replicate a local database called a store (initially SQLite) across geographically distant nodes. It uses the concept of a fabric - a durable messaging layer (initially based on NATS) to connect servers across regions. Lipstick allows an app server in North America to share a database with one running in Europe and one in Asia, but have all the data locally available for fast reads, which makes them very very efficient. While working on it, a few ideas started to form around how I could use Lipstick as the basis for something far more interesting.

I find it hard to shake the startup founder brain, even though it’s been months since I gave up that job title. I wrote down a plan for something that could be a very exciting new business, but I’m going to consciously turn away from that line of thinking and instead build something intentionally small. Instead of working towards my next startup or ready a pitch for any investors, I’m going to stick to evening and weekend hacking.

I’m very lucky to have an awesome job at the company that acquired my last startup, and now I’m in a position to help build something cool and useful for large enterprises. I’ll be playing the role of architect, which will be mostly higher-level design work, writing specs, and reviewing other people’s code (even though I’ll try to get my hands dirty as much as possible). That’s why Lipstick and the set of things I plan to build surrounding it are going to be my little slice of code that will not grow to be worked on by a big team, not turn into a funding pitch, and not turn into something that seeks to grow just for the sake of metrics.

I have a ton of respect for the founders who live and breathe their startups and get them past the Series A milestone. It’s extremely hard and it’s something that consumes your entire life. Instead, I want to build something small that stays small. That doesn’t mean it will not be useful or valuable. It doesn't even mean that I won't make money from it. When it’s ready, I hope to see other people, maybe even companies, building on top of Lipstick and its associated tools, I just don’t plan for it to become a business that consumes my entire life.

I want to build something useful that other people choose to use because it solves a problem, makes their work easier, makes their product better, or saves them some money. I don’t want them to use it because I raised funding and tried to advertise interest into existence to hit metrics for another funding round. Those days are behind me. I want to work closely with people who are building interesting things and create something they need, not pull in as much business as possible.

So what’s the grand plan? I’m working on a set of tools that makes it easy to run a globally distributed application using any server, in any location, across cloud providers. I want to help you run your code close to your users so they get the best experience, and I don’t want you to have to pay Cloudflare, Google, or any other bigcorp to use their proprietary edge computing platforms. I’m already at work on the second piece of the puzzle, which I’ll share more about soon. Until then, I’ve released v0.0.2 of Lipstick that I’d love for you to try out (maybe start with the example service since there's no documentation yet?).

I'm no longer on social media so please file an issue on the repo if you have any feedback, or get in touch directly if you're a friend and have my email address.