Permission to Shoot the 3

5 January 2024

An observation about basketball and software engineering teams. I was always the “big man” on basketball teams growing up. Big men usually don’t shoot threes. I excelled at anything within a 6 ft radius of the rim. My senior year my shooting percentage was off the charts partially because I was out half the year due to a broken foot, but also because I only took shots within that 6ft radius. As a big man, you can still score three points, if you can make your free throws. But, it’s not really a…

AI Deterrence

5 May 2023

Much has been written about the potential upsides and downsides of AI, how it may shape our future, and what we should do about it. Most of these takes are at one end of the spectrum or the other. AI will either doom us all or save us all, but a middle ground does exist. The answer is not in regulating or slowing it down. From an American perspective, our rivals will make no such concessions. The solution has two parts: AI deterrence, very much like nuclear deterrence - mutually assured…

Nailing it

20 April 2023

Half the challenge of software engineering in a startup is deciding what should be nailed down now and what definitely shouldn’t be. You’re gonna get multiple at bats at the same code. Most code doesn’t need to be perfect today. Doing this well is where speed comes from. You can do this poorly in two ways and both slow you down, but slightly differently: Nailing too much down Not nailing enough down Nailing too much down causes up front costs to balloon and you add unnecessary overhead to…

Self-hosted Single Sign On

15 May 2022

Single Sign On is widely considered to be an enterprise feature. Most enterprises already have a username and password database and don’t want to manage the complexity of syncing all those user identities and credentials for all the online services they make use of. In the days before the Cloud, we used LDAP and Active Directory to solve these problems, but by todays standards, these protocols are lacking. Facebook, Twitter, Google, Apple and others created a mechanism called OAuth that would…

A Crack in the Metaverse

14 November 2021

Facebook and Microsoft recently declared themselves spokes-companies for Metaverse. These companies have built, acquired, influenced much of what came from the web the past 20 years. We are living in a future that they had a large hand in influencing. I’m not so sure we should assume that this phase will have better results. It seems that they are taking their same approach of: "trust us, we know what we are doing. We are all from Stanford and Harvard and Very Smart (TM)." Just like humans…

Trading our Capabilities for Ever More Complex Computer Models

14 September 2021

A few years ago, I observed that the wealthiest people on the planet all had one thing in common: they all seemed to have a significant amount of control over a very large amount of compute power, or be in close proximity to someone with that control. It's stuck with me ever since. Sometimes I relay it to other people, partly in jest, but lately it's seemed a bit more "real". I recently came across the ideas of Jaron Lanier and that very much triggered some reinforcement bias, but what he had…

A Startup Serial Killer Masquerading as a Software Architect

10 June 2021

A few years back, I joined a startup in the Cloud Security space. I was hired to take ownership over the React app they had built. On my first day, I met the rest of my new co-workers. One of which was responsible for the API that I needed to interact with, let's call him Happy. I had enough problems to deal with in getting their web application ready for prime time, so I didn't focus a ton on the backend. I assumed that it was being competently built. That is until I started having to nag…

Sacrifice your Good Ideas

19 December 2019

“Good ideas" are just that. Good. Not great. Not the ones that hit with such impact that people’s jaw’s drop. Not the special ideas. The ones that are just good enough to warrant speaking life into them. Don’t be afraid to sacrifice the good ideas. The good ideas, while sometimes clever and useful, aren’t what matter. The value they deliver when implemented is linear, not exponential. There is far more value in being willing to sacrifice these ideas than stubbornly refusing and forging ahead…

KC Startups, Revisited

21 July 2019

I've been thinking about how to build a billion dollar technology company in Kansas City for awhile now. This post represents a slow hunch that's been gathering steam in my mind for the last few years. A little over 4 years ago, I published a post called Starting up in KC with some tactical advice and lessons I'd learned up to that point. Then a few years later I wrote What Kansas City Lacks for Startups, where my premise is we lack the density of experience required to truly take a company from…

API First

14 June 2018

In the last few years I've learned a lot about how a business can continue iterating on a product built upon a software stack that is starting to show a bit of age. One of the lessons I've learned is that products that target businesses should be built API-first, particularly B2B SaaS. What this means is that you start by building the API for the product, the API isn't an after-thought that gets added on when a customer wants to integrate. What is an API? API stands for Application Programming…

Implementing Timezones

21 May 2018

I sometimes find myself giving technical advice on how to handle different issues to founders or engineers at their companies. One thing that usually comes up is timezones, so I'm writing down my advice here. I've implemented timezones a number of times in my career as an engineer. A calendar app whose concept of a timezone was only the offset (-5) from UTC was one of my first implementations. Each time I've implemented timezones, I've done it better and my understanding has improved. First…

Creating a Better Middleman

6 February 2018

They said the Internet promised a new way. That software was eating the world. That travel agents, brokers, and middlemen were a thing of the past. But, look around us. That’s not what we’ve achieved. Nor are we even close to achieving it. We’ve simply created a better middleman. While it might have brought less friction, it also has a downside, these middlemen are based on algorithms we cannot read and cannot hope to fully understand. Maybe what we’ve achieved is removing the humanity from our…