Building on ATProto



Bluesky’s Atmosphere Protocol has the chance to become the base for a whole generation of applications. But it’s developing in surprising and disappointing ways.

I spent part of last week at the Local First Conference in Berlin. I was not surprised to find that AI coding was on everyone’s minds. Less expected was how pervasive ATProto was.

I’ve been considering trying to build on ATProto for a few months, so this was a great chance to ask a bunch of questions from both people building on it, and the people actually building it (multiple key Bluesky people were there).

I want ATProto to be the answer for me. I want to again live in a world where application developers use public, community driven standards to create interoperable applications with common data standards. I think it can be. But unfortunately I think it’s not on track to be that right now.

In this post I’m going to describe what I have been wanting to build, and how ATProto’s current and proposed designs do and don’t work with that. And I’ll also throw in some comments about what’s been surprising to me.

I’m probably trying to do too much here. But my main goal is to provide feedback on the proposed design, and it’s hard to do so without being clear about what I want to build and why.

Start With Reviews

The smallest version of what I want to build is a suite of applications for recording reviews. In an ideal world, these applications would supplant Yelp, GoodReads, Letterboxd, and a bunch of similar applications for just about anything you might consider reviewing. (Yes, I know there are already people building versions of these on ATProto; I’d want to collaborate with them.)

I want to replace these applications not because of their function, but because of their business models. Neither my wife nor I will use them the way they’re intended, and I think most people are like one or the other of us.

Local First Data

For me, I don’t want these companies to own my data. We have more than a thousand bookmarks in Yelp, but… they’re stuck in Yelp. I can’t do anything else useful with them: I can’t publish them, I can’t share them, I can’t write scripts across them, I can’t version control them. They belong to Yelp, not me. And, frankly, the experience they provide for managing lists of bookmarks kinda sucks.

This is a classic local first use case. I could adopt one tool that was great for writing reviews, another that used the same data but was better at publishing best-of lists for my friends, and another that made it easy to share “best business books” lists on my web site. No single app is going to do all of these, but a shared, public data model allows everyone to have what they want.

I’ve lost the willingness to give big corporations a permanent right to control how I use my own data. (That’s why I’m writing this in plain text and publishing via Hugo.) The apps only get worse over time. And if I’m going to invest that much time in recording my opinions, I want to control its use, not let Yelp do it.

Public and Private

As to my wife, she will just never publish anything online. Never. If I want her to review books or restaurants or recipes, it has to be in a place where I – and maybe the rest of our family – will see it, but no one else.

Personally, I am willing to publish public reviews. And sometimes I specifically want to, like sharing books I found useful as a founder. But doing so is complicated. The information I would record about a restaurant for myself is quite different from what I would want the wider world to know. Yet… most apps don’t allow you to draw this distinction. Reviews are public. Your opinion affects the subject’s reputation, even if you didn’t want it to. (I’m vegetarian and autistic, so a place working for me is not necessarily relevant for other people.)

Fundamentally, most of these applications are built to enable influencers: People who want to build a following online for their reviews. “Oh man, she has the best book recommendations!” “If he likes the restaurant, I know I will too!”

But most of us don’t want to become influencers. If anything, we’ve generally learned the lesson that it sucks to be followed by a bunch of people online. I want to keep my stuff private. I don’t want my opinions to matter to anyone else.

I mean sure, when someone comes to town I want to be able to give them a list of restaurants they should visit and activities they should do. But I want to send it to them, not the rest of the world.

We can split the world into three kinds of people:

  • Those who would only record a review if other people will read it. These are the influencer-wannabes
  • People like me, who would provide a mix of public and private reviews, depending on the circumstance
  • People like my wife who will only ever record reviews if they can be confident it will be private to just their friend group, or even just to themselves

The current crop of applications works fine for the first group. But it leaves the latter two out in the cold.

And I bet anything that those other two groups are much larger.

So, what we need is a system that allows application developers to easily let their users choose how public or private they want to be – entirely public, entirely private, or sharing piecemeal with individual groups.

What does this have to do with ATProto?

Let’s start with what’s great about ATProto: It seems to be the first protocol designed to solve identity at scale, enabling any application to build ATProto identities into their application for authentication, tracking followers and following, and the other related features that basically every application needs.

Its identity system not perfect (I wish it were more human readable, especially). But it seems to be close enough today that nearly every speaker at Local First this year mentioned it. No more does every app developer have to create their own social graph, their own identity and authentication systems, their own means of finding friends.

Unfortunately, at least for now, the rest of the protocol is of limited use for my goals.

Today, ATProto is public-only: It assumes that everything you do will be published online for the whole world to see. That design decision is baked into everything from the storage systems to the structure of the publishing services.

The community is currently designing what they call “permissioned data”. (I think this is a silly name, and it should just be called “private data”, which is better both because “private” is actually a word, and also because it describes user behavior instead of technical implementation, which is a far better naming practice).

Unfortunately, while most of the assumptions driving the design seem reasonable, the resulting design looks very hard to build on. A lot of where I think it goes wrong is captured perfectly in the above linked post:

Before we get into it, the through-line on all of this is that public broadcast data is substantially different from permissioned data.

I fundamentally disagree with this. (I am not the only one.)

Private and public data are basically identical. A restaurant review is a restaurant review whether I am the only one who ever sees it or it gets shouted to the rooftops. A book review I share with my book club is identical to a book review I share with my wife or publish on my web site.

Data I publish to the world is just a special case: The permission is world-read. Just like data I never publish is a special case: It has no readers other than me.

Unfortunately ATProto is already used out in the wild for Bluesky, and it is designed and built as a public-only protocol. It would be hard to change it to support access control, limited distribution, and the other features you need with private data.

So, instead, the community has, from what I can tell, just… designed a completely independent system for private data.

Permissioned Data relies on the existing identity system and lexicons (for defining data types). But adds entirely new data structures, plus new methods for managing and validating that data. (Note that the link above is to one in a series of posts on the design; you can get to all of them from there.)

So, as an app developer, you have to essentially write two applications: One for public data, and one for private. But, your users don’t think of it as two apps. “These are restaurant reviews. All the restaurant reviews should go together.” So your job, as the developer, is to support these two data systems, and two protocols, but never let the user see that they’re totally different.

That gets messy real fast. You’ve got a private post you want to make public? You’re not modifying it – you’re deleting the old one and making a new one in the public subsystem. Does it keep its likes? Its reposts? Links to it? 🤷‍♂️ No idea, but… probably not.

It’s actually worse than that. ATProto’s storage subsystem, the “Personal Data Server”, provides direct access to your data. In other words, you should expect more than one application to want to read and write your data. So now, anyone who is interested in this data has to write two versions, but lie to their users and hide any differences.

Because, again, there aren’t actual differences. The actual data being stored is the same. The way the user thinks about it is the same.

To me this is a sign that the current proposal is flawed.

I don’t know how to fix it. I’m nowhere near close enough to conversation to think I can propose solutions yet. But hopefully I can help people see problems, at least.

One last local-first note

I only had a high-level understanding of ATProto went I went to Local First, so I learned a lot while I was there. One thing I was definitely wrong about was how the PDS worked.

I naively assumed it worked a lot like a git repository. The ATProto community regularly says that I own my own data. I tend to assume that means that I have a copy of it, and that when I make changes, I am operating against my copy then distributing it. This is exactly how git works: I clone a repository, make my changes, then push them back up to the server for distribution. I have a hard time imagining “owning” my data without always having a copy of it.

But no, that’s not at all how ATProto works. The PDS is “your” server, but… it’s actually a server. You do not push data up and pull it down; you speak a protocol to it. You only “own” your data because it and the protocols for accessing it are public, and you can change where it is stored.

It does use cryptography-based data integrity guarantees like git does, which is one more reason I assumed I could easily manage the data like git does. But those guarantees are only used on the server, not in the protocols you use to provide new data.

ATProto meets about half of the design principles in the Local First essay linked above. But it clearly misses on the data being at your fingertips or the network being optional, and also misses out on a lot of implied abilities because you’re always talking to a remote server.

If you want to record a review while you’re offline… best practice is to essentially store those reviews in a temporary area, then push them to the server when you’re back online. In other words, you have to build your own custom storage and sync system if you want offline support. Obviously not impossible, but also obviously not local-first.

If you then cross this with the current design for Permissioned Data, I’ve got a bit of a mess:

  • Custom local storage for offline data
  • Custom sync system for emptying offline data
  • Sync system must use different protocols for public and private data
  • Online app usage must also use separate read and write systems for private and public data, and is likely different from the system used for offline support

As an application developer committed to both local first principles and letting the user choose between public and private, ATProto is working at least as much against me as with me. Am I really better off building on this, versus designing my own system? That question is doubly scary when you recognize that the protocol designer and I are so far apart philosophically.

If I believe public and private data are fundamentally the same, just with different access rights, but the community believes they are and should be different… I am fighting the protocol, storage system, and community every step of the way. I’ve done this before, and it sucks.

Conclusion

I’m still excited about ATProto. And thankfully, the Permissioned Data design is early enough that it can still be improved. And I’m not the only person out there pushing back on the existing design and its goals.

Even if the proposed design goes through, I can build at least somewhat on ATProto, maybe using its identity and lexicon systems.

But I came up in the 90s, when the entire internet was built on standardized protocols that were internet-scale, resilient, maintained by the community and a standards group, and built to empower its users rather than enrich whoever could build the biggest moat. I want that world again.

I think ATProto has the opportunity to be the first new protocol of this type in decades. I hope they go for it, and build something every application developer (but especially me!) wants to build on.

AI Is Like a Crappy Consultant



I decided to finally give vibe coding a try. I’ve barely written any code since I hired developers at Puppet in like 2009. And I’ve been a staunch AI/LLM skeptic. But I figured I should at least be an educated skeptic.

After a false start, and a couple of months of periodic usage, I’ve come to some conclusions about it. The first one is the most important:

You should treat AI like an untrustworthy consultant.

Think of this scenario: You need help with your company’s core product. You have to bring in an outside expert, either just as another body, or more likely, because they have knowledge your team doesn’t. What do you do?

Give them commit access and let them work unsupervised? Of course not.

At the least, you have someone sit by their side, checking every line.

More likely, you don’t even let them touch the keyboard. After all, you want more than the help – you want your team trained up so they don’t need that help next time. The only way you’ll get that is if your team does the work, even if someone else is telling them what to do.

That’s how I consulted at Puppet: I show up, I walk you through all the work, and when I leave you have more than a functioning system; you actually know how to use it. Sure, it was faster and easier to do all the work myself. But no one ever learned anything then.

All the coding I’ve done with AI help is in Swift, using SwiftUI, to build iOS apps. I’ve never worked with anything like any of that – I’ve not used any of the specific tech (other than an iPhone as a user). I’ve never used a UI framework. I’ve never worked in statically typed languages. And I’ve barely ever worked in compiled languages. So, it seemed like a solid use case for getting some fast help.

My first try used Cursor, and let it edit everything.

After a few iterations, I had a bare-bones application. But… I felt like I was pushing around a bag full of bolts. There was definitely stuff in there. But I didn’t even know how to think about the changes I needed, because I didn’t understand enough.

So on the second iteration, I decided I would do all the typing: The AI does not get to touch the keyboard. When I started it was all gibberish, because I didn’t understand anything. But after only a session or two, I have a pretty good sense of how both the language and framework work. That’s about when I realized the second big thing:

AIs are crappy architects.

It kept giving me stupid advice. For instance, every time it encountered an error, it would just catch it and print some logs. Uhhh… that’s bad. It would encounter a small problem, and design a big stupid solution instead of doing a small rearchitecture. Because it can’t think, it couldn’t realize when it hit a design wall that needed rethinking.

After a while, I concluded that it wasn’t very good at the back end code – I have a lot of experience with modeling and data flow, and I kept finding dumb things it did. But I never found those dumb things in the area I have no experience: the UI.

But… then I thought for a bit. And I realized, duh, that’s probably just because I’m not good enough yet to recognize the dumb stuff it’s doing.

Coincidentally, I am now hitting a repetitive wall with Swift’s type checking. I keep having to break a view into smaller and smaller files so that it can compile fast enough. Turns out that’s the AI’s only trick for fixing this problem. But a small amount of research shows there are other options. In particular, I can instrument the compile and see what’s actually taking all the time, and focus on just rewriting that code to be more compiler-friendly. This is the kind of stuff an experienced programmer does without thinking, but a crappy consultant whose entire experience is based on trawling Stack Overflow probably never figures it out.

I did find one area where LLMs absolutely excel, and I’d never want to be without them:

AIs can find your syntax error 100x faster than you can.

They’ve been a useful tool in multiple areas, to my surprise. But this is the one space where they’ve been an honestly huge help: I know I’ve made a mistake somewhere and I just can’t track it down. I can spend ten minutes staring at my files and pulling my hair out, or get an answer back in thirty seconds.

There are whole categories of coding problems that look like this, and LLMs are damn good at nearly all of them. Where did I fail to log correctly? Where am I not handling an error appropriately? If I am updating this method name, which files do I have to change?

I’ve had about five to ten sessions of using Claude – just on the command line, no fancy tools, and no editing allowed. I have about enough experience with Swift and SwiftUI that the terms of the relationship have changed. I feel more like the senior engineer, and it is the junior developer I have working on a short term contract. I can pass it the stupid grunt work (rename this method through the whole system, fill out this boilerplate for a new view, figure out how this new library works).

But I absolutely can’t trust it to make any big decisions. And I have to check all of its work. (Even better, it won’t be offended when I do.)

After a few more sessions, I’ll probably start letting it edit files directly. But only for that kind of large scale, small change work. Once I build the error management framework, it can probably push it through the system (especially since I’ve sprinkled my code with comments when the error management was missing). But I’ll still walk through all the changes to ensure it actually makes sense.

Those Great New Calendar Tools Probably Won't Help You



They’re built for people who hate meetings, not for those who need to be great at them.

Photo courtesy of JEShoots.

There is a new movement around tools for managing your calendar. My favorite is Reclaim, but there are many others. They provide help running meetings, rearranging them, and avoiding them.

It’s great that these tools exist. The calendar is the least improved area in the average office worker’s life in the last few decades. My particular bugaboo is that calendar apps don’t know that you exist as a physical person, so they are perfectly willing to let you schedule two in-person events five minutes and 3000 miles apart. Any other kind of application would see that as a catastrophically brain-dead bug, but somehow the tools we use to arrange our lives don’t.

But… Something always struck me as off about these new tools. I didn’t want to use any of them. I’m a tool junkie, so this is pretty weird. Even Reclaim took me a while to understand and fit into my life. It was obvious these tools weren’t for me, but why not? Who were they for?

They’re for front-line workers: Developers, accountants, SREs. I used to be one of those. I’ve certainly been yelled at enough by them for putting meetings on their calendars.

But I’m not one today. I haven’t been in at least a decade.

My employees at Puppet used to say they hated meetings (I’m sure they still do, they just don’t work for me any more). I would tell them: Replace “meeting” with “collaborating with my team-mates” and say that again, eh?

So yeah, I have a different perspective on meetings.

Not that I think they’re all awesome. But for me — and most other leaders and managers — meetings are how we do our job. The life of a manager is built around communication. Much of it can be unscheduled, and ideally asynchronous. But a lot of it needs to be direct, synchronous, interactive.

That interactive time is much less efficient than, say, email, which means managers have to schedule their time carefully to ensure they get everything done. And of course, employees hate it when a manager shows up at their desk unannounced and asks for time. They want that meeting scheduled, too.

So a manager’s day is built around meetings, and there is a new crop of tools to help with them. What’s not to love?

Well. The tools are built by and for people who hate meetings, and often who aren’t very good at them. Instead, I want tools for people whose job is built around meetings, and who know they must be excellent at them.

Managers do need help. Not nearly enough of them are actually good at the mechanical parts of their jobs, including managing meetings. But these tools are mostly about avoiding or constraining them. They’re for the people asked to join, not for the ones calling them or running them.

I hope these tools do well. I want there to be a mature market of great tools in this space.

But even more so, I hope to see a parallel mature market for tools to help make better meetings. The average employee suffers from all the meetings they have. If managers were better, there would be fewer meetings, and the ones remaining would be better.

That’s a much better world.

Do I Hate Investors?



Of course not. But the fact that people think I do says a lot.

Photo courtesy of Andre Hunter.

Seeking a round of funding is about the most miserable thing I’ve ever done. Truly. Fundraising was less pleasant and more demeaning than anything else I did at Puppet. But Clickety’s final (abandoned) round was uncomfortable in a new way.

Two different investors asked me the same question:

Why are you fundraising if you hate investors?

The question caught me flat-footed. Mostly because it’s such a stupid one.

I don’t love working with real estate agents. I feel like I’m being scammed. Even if I like my own agent, I usually don’t like the other one. I’m uncomfortable the whole time.

But in the US, it’s way harder to buy or sell a house if you don’t use an agent. And even if I went without, the other side of the party probably would hire one. So, I use a real estate agent. And I work with the agent on the other side at the same time. You want the house, you use the system.

And when I buy that house? I ask my banker for a loan. It’s not because I love bankers. It’s because I need help buying the house, and he’s in the business of helping people buy houses. Seems pretty straightforward. It has nothing to do with whether I like bankers, banks, or the mortgage financing system.

The legal system is similar. I actually do like a lot of lawyers. But… god, not all. And the way lawyers often work is stupid. I don’t actually think lawyers designed modern legal documents as a form of job security, but it sure looks like it sometimes.

But when I need to work with complex contracts, I hire a lawyer. It doesn’t matter whether I like lawyers or the US contract system; I have a job that demands legal help, so I go get it.

There’s a huge difference between all of them and venture capitalists, though: Bankers, real estate agents, and lawyers don’t demand that I act like I like and respect their industry. But VCs don’t just want me to start a great company. They want me to like and respect them for trying to make money off the work of me and my team.

Why was I fundraising from VCs?

To paraphrase Willie Sutton (maybe?), because they’re the ones with the money. If I want funding for my company, I need venture capitalists. What does it matter how I feel about the venture industry?

If you’re an entrepreneur today, there is no other source of capital. You can either bootstrap, or raise money from VCs. There are a few firms experimenting at the edges, like Calm, but they have a minuscule amount of money compared to the venture capital industry.

Yes, I could bootstrap. I’ve done it before. But it took four and a half years. I’m not as patient today as I was when I was 29. I also thought it made sense to start this company as a CEO and product manager first, rather than as a programmer. (In retrospect that was a mistake.) That made it impossible to bootstrap. I needed a team.

This question is just offensive, though. Its implication is “you should not raise money from investors unless you are willing to show respect and appreciation for the money they give you”.

Why? The world famously hates bankers and lawyers, yet continues to work with them. Why does this field get to demand our respect, when others don’t? Finance, especially, is just here for the money, and everyone – them included! – knows it. We just have to convince them we’ll help.

VCs are gatekeepers

Investors display their power by demanding your respect. They don’t invest in people who don’t show fealty to their image of themselves.

It’s how banking used to work: Some people got money, and some people didn’t. Fundamentals had nothing to do with it. You had to be in the right network, have the right skin color, the right class. Eventually bankers realized they made less money when they only loaned it to their friends. (And the US government forced them to back off their discrimination a bit.)

Most investors today will tell you to just “play the game”. This is what they mean: Participate in our discriminatory process, and show us proper respect. This is why you usually need a warm introduction to even be allowed to pitch them.

It’s a broken system that leaves broken people in its wake.

But I raised money within it, many times, because that’s where the money is.

Hate the Game, not the Player

No, I don’t hate investors.

But I do hate the world of venture capital. It is fundamentally flawed. It incentivizes behavior I can’t stand, and quashes behavior I find respectable and moral.

For what it’s worth, I also hate the larger finance industry. It’s not like venture is some rare target for my ire. There’s a reason I’ve never considered working in finance. (Well. There are several.)

Venture is an amazing engine for creation and invention. But it mostly invents stuff I wish didn’t exist. And it does not seem to be able to solve the problems that matter most to me or the larger world.

People appear to hear my dislike for their industry and think I hate them, personally. I can’t do much about that. I respect and like some investors. I dislike some others. But I generally have no particular feelings about a given individual.

That being said…

I don’t tend to respect investors.

Being a venture capitalist doesn’t automatically disqualify you from garnering respect. But it also does not automatically deserve it.

In the 1980s, finance was at its peak. People made ungodly amounts of money ruining the lives of thousands and thousands of people. And they were held up as heroes of business. We’ve largely learned that stripping financial assets is maybe not something we should be proud of. These people still get rich, but we have learned not to lionize them.

Is the modern venture investor as heartless and shameless as a PE investor from 40 years ago? Generally, no. (Although there are definitely exceptions.) But like those 80s wolves of Wall Street, VCs have found a money-making edge, and they’re ruthlessly exploiting it.

I’m just not that impressed.

I can see why someone would read that disregard and disrespect as hate. Especially given the power dynamic: I’m asking them for money, yet I’m not showing “proper respect”.

My banker didn’t demand I “play the game” when I applied for a mortgage. He just needed evidence that I could afford the house I was buying, and that it was worth what I was paying.

Being autistic means I’ll never be able to “play the game”. It’s literally constructed so only the in-crowd can join. I can mask for a while. But it takes hundreds of meetings to raise a round. Most people in the meetings look the same, dress the same, went to the same schools, and ask the same questions, yet think they’re special geniuses. And most of them give the same answer (“no”). It becomes hard to hold a facade.

It’s not a choice, or a lack of skill. It’s a hardwired neurological limitation. You might as well ask me to be taller, or have a lower voice.

For better or worse, I’m not sure it matters now. My personal limitations are likely to prevent me from trying to raise money again. But I hit those walls in large part because of how harrowing fundraising is.

Will I do it again?

My experience at Clickety tells me I’m unlikely to run another venture backed startup.

It looks like I’m already a bit of a pariah, which might explain part of why it was so hard to raise. (Not that I don’t deserve some of that reputation.) It’s not about to become easier for me. The older I get, the less I can handle gatekeepers. And I was already crap at tolerating them when I was younger.

My health — both physical and mental — would need to significantly improve. Running a company is stressful enough. Raising money was too much.

I won’t rule it out. I know my future is going to look different from my past. I have a lot of healing to do.

But I still believe in the power of software to make people’s lives better. And venture capital is a fantastic source of acceleration. I hope to continue to work with founders, and intrinsically that means working with investors, too, sometimes.

I also love solving problems. I hope to help others do it. But I won’t rule out trying to solve some problems on my own.

And maybe one of those solutions will be so good they can’t ignore me.

My Monopolies



Most industries are dominated by monopolies. How we enforce antitrust law explains far more than you might think. Photo courtesy of BP Miller.

My first monopoly was AT&T.

I lived on a commune until I was eight. We didn’t have toilets, but we did have phones. We didn’t own them. It was a commune, after all. But they were in our house and we got to use them.

When we reentered “normal” civilization, we still didn’t own our phones. AT&T did. This was 1984, the same year Congress broke them up. I was more confused than injured by their power. Capitalism was new to me. Every single thing in our house was ours, for the first time, except that one. We had to lease it from Ma Bell. Even weirder, the lines in our house were apparently not ours. (I mean. We were renters. But you get the idea.) We had to pay to attach other objects to ports in our own house.

This confounded me. “Some… outside company I’ve never heard of makes rules about what we have in our house?” Yes indeed.

Thankfully, it didn’t last. With five siblings, we needed but could not have paid for those extra phones.

My second monopoly was Microsoft.

They had complete dominance of desktop operating systems and software (the Office suite, plus Outlook/Exchange for email). I went to Reed College, so I exited school as a Mac user, in the middle of their dark days. In hopes of avoiding Windows I tried everything else: BeOS, Linux, Solaris, you name it. No matter how fast I ran, I was often stuck on Windows at work because, well, everyone was.

Microsoft abused its monopoly heavily and freely until being taken to court. Microsoft’s abusive behavior is usually discussed in terms of its effect on the web. But I’ll never forgive them for Outlook. It taught multiple generations of people to do email incorrectly. To this day, the average business user is incapable of having sophisticated discussions over email because Outlook trained them not to.

Ironically, Microsoft itself likely only exists because of Congressional antitrust action against IBM. The government eventually withdrew its case against Big Blue, but not before convincing it of the importance of leaving room for others.

The Paradox of Antitrust Choice

Kids coming up today are lucky. They have so many monopolies to choose from.

Of course, I don’t actually mean “choose”. You pretty much have to use all of them. Google for search, Facebook for social, Amazon for e-commerce and cloud infrastructure, and Apple for hardware and apps worth paying for.

Tech is absolutely rife with monopolies. (And monopolists.) But the industry itself is largely in denial about that. “We’re different!”

The last month has highlighted this. Congress has dragged the richest, most powerful tech founders and CEOs in to testify. More importantly, a Judiciary subcommittee has produced a huge report on concentration in the tech industry.

Responses from the tech industry have not been great. Many have laughed at congress members for their lack of tech prowess. Some focus more on what the tech companies haven’t taken over yet than on what they have. Others have claimed that tech is so different they have to be looked at fundamentally differently.

Tech is not special

I’m going to focus on that last link, from Ben Thompson. He makes a throwaway comment:

consumer harm, which is the de facto standard for antitrust in the United States

The article itself is interesting and informative, as most of Ben’s writing is. But this small line shows that Ben is in a box that limits how he thinks about antitrust. And if he can’t see out, few others are likely to.

I think he should. I think you should. I think everyone should.

Abuse of monopolies affects all of us. It’s not just about tech. We’ve allowed most of our industries to become highly concentrated: Agriculture , pharma, internet access, and many more. Heck, even eyeglasses.

America doesn’t have a tech monopoly problem. We have a plain old monopoly problem.

Ben works hard to explain that the tech monopolies are natural because of what he calls Aggregation Theory. He implies this makes their monopolies more acceptable, even inevitable. He accepts there is abuse, but a very narrow definition of it. Even if his theory is sound (which I am not convinced of), it doesn’t explain the rest of the monopolies that plague us.

Something else does.

The “consumer welfare” standard is not the law

Ben is right that US antitrust law focuses on consumer welfare. That’s pretty much the work of one person: Robert Bork. His book, The Antitrust Paradox, successfully rewrote the history of American antitrust enforcement. Gone were concerns about competitive markets, or any discussions of the downsides of market power. Nope. If prices are low, it’s good. That’s it.

He didn’t get any new laws passed. He just convinced our country to enforce them differently.

Yes, consumer welfare is an important input in the laws themselves. But there’s far more to it, including a healthy focus on market power. Yet Bork managed to gut everything else with one book. (To be fair, there were a lot of rich and powerful people set who became even more so once he won.)

To be clear: The laws themselves have not changed. Only how we enforce them, within the government and the courts.

It is impossible to understand antitrust enforcement in our country without accepting this fact: We have strong antitrust laws and are choosing not to enforce them. They have been gutted by an extreme interpretation, and fifty years later, nearly every industry demonstrates the ruinous consequences.

Revisiting Consumer Welfare

Bork successfully reframed the downsides of market power, with a lot of help from the Chicago School of Law. But there have always been people fighting back.

And they’re finally starting to make headway.

Lena Khan produced the seminal work in this category, Amazon’s Antitrust Paradox. She lays bare how powerful Amazon is, and how useless consumer welfare is as a means of assessing monopoly abuse. Its impact has allowed her to carry the flag even further.

In particular, she was part of the team that ran that Judiciary subcommittee hearing, and produced the related report.

Yes, her argument - and thus at least partly, the argument made by Congress - is that Amazon and its peers have too much power, and they are abusing it to gain even more.

But more importantly, she’s arguing that you cannot have a conversation about market power without also talking about standards other than consumer welfare.

That’s what Ben Thompson (and Ben Evans) and all the other tech commentators need to understand.

The argument is not really whether one of these companies is a monopoly. It’s what standard we should use to assess their behavior.

Do we let Bork decide, and use a light hand and generally tolerate heavy concentration of power?

Or should we follow the original intent of the laws, focusing more on encouraging a competitive landscape and a market free from companies that are too big and too powerful?

The Tech Monopoly Minefield

Every tech founder I know builds their business around the reality of these monopolies. If you’re in e-commerce, your business is defined by the space Amazon leaves you. You don’t necessarily have to be on Amazon, but prepare to be attacked if you’re not. If you’re in social, you have to ensure Facebook doesn’t want your business. If you make apps, you can only make or sell them the way Apple lets you.

I expect most founders and investors don’t even realize how much we’ve given up on doing because of these monopolies (and all the smaller industry heavyweights, like Salesforce). We talk big about agile startups outwitting the big players, but… that only works if they can’t choke off your suppliers, outbid you for engineers, or take hundreds of millions in losses to destroy your company.

What could we build if we didn’t have to fear so many big players?

Conclusion

I’m still haunted by that AT&T phone we didn’t own.

I could not be happier that the government is finally revisiting our antitrust standards. And honestly, I’d rather they make mistakes in regulating the huge players than not regulate them all. We’ve seen what five decades of almost no action results in.

Like everyone, I love fast cheap shipping. But it’s not worth destroying independent retailers over. Honestly, I can’t stand using any of Facebook’s products, but maybe I could if they were stand-alone instead of part of a soulless corporation bent on domination.

I believe in the free market. But none of the markets I’m interested in are. They’re all dominated by players so large, so powerful, that our only choice is to work with or around them.

It’s long past time to get rid of the consumer welfare standard, and bring back to true antitrust enforcement.

Designing Tomorrow’s Privacy



Privacy expectations are changing. How will companies change with them?

Photo courtesy of Tobias Tullius Change is coming to how tech companies handle privacy. Everyone is going to have to adjust, but new startups are caught in the middle: Be as useful as the companies built in the old world, while following the new rules.

Today’s dominant tech companies don’t care much about privacy. Many of their businesses couldn’t exist if people were careful with their data. Facebook only survives if people are willing to share widely and publicly. Google’s ad engines feed on reams of public data.

Privacy will matter far more to new companies. Google has taught companies the cost of sharing their data publicly. Consumers are slowly waking up to how pernicious Facebook’s data practices are. And the laws themselves are changing.

Regulation is already happening at the state level, and internationally. You might not want federal legislation, but state by state rules would strangle growth of new startups.

I know some say government can only create problems, not fix them. I am not so cynical. The creation of the EPA is a great example of government taking industry in hand and making the world better. I am eager for Congress to take privacy as seriously.

The Business of Privacy

But I’m not a legislator. I’m a builder. I’m more interested in understanding how people’s behavior will change, and what that means for the products I’m creating.

For some, the future of privacy is already here. DuckDuckGo is thriving (despite its silly name) on promises of providing great search without all the tracking. The Brave browser is growing for similar reasons.

But how big is this change? Will the average person in the next decade expect to retain privacy, demand companies respect their data? (I originally wrote “computer user” here instead of “person.” With the smartphone, there is no difference.)

Or will privacy concerns continue to be like security concerns have been for the past decade: the domain of the few, the nerds?

This starts as a moral question. Privacy is a fundamental right. We deserve applications whose business model requires it, rather than neglects it.

But it’s also a business question. What kinds of companies thrive in the current privacy framework? Will they thrive in ten years? What about a world with little privacy? Which companies might do better if people cared more about it?

It’s worth elaborating on what I mean by privacy. Google and Facebook have very different definitions, for example. Facebook’s business is built on promising as little privacy as possible, and delivering even less. They share your data with pretty much everyone. Google just uses your data internally. They don’t share your browsing history; they just use it to market ads.

There are far more companies out there like Google than Facebook. Everyone shouting “data is the new oil” is advocating for Google’s business model: Collect a ton of data and profit off of it. It might start as your customers’ data, but if you collect enough it, and tie it all together, it becomes your data.

By policy, these companies (usually) care more about privacy than Facebook does. They rarely sell or share your data. This is better. But privacy isn’t restricting data to only a few trillion-dollar companies. It’s sharing my data with people, not companies.

It’s instructive to look at one company offering less privacy today than in the past: Microsoft. In the old days, all of my documents sat on my computers. My email ran through servers run by corporate. Microsoft could never have gotten to any of them.

Now it’s all “on the cloud.” What does that mean? Microsoft has it. They might not be sharing it with others, but they’re certainly looking at it. Oh, maybe individuals aren’t. But their programs are.

This can be good. Usage data can help vendors improve their software.

But mostly, it’s bad. These promises of better software tend to be hollow. I don’t want better ads. I don’t want your algorithm picking what I see. And I certainly don’t want machine-learning recommendations based on a statistically average user.

People are beginning to see the downsides of handing all of their data to companies. They know that Facebook, Google, Microsoft, Apple, and Amazon have too much power. They are changing their privacy expectations. Not just the nerds, but average people.

But how much? How fast?

The Cloud Conundrum

Privacy in the modern era is a special quandary. The cloud is pretty great. No synchronization. No management. Easy sharing.

No one wants to give that up. Yet today, cloud usually brings severe privacy compromises.

Do I try to build without the cloud, enabling more privacy, and try to compete with what might be less functionality? Or do I build on the tools everyone else uses, where a lack of privacy means there’s little limit to what I do?

Is there a world where you get all of the benefits of centralization, of the cloud, of being online, but don’t have to sacrifice your privacy? Can you be in the cloud, but keep your own data instead of letting a company put it all into one bucket?

I think so. For many cases, I don’t even think it will be that hard. It will just require thinking differently. It will require new answers, maybe slightly harder ones. But not whole new forms of math or science. Something attainable and reasonable today.

As a founder and investor, there still might be big downsides. It might mean you can’t be the next Google. The next Facebook. Or even the next Salesforce.

It might be that a company is worth less if it does not exploit your data.

What if ethical, privacy-conscious companies stay small, and unethical privacy-destroying companies get to keep growing? There is precedent. Prior to the creation of the EPA, an industrial plant would be committing fiscal suicide to spend money reducing pollution.

I worry about this. I’d sure love to see better behaved companies get rewarded with growth. But that’s certainly not the world right now.

Of course, this is partially why we need new regulation. The rules need to change. There was a time when big business just dumped all of its waste in the local rivers. It was cheap. Why should they care if it killed people and ecosystems? Gotta protect shareholder value! But then the rules changed. Nixon (!) created the EPA, and now we take it for granted that industrial players are forced to protect the air and water at least a bit.

The rules will matter less if enough people change. If you stop buying from companies who abuse your data, they’ll stop doing it. If the next Facebook can’t be built off of your data, then someone will need to find a new way - and hopefully a better one! - to meet your needs.

But maybe those businesses won’t be quite as big. Or get there quite as fast.

Are you ok with that? Is that a reasonable trade off?

It is for me. Facebook didn’t make me a billionaire. I’m not at risk of some other data-centric company making me rich. I’m not investing in companies that collect and exploit your data.

But a lot of people are. A lot of our industry is built on the idea that access to this data is good. Many companies could work without it, but choose not to.

Take the smart home, for example. My smart thermostat is in my house with me, right next to my phone. On the same network. But how does my phone configure it? Not by talking directly! No. My phone contacts cloud services, which then contact my thermostat. Why? Partially because it’s easier. But mostly it’s about data.

There’s no chance Google would have bought Nest for $3.2B if that data weren’t available.

Maybe Nest would be a better company if it were more concerned with making better devices instead of extracting our data. But I don’t think Google would be as excited about that other company. Investors like the multiples that all that data gives them. And product people like what the data allows.

Like industrial effluent, this data is toxic. Dangerous. I’m afraid of what’s being done with what leaks out. I’m afraid of all of the bias. I’m afraid of businesses built on my lack of privacy, my lack of boundaries.

My Bet on Privacy

My new company assumes people will care more about privacy than they have. I expect I’m giving up some long-term potential by doing so. There are things we can’t do as a result. Things that our competitors might find easy to do.

But we’ll be able to make promises no one else can. And we’ll find new ways - hopefully better ones - to solve our customers’ most important problems.

Even writing this frightens me a bit.

I’d love to believe that promising privacy would make my company more valuable, make it easier to raise money. I know it will make it easier to hire people.

Some users will choose us specifically because of our privacy model. But how many? And will it be enough?

I know the bet I’m making.

But I also know it’s a risky one.

Don’t Make Board Decks



Why and how my team built board reports instead of PowerPoint decks. Fifty pages, less work than slides, and more valuable. Image courtesy of Drew Beamer.

Board meetings are a critical time of communication and reflection for a company. You have to share enough information that the people in the room can make existential decisions about the business. Yet most CEOs I know share only slides (the “board deck”) with their board.

This is a huge mistake.

People who worked for me at Puppet claimed I hate PowerPoint or Keynote. Nope. I use them myself when presenting on stage in front of a large crowd. But they are a horrible choice for communicating without a talk track, and are incapable of conveying large amounts of information, or anything of detail.

Don’t trust me? Ok, how about Edward Tufte , The Godfather of information design, who partially blamed them for the Columbia space shuttle explosion:

These [NASA] review boards examined what is probably the best evidence available on PP for technical work: hundreds of PP decks from a high-IQ government agency thoroughly practiced in PP. Both review boards concluded that (1) PowerPoint is an inappropriate tool for engineering reports, presentations, documentation and (2) the technical report is superior to PP. Matched up against alternative tools, PowerPoint loses.

What’s that you say? Running your business is easier than shooting rockets into space, so you are fine dumbing down your communication? You’re not in great company.

Amazon forbade PowerPoint in staff meetings, switching to a six page written memo:

Bezos revealed that “narrative structure” is more effective than PowerPoint. According to Bezos, new executives are in for a culture shock in their first Amazon meetings. Instead of reading bullet points on a PowerPoint slide, everyone sits silently for about 30 minutes to read a “six-page memo that’s narratively structured with real sentences, topic sentences, verbs, and nouns.”

Scott McNealy banned it at Sun Microsystems years earlier.

It’s not just that slides are bad.

There’s a much better option right in front of you.

For most of my time running Puppet, we prepared a board memo: A text document written in normal English, with supporting images and charts. It averaged between 35 and 55 pages in length.

It worked great.

It took less time to prepare, and conveyed the state of our company more effectively. I recently shared my last board report, from 2016, with a friend, and he protested, “This is an SEC filing, not a board report!”

I’m not sure if our process is a fit for you, but hopefully it will at least inspire you to find a better solution than slides.

I used to be like you. Well. I never walked through slides in the meeting. I always drove a short (3ish items) agenda. My goal was discussion, not presentation. But I did start out using a deck.

I still cringe a little at the thought. But one of my startup principles is “Innovate only when necessary.” Your business requires a certain amount of breaking new ground. But don’t add risk by doing something unnecessarily new. If I avoided everything I thought was dumb I’d never get anything done.

Everyone else did board decks. My team was used to them. 🤷‍♂️ Sure, we’ll give them a try.

I hated it.

We spent too much time, on the wrong work, and did a poor job in the end.

Wow. The team spent so much time on fonts. And arranging images. What, exactly, is this adding to the board meeting? I understand: An ugly deck makes us look bad. But it seemed like we were spending a third of our time prettifying something instead of actually communicating.

There’s a good reason it was so hard to make them attractive: We had a ton of information to convey. We had to include detailed information about sales, marketing, engineering, and operations. The reader needed to quickly gain a sense of what was working, what was not, and what the vectors were around the company. No amount of picking fonts and rearranging images could deliver that understanding with PowerPoint.

So one quarter we ran an experiment. It was early on, only a year or two after our first round.

I gave each member of my team a choice: You can produce slides, or prose (i.e., plain text, using full sentences and paragraphs). Unsurprisingly, sales and marketing picked slides, and engineering and services picked prose.

What a stark difference.

The prose was done faster, communicated more, and just felt so much better.

Experiment over, prose won, we switched.

But how?

I don’t remember exactly how the process evolved. I do remember where we ended up, six years into using producing what we called board reports.

We did all the writing in Google Docs. We could all work at once and not step on each other’s toes.

I would build a skeleton of the report: Write out each section heading (“Summary”, “OKRs”, “Product”, “Marketing”, “Sales”). Then I’d use a comment to assign each section to the relevant executive. They’d either produce the text themselves, or do so in partnership with their team. Sales, marketing, and finance would include a lot of charts and graphs; product tended to stick to prose with a couple of diagrams or screen shots.

As people filled out the document, I played a few roles.

I spent most of my time assessing when someone was done. I’d read through people’s work and mark something that was insufficient, unclear, or missing with a comment in Google Docs. These are easy to spot even when scrolling through a fifty page document. As people worked, they marked their progress as done or ready to review. A completed section was easy to recognize: All comments and suggestions were resolved.

In this way, I could scan a large document and instantly see where work remained to be done.

My second job was overcoming a shortcoming in Google Docs. Or maybe a lack of training of office workers. Docs has built-in headings, and if you use them, your document is visually consistent, and auto-generates a table of contents. However, most people who worked for me never used the headings. They’d make a headline bold and increase the font size. So I had to go through the entire document and correct the markup. This was probably a quarter of my time.

By the end, I delegated this to a senior copy-editor who we trusted to see the entire document in process.

My last major role, and the only one that resembled the work of a CEO instead of an editor, was to ensure we were telling a single, coherent story. I’d write the summary to set the key messages. Then as I assessed everyone’s work, I pointed out inconsistencies or gaps. Most of this simple editing: Ensure all of the text used the same voice (first person plural, usually). It involved plenty of strategic work, though: tying company goals to team performance, ensuring the whole story was told, and asking everyone to cover the ‘why’, not just what happened.

You can guess this process triggered a few tense side conversations as I dragged information to light.

That, in the end, is the real point of the board report: Make sure we all understand the true state of the business. The writing was more important than the reading. It was on me to ensure we did the real work, rather than just packing it with information without saying anything.

I usually spent about four hours on it. Again, on a fifty five page report. My team each spent 1-3 hours. I did have the odd executive here or there or spend more like four or five hours on their part. We also never invested enough in automated reporting, so I’m confident some parts of the org had to work harder than I’d like to admit to generate their charts.

We targeted completion at least a couple of days before the board meeting. I’d share it with the board as a PDF. A couple of times I tried sharing it as a Google Doc (copied, so they can’t see the edit history), in hopes they would ask questions that could drive the agenda. It never got much engagement so I stopped.

Without a board deck, what did we actually talk about? I mean, without slides driving every minute, don’t you lose track?

No way. I ran a tight ship. But we measured time in half hours and big topics, not individual clicks.

My board meetings were usually three hours long. I’d spend an hour with just the board discussing high level status of the business and team. Then we’d take an hour and a half to cover our agenda, usually with portions of my team in the room. Then we’d spend half an hour at the end again just with the board, discussing what we learned and what we expected to do about it. This is when we also assessed individual executive performance. By the end of my tenure we also had a few minutes set aside for just the board, with me absent.

This process created space for deep conversation in the meetings. Everyone who read the report (which was, well, nearly everyone) was caught up on the business. They were fully prepared to discuss the three topics. And we had no structured flipping of slides to get in the way of discussion.

After the meeting, I edited the report as needed then sent it to the whole company.

Usually this involved removing just a line or two. Sometimes it was larger surgery, and others no changes at all. Mostly I cut out discussion of personnel changes, or removed sentences that required more sensitive, political phrasing than I practiced in these reports.

The end of this cycle ensured everyone involved in the company was up to date on, well, everything. Goals, status, progress, weaknesses, strengths.

I don’t know if everyone should use this process. I know many people were raised by American business to think slides are the best form of communicating. That’s a hard habit to break. I won’t even judge you if you use slides during the meeting to display the agenda and schedule, and maybe key images.

Slides are perfect if you want to tightly control the message, and not leave much room for hard questions.

But if your goal is to do real work in board meetings, skip the deck and write a report.

Entrepreneur, Stage 1: Bootstrapping, Burnout, and Babies



How I got here, how it went, and what happened along the way. I didn’t want to start a company. But I had no choice.

I was a SysAdmin after college, because I tried everything else and got fired from them all. I had seven jobs in two and a half years. I’m very fireable. System administration was just the chair where I happened to be sitting when the music stopped. More a safe, fun place than a source of deep passion.

By that point in my career, I was a little easier to keep around. More importantly, I had become worth the hassle. I did good work because I liked the puzzles.

I had a particular way of working. My boss would say, “You should do this thing, and you should do it this way.” He did not look at how I worked, only the result. That gave me the freedom that made the job worth it. When I told him I had finished he would say, “Great, how did you do it?” and I’d say, “Look, is that a bird?”

I automated everything I could, whether it needed it or not. Automation has a built-in reward mechanism. I would take this well-paying but stultifying job - Type this command 1,000 times - and I would reframe it: How about I tell the computer to type the command 1,000 times? It will work. I’ll watch. Bam! Now I can move on to other fun stuff.

Over time I did so much automation I kind of ran out of work. I was in Nashville at the time, while my wife was getting her PhD, so there were no interesting jobs that needed my skills. Hmm.

I could go to business school, but - sorry! - I don’t have any respect for the MBA. Everything I hear about business school is how valuable the network is. If I want that, I’ll take a cruise. I thought about going to law school, but it is so expensive you have to become a lawyer afterward. I didn’t want to be a lawyer. I just wanted to change my career.

So I was like, I’ll find someone who’s doing what I want to do-building a product to help people like me-and I’ll go and help them.

Oh my god, that was miserable. I lasted five months.

Commuting back and forth between Boston and Nashville did not help. I also had the brilliant idea of commuting seven miles each way by bike. In the winter. In Boston. I gave myself permission not to ride if it was under twenty-seven degrees. Being on the road in Boston is dangerous in a tank. On a bike, in the snow, was a cruel joke.

But mostly I just hated our software. I hated what we were building. At one team meeting, a senior developer said, “What does it matter what our customers think? They’ve already bought the product.” Reaction to that statement - nothing at all - told me I was in the wrong place.

So I left.

I got home. I said, I have a little money saved up, and I’ve tried everything else, and now that I think about it, I guess my dad was kind of an entrepreneur. I mean, he did run his own business for thirty years. Technically. I suppose.

Maybe I should start a company?

I know everyone in the world who is building automation tools for sysadmins, and none of them are going to build a business. “I built this, so, obviously, it’s the best.” But they’re only interested in publishing papers and getting academic tenure. Their software was already perfect, so they saw no reason to listen to anyone’s reasons for not using it.

I thought, what if I build something? And then listen to the people who are using it? (And maybe those who aren’t?) Hmm. Could work.

I quit my job. Well, I quit my job first and said, “Eh, I should probably find a way to eat.” So after trying everything else, I started a company.

We lived on my wife’s generous graduate student stipend of $23,000 a year - the job I quit paid $110,000 a year - and, like I said, I thought I had some money saved up. At some point the IRS sent me a letter that said, “We disagree,” and it turns out when the IRS disagrees with you, well, you know how that goes. And even if you’re right, by the time you prove you’re right, “Ok, I had ten grand, and I spent ten grand on a lawyer proving I have ten grand, and…” Just send them the check.

So I was broke when I started my company.

As a sysadmin, you’re not a developer. People will tell you: In DevOps, everyone’s a developer. Those people are lying to you. Or selling something. Which, you know. So I had to become a developer. I had written some code before Puppet, maybe 5,000 lines total. But by the time I handed it over, it was 130,000 lines of code.

The people I handed it to regretted my learning experience.

I adored it.

I learned a lot. It was, to be frank, super fun. One of the densest learning periods of my life. Programming is the best puzzle. I find it harder to step away from it than anything else I’ve ever done. It’s been two days since I ate, I think my wife has been trying to get my attention for the past twelve hours, I should probably … and then I try to move, my legs don’t work. I’m lightheaded from hunger and my feet are tingly.

Good times.

After about ten months I got my first paying customer.

I often advise other entrepreneurs. Much of what I tell them is to avoid what I did. I only had a vague idea for how to make money. I figured, “I’m confident I can make something valuable. I kind of have a plan, but I know my plan is stupid. If I bring my plan to people and listen to them, that could help make my plan less stupid.”

This is not that bad of a strategy! But it’s not exactly specific.

I didn’t really ask myself: What is my overall business going to look like? How will I get there? I started with services, because I’d been consulting for a while, and I was confident I could make enough money to eat. I know investors are down on services businesses, or anything that doesn’t look like a founder throwing themselves off a cliff with what they hope is a parachute. But you gotta eat. And services are a fantastic way to make money while you’re figuring things out.

I had a lot to figure out.

At the time - 2005 - there were a lot of open source companies out there. When I say a lot, there were four. I thought, “They’re doing well, I will copy one of them at some point later on.” That was not that great of a plan. Two years later Red Hat was the only one left. They’re a software powerhouse today, but they went public during the bubble as a T-shirt and mug company. There’s no copying that.

I did start making money, though. We consulted for three-and-a-half years. “We.” I was the only employee. About three years into the company, I discovered one day that I was incredibly burned out. This was the first of three major burnouts for me at Puppet.

Burnout Strikes

I distinctly remember realizing I was burned out. I was standing next to my wife, at the doctor’s office, looking at an ultrasound. We just learned we’re going to have twins, and I get a sudden flash of insight: My life is unsustainable.

I personally can’t recommend, when you’re in a bootstrapped startup, planning to have a baby. I would work especially hard to avoid having more than one at a time. But that’s what we did.

(Speaking of which: All you people who had your babies serially, you’re lazy and you don’t know what you’re doing. You think you had it hard. We were tested. Y’all are amateurs.)

The technician said, “Oh, you are going to get scanned a lot.” Um. You’re going to have to explain that one. She told us we were having two. We laughed. She must be incompetent. Just because you have twins (she did) doesn’t mean you can recognize them in someone else. While using an ultrasound wand. Which is your job. Scan… scan… BING! The two fetuses clearly popped into view. My wife would have fallen over if she weren’t already lying down. My knees shook. I thought, I can’t do this anymore.

I had been working every hour I could. I counted once: It was about 72 hours in my busiest week. There are people who say, I work 100 hours a week. You might stand there 100 hours a week. I’m skeptical you’re working. Based on what I know about productivity, I hope you’re not.

I couldn’t do it anymore. Since February 2008 or so, coincidentally the same day I found out we were having twins, I haven’t worked more than 40 or 50 hours a week. No evenings and weekends. I might dabble sometimes, but I won’t let it become a pattern.

Don’t worry. I managed to burn myself out two more times without those extra hours. It can still be just as bad. Pack that intensity into fewer hours, and you’re all good.

So. I need help. How?

Getting Help

I had tried to hire people in the past. Both of them were misses.

The first hire was the most notable. In the three months it took to figure out he wouldn’t work out, the best person I could possibly have hired became available and then unavailable. This guy’s biggest impact was ensuring I couldn’t hire the person who would have been most helpful.

There’s one more crazy story about him. In the middle of his interview at my house there was a drive-by shooting next door. He had taken a bathroom break when the shooting happened. They weren’t trying to hurt anybody, just shooting up a car to send a message. One of the bullets ricocheted off the car, then my porch, and broke my front window. He came out of my bathroom, and I said, “Are you ok?” “Yeah, why?” “No reason.”

I needed him to work in my house.

(Yes, I did actually tell him. Eventually.)

When he didn’t pan out, I concluded, I guess I just can’t hire. I’ll do it all myself.

Pro tip: Don’t do that.

Puppet worked in spite of these decisions, not because of them.

Things had changed, quite suddenly. I needed help, and now.

I hired the only people I could think of who might do me a favor: my college roommate and my best friend. Two separate people. Again: Don’t do this. I paid them full salaries.

Years later, I realized, “Wait a minute, if I was paying them full salary, they weren’t really doing me a favor, were they?”

Burned-out people make low-quality decisions. Your brain is gone, and you’re stupid. You work too many hours, you get burned out. You hurt your business doing this kind of thing. Get sleep, eat well, get exercise, step away from work. It’s good for you.

We were making a few hundred grand a year. And by “we” I mean “me.” I’m the only person consulting. I’m getting a little help with the code and stuff.

But now I’m going to hand all the consulting off to my best friend. “Ahh. I can see the light.” And by light, I mean impending twins.

The transition is bright in my memory. He was shadowing me. Μy last gig, his first one. “Hey, funny story, tomorrow this is your job.” We were in San Francisco, my only development gig fueled by Red Bull. I had made a promise to Stanford University, in exchange for some money. If I did not keep that promise by - I think it was - August 31, the Sunday after my gig ended, I had to give the money back. Of course I didn’t have the money anymore. I had to give them the code instead.

I’m at my client’s office during the day, and back in my hotel room at night pounding energy drinks and my keyboard. My kids are due any day, it’s my last flight, my last trip before they are born.

I finish it. I ship it at 1:00 a.m., send Stanford a note with all the details, and go to sleep.

My wife calls me two hours later and says, I don’t think it’s a drill, my water broke.

Well. I’m in San Francisco, and she’s in Nashville. You cannot get from San Francisco to Nashville fast enough to catch a baby. Everyone told me, “Now don’t worry, it’ll take 24 hours.” The kids had other plans.

Seven hours.

I was a father before I landed in Dallas. Cell phone pictures in 2008 were terrible, but they were enough to make me cry in the aisle.

Once again, things not to do, but it mostly worked out. My kids didn’t even notice.

My mother-in-law is actually thankful. She got to be in the delivery room instead. She would have been staring through the window if I had been there. It was great for her, and a great bonding experience for them. It was just, you know, complicated for me. If I’m going to flail at fatherhood, I could at least be present for it. Absent bad father is just a step too far.

That was summer of 2008. We were a little over three-and-a-half years in at Puppet. Lots of change all at once. We added two people and two babies. The business was picking up. I was spending more of my time at events and out in the community than writing code. Mostly this meant that the code wasn’t getting written, rather than that I had delegated it.

Again, my wife was getting her PhD. Nashville is kinda my hometown, and so as a result I, you know, hate it. I always told her I wouldn’t be at her graduation, I would be in the U-Haul honking the horn.

But she was pregnant with twins when she graduated. I was running a bootstrapped startup. We couldn’t afford to go anywhere.

What it all means

The birth of our kids was more than a turning point for our family. It transformed Puppet. It forced me to acknowledge I could not do it alone. I brought in help before they were born, and by the time they turned one I’d raised a funding round and moved to Portland.

In the four-and-a-half years of bootstrapping, we went from zero to around $250k a year in revenue, and from one to three people. In the seven years after funding, we grew to five hundred people and more than seventy million dollars in revenue. More importantly, we had an impact on thousands of people and thousands of companies.

I think founder stories are important. They’re usually educational, and often inspiring.

But they’re myth. They are a specific version of what really happened, refined and presented. Often, the myth so obscures what really happened that the lessons are dangerous rather than helpful.

This is a key story in my founder myth. For better or worse, I’m not afraid of you making catastrophic mistakes by trying to emulate me.

They say you can either be a good example or a horrible warning.

I think this story proves you can be both.

The First Two-Million-Dollar Check



A single drink perfectly captures the weirdness of raising money for the first time. Photo courtesy of Dylan de Jonge

I found myself at a hotel with some friends. I was visiting Portland for a conference. Puppet’s first investment round – and mine! – was closing. The money was being deposited.

Have you seen a David Mamet movie, like The Spanish Prisoner? They’re fantastic. But eerie. Disquieting. They build up a story, brick by brick. Then they yank a few bricks away, exposing the whole story as a lie. Only a hollow truth remains, unrelated to your built up belief. It makes you question everything.

I’m waiting for the closing in this hotel, and I order a Macallan 18 to celebrate. This was back when it was only expensive, not egregious. I lift the glass, and I think:

The money is being deposited into my bank.

I think it’s a real bank.

I mean, they had, like, a website. And websites are pretty hard to… wait a minute.

Who introduced me to the bank?

The investors introduced me. They specifically wanted me to work with this bank. They’re the ones giving me the money. They wouldn’t say they’re giving me the money then give it to someone else. That’s a silly kind of fraud. I just have to trust them.

I sit there. Sipping my whiskey.

I think it’s a real bank.

I think I’m getting $2.25 million.

I had never seen a bank account with that many zeroes - and I still may not at that point! I have no idea what to do.

So I sit there. Savoring that delicious, delicious whiskey.

I didn’t mean to raise money. I was just focused on running the company. We had bootstrapped for almost four and a half years. I figured we were going it alone.

I had talked to people in the past about raising money. It was like Groucho Marx’s joke about clubs: I wouldn’t take money from the investors willing to give it to me. “Wow, I would love them as an investor,” you get nothing. Or, “I would happily give you money and ruin your life.” Hmm. Not really the deal I’m looking for.

One day at an event, an investor tracked me down. He said, I’d like to invest in your company. I said, That doesn’t sound right. A lot of investors say, We should talk. He said: We should talk on Monday. That specificity made all the difference.

He made a very confusing offer: We would like to write a $1.75 million check into a $2 million round. I said, how can you be that bad at math and work in finance. He said, Go find other, rich people that you know to give you the rest of the money. I said, you are, literally, the only rich person I know. He said, I just joined this firm. I am not rich. Then we’re stuck, I said.

I lived in Nashville at the time. There are a bunch of rich people there. But they’re all musicians. They don’t do technology. We most emphatically did not hang out. We weren’t going to fill this round through my network.

Eventually, by connecting me to their network of rich people, I was able to raise $2.25 million. Mostly through luck not skill. I didn’t build a deck. I didn’t run a formal process. I didn’t pitch multiple investors to get competitive term sheets. I pretty much did the exact opposite of the play book. The investor who filled out the round turned me down at first, but I heard his wife persuaded him. I don’t know if she liked me or was cursing him.

Once all of the investors are in place, you wait.

The things you learn in your first round.

Closing takes about thirty days. Five rounds later, I have no idea why. It takes thirty days, and it costs $30,000. One of the terms in the term sheet you get from your investors states that you pay for closing. “We’re going to give you this money, and then you’re going to give some of it to the lawyers.” Investors cap the fees, and the lawyers coincidentally hit that exact number every time.

I honestly don’t know what the lawyers do at closing. The documents are massively long, but they’re pretty much the same. At a late-stage company, I can understand: There is diligence to do (although not by the lawyers), financial data to look through (done by analysts, not lawyers), customers to talk to (by the investors, not the lawyers). At an early stage, though, there just isn’t much information. I don’t know what they do.

But it takes thirty days. And costs thirty grand. Says so on the term sheet.

So you wait.

But when that waiting stopped, boy howdy did things move.

The money did get deposited. It was a real bank after all.

Within a month I’d moved from Nashville to Portland. Within two months, I had my next three employees. And within six months I had a team of ten.

Raising money set us off like a rocket. Bootstrapping for more than four years provided a fantastic foundation for quick growth.

Looking back, I’m glad we raised money. I only wish we had done it earlier.

How TechCrunch is like the Iliad



The drive for social status created the worst, most important part of the Iliad. Now it’s filling up investment announcements. Picture by Mikuláš Prokop

My fancy liberal arts school hazed me, like it does all students: I had to read The Iliad and The Odyssey.

We did more than read. We wrote. We talked. We dissected, for meaning and history. Me, and a dozen other kids I’d just met. It was school, after all.

The Odyssey is great. A proper story. Easy to read, and easy to see why it stuck around.

The Iliad is… not. It’s hard to read. Everyone in it is kind of a jerk. The biggest jerks are the biggest stars. The entire story rotates around a woman - Helen - without giving her agency. Maybe she didn’t want to go home?

For all its difficulty, it’s the more important book. Studying it taught me a lot.

Founders could learn from it even today.

In a hard book to read, one section is by far the hardest, weirdest, and seemingly most pointless. We called it the Parade of Ships, but Wikipedia uses the less glamorous “Catalogue of Ships.” It is exactly what it sounds like: A description of a lot of ships. More than a thousand. You know. Because Helen’s face was so beautiful it launched a thousand ships.

This gives us the millihelen: Enough beauty to launch one ship.

The Catalogue is scintillating:

First the Boeotians, led by Peneleos, Leitus, Arcesilaus, Prothoenor and Clonius; they came from Hyrie and stony Aulis, from Schoenus, Scolus and high-ridged Eteonus; from Thespeia and Graea, and spacious Mycalessus; from the villages of Harma, Eilesium and Erythrae; from Eleon, Hyle, Peteon, Ocalea and Medeon’s stronghold; from Copae, Eutresis, and dove-haunted Thisbe; from Coroneia and grassy Haliartus, Plataea and Glisas, and the great citadel of Thebes; from sacred Onchestus, Poseidon’s bright grove; from vine-rich Arne, Mideia, holy Nisa and coastal Anthedon. They captained fifty ships, each with a hundred and twenty young men.

That’s just the first paragraph! Every time I read this I delight in its nothingness. Now that I don’t have an essay due.

This litany, 2,500 years later, wakes our deepest fears about dusty old books. You’re probably feeling pretty good about skipping it. Yet it drove people to tell this story again and again. Being in it mattered. To your family. To your village. To everyone in Greece. Without the Catalogue of Ships, The Iliad might not survive.

Retelling a great story would always draw a crowd. (Remember: Both of these books were told in oral form long before they were ever written down.) But giving every listener a chance to brag or shrink because of the behavior of one of their ancestors… jackpot!

I was reading a funding announcement recently, and was struck by this:

Investors in the $10.1 million round for the company were led by ArcTern Ventures and joined by new backers Capricorn Investment Group, Incite Ventures. Previous financiers in the company included Wireframe Ventures, Congruent Ventures, Ulu Ventures, Energy Foundry, Hardware Club, 1/0 Capital, and Wells Fargo Strategic Capital […].

That’s a long list. Especially so for a company likely raising only its second round of funding (based on the amount).

Then it hit me:

These investors are listed for the exact same reason the ships are catalogued in The Iliad!

The Greek warriors were fighting for timé, a kind of honor and fame. The stories helped them pass it on to their descendants.

Investors are fighting for the modern equivalent (named, ironically, after a different, also unpleasant Greek story). Now it’s earned in investor announcements on sites like TechCrunch, not ship descriptions in stories told in the town square.

This is more funny than bad. There’s value in being able to track down which investors work with what kinds of companies. More openness is a great trade-off for a little exposure for the investors.

Still. Seeing the parallel was a delightful lift to the morning. I have a science degree but a liberal arts education. I love what the combination has done for my career. It’s nice to have it be a source of humor, too.

The parallel provides a lesson for founders:

The catalogue of ships describes a thousand vessels, and far more people. But most of them were never mentioned again in the story.

Don’t look for those involved in the investment. Look for who helped the company succeed. Who wrote the first check.

© 2026 Luke Kanies. All Rights Reserved. Contact