Year: 2020

The simple pleasure of a home server

Sometimes I want to write a bit of code to automate a task. This can be anything, but a common pattern is a script that periodically wakes up, checks the state of the world, and performs an action. Think of Zapier, IFTTT, or Airtable Automations, but custom code.

The first time I encountered this problem, I solved it the way I would solve it professionally. I used AWS Lambda and the rest of the AWS ecosystem.

Continue reading →
Posted by andrew, 0 comments

equity.cool: the no-bullshit startup equity calculator

I’m pleased to announce the launch of equity.cool: the no-bullshit startup equity calculator.

This was inspired by conversations with friends who work at startups yet didn’t understand what their stock options were worth. Startups will intentionally try to obfuscate this number and advertise a rose-tinted picture of potential valuation.

I’ve worked at three startups at three different stages (Cloudera / Series D, Scale / Series B, Airtable / Series C), and have always maintained a personal spreadsheet for calculating the value of my option package. This has helped me compare job offers from startups at different stages, and also as a way of tracking the value of my equity over time. Although I’ve found it useful, when I’ve shared it with others it’s had limited success. It’s complicated to fill out, and there’s not much explanation for how to do so.

This motivated me to write equity.cool: a simple, no-bullshit startup equity calculator. It boils the required information down to the bare minimum, and spits out a single, big number: the total value of your options package.

I hope that the calculator is useful to others out there who are considering (or are currently!) working at a startup. You can read more about the calculator and how it works in the equity.cool FAQ, and of course, go to equity.cool and try it out!

Posted by andrew, 0 comments

TypeScript in the Wild

When I previously used JavaScript, the grand debate was which JS utility library to use: jQuery vs. mootools vs. YUI vs. dojo. While I’m glad this tradition of grand debates has continued (Angular vs. React vs. Vue), the community has also quickly coalesced around the biggest improvement to JavaScript in the last decade: TypeScript.

In this post, I want to talk about my experience migrating an existing JavaScript codebase to TypeScript. But first, a quick digression on why I love TypeScript, and how TypeScript is the culmination of a number of great ideas in PL.

Continue reading →
Posted by andrew in Software, 0 comments

On the importance of software testing

As the famous programmer Jean-Paul Sartre once put it, hell is other people’s code. This is what echoes through your head when you’re jolted awake at 2AM by PagerDuty, blaring about a Sev0 production outage. You trawl through the changelog to find the offending commit: a missing null check that results in an exception. You start rolling back the bad deploy, but as you sit there, illuminated by the glow of your laptop screen, you curse to yourself: how did a simple error like this make it all the way to production?

Continue reading →

Posted by andrew in Software, 0 comments