I read this and then had trouble finding it for a year, I'm writing about it so I have a way to find it... The proposal here is so obviously correct that it's shocking it doesn't come up more often when people discuss the NBA Draft... basically the idea is that you assign a high […]
Kevin Burke
https://kev.inburke.com/ · 110 posts · history since 2012 · active
12 Feb
30 Oct 2025
*This post originally appeared on Shyp's engineering blog in July 2015. It has since been deleted. It is reproduced as closely as possible here. The original is accessible on the Wayback Machine. Eight months ago when I ran our core API tests at Shyp, it took 100 seconds from starting the test to seeing output […]
29 Oct 2025
Most browsers have the ability to launch different browser profiles. Each profile can come with a different theme and a different set of website logins (cookies, application state, etc). This can be helpful if you want to segregate browsing behavior. For example, I have different browser profiles set up for my personal email, my "consulting" […]
25 May 2025
One of the first ever Redis libraries for Go was hosted at github.com/garyburd/redigo. It has been deprecated for some time and has now been finally removed altogether from Github. If you still have a dependency on this project, this means that will be broken now. github.com/gomodule/redigo should be a drop-in replacement for github.com/garyburd/redigo. If you […]
28 Feb 2025
Source: CSPAN Transcript was generated using OpenAI Whisper and then cleaned up using ChatGPT o1 pro. All errors are mine. Volodymyr Zelensky Do you, and now I’m talking with my friends in Poland, and they are worried that you align yourself too much with Putin. What’s your message for them? Donald Trump Well, if I […]
7 Feb 2025
Most PG&E ratepayers don't understand how much higher the rates they pay are than what it actually costs PG&E to generate and transmit the electricity to their house. When I looked into this recently I was shocked. The average PG&E electricity charge now starts at 40 cents per kilowatt hour and goes up from there. […]
23 Aug 2022
Every day we learn more about the importance of good air quality. Here are some tips to help you improve air quality inside your house. How to Measure First, you are going to want to be able to measure air quality in your house. There are a few different things you want to measure: PM2.5 […]
6 Jun 2022
The San Francisco Chronicle charges for subscriptions. How much does a subscription cost? This is an impossible question to answer, even for current subscribers. The Chronicle advertises several different prices for new subscribers. The only public information the Chronicle shares about its permanent subscription rates raises more questions than answers. No one at the Chronicle […]
16 May 2022
I have a sweet tooth and one candy I really enjoy is Strawberry Sour Punch. Unfortunately after twenty years of having the same formula it seems that the company has decided to change the formula for Sour Punch. The new candy has more of a cherry flavor and isn't as sour. It does not taste […]
2 May 2022
On Sunday morning at 1am I had a lot of stomach pain. I am a One Medical customer, had heard that they offered urgent care, and so I searched on their website for information. Unfortunately their urgent care option does not show up in the list of care options on their website: I concluded that […]
10 Jan 2022
Update: Everything in this article about Davis is also currently true in the following cities: Redondo Beach Beverly Hills Manhattan Beach South Pasadena Santa Monica Anaheim Oxnard To get a full list, visit the HCD website, click "Compliance Report," and filter for "Compliance Status" => "OUT". I would also guess that San Francisco will make […]
6 Dec 2021
I fail phone screens pretty often, which limits my job prospects and is embarrassing for someone with ten years of industry experience, a pretty extensive Github account and a publicly available list of difference-making projects. 1 In theory a phone screen is supposed to evaluate whether a) this person would be good at the job […]
11 Oct 2021
Many companies break up their internal environments into different realms. A typical setup might look like: The prod realm is where production servers live. The dev or stage realm is a live testing environment, where code gets deployed before it goes into production, or long-running features are tested. The local realm is for code that's […]
1 Oct 2021
Here are some of the different strategies you can use to write tests that read or write data from a database, and the benefits and drawbacks of each. I'm usually writing Go code, so the examples here are for Go, but the notes should generalize to any language that runs tests against Postgres, MySQL, or […]
4 Aug 2021
When you sign up for Datadog, you are immediately asked to choose whether you want to have your data stored in US1, US3, or Europe. This is an odd UI decision because Datadog provides no other information about US1 and US3, for example, where they are located or how old the infrastructure is in each […]
21 Jul 2021
Allen Weisselberg, the chief financial officer of the Trump Organization, recently got indicted by the New York DA for fifteen counts of tax fraud. The charges say they said he didn't report benefits as taxes. If your company pays you a $100,000 per year cash salary, you will owe a chunk of that to the […]
5 Jun 2021
We live on a street that's about 29 feet wide. There are parked cars on either side that take up about 7 feet each, which leaves 15 feet in the middle of the street for through traffic. There are hundreds or thousands of streets like this in San Francisco; here's a screenshot of one at […]
29 Mar 2021
When you get an offer from a tech company it will usually be some combination of cash and stock. Small companies give out stock because it's hard to compete, cash-wise, with bigger companies, and a grant of stock or options offers the chance at a large payday down the road. Valuing the cash part of […]
29 Jan 2021
It is difficult for children, especially young children, to learn over Zoom. It is more difficult to teach critical skills like learning to read and write over Zoom. As Heather Knight and others have noted, keeping children isolated has severe impacts on their mental health. It is the Mayor's top priority to get children back […]
19 Jan 2021
In very rare cases, the Pfizer and Moderna vaccines will cause the person being vaccinated to have an allergic reaction. When I say very rare, I mean it; the chances are a few in a million, or about the same of picking a specific resident of Newark, New Jersey at random out of the phone […]
15 Sept 2020
Edit: If you are in a desperate situation, or getting rejected multiple days, please call your State Assemblymember. Staffers in the Legislature have access to additional resources and can help you get the assistance you need from EDD. The California EDD Paid Family Leave phone tree is like a choose your own adventure book, where […]
9 Sept 2020
Sometimes people choose to work for one company over another for reasons related to the work environment, for example what the company does, and whether the other employees create a place that's pleasant to work at. But a major factor is compensation. If Company A and Company B are largely comparable, but Company A offers […]
4 Sept 2020
I finally got my home network in a place where I am happy with it. I wanted to share my setup and what I learned about it. There has never been a better time to set up a great home network; there are several new tools that have made this easier and better than in […]
23 Aug 2020
Generally if you name a food or drink, people know whether they like it or not. It is rare for someone to drink a merlot, or try pizza from a new restaurant — toasted bread, melted cheese, tomato sauce and toppings - and be wildly surprised at their reaction to the taste. I can't quite […]
9 May 2020
Let's revisit one of the most humiliating (and expensive) moments of my life. It happened a decade ago and even today I cringe and seethe when I think about it. I was one of 25 finalists for a $20,000 scholarship in my junior year of college. The last step was an hour long interview with […]
1 Jul 2019
For a company trying to sell and explain a product, a lot of this information was amazingly difficult to find so I wrote this. For the rest of this we'll assume you're cooking a steak but the same advice applies to most other meats/cuts. Why Do You Want A Torch to Sear Meat To get […]
12 Mar 2019
The phone number for the SFMTA Temporary Sign Office is very difficult to find. The SFMTA Temporary Sign web page directs you to 311. 311 does not know the right procedures for the Temporary Sign Office. The email address on the website is also slow to get back to requests. The Temporary Sign department address […]
Say you have a Aurora RDS PostgreSQL database that you want to use as the source database for Amazon Database Manager Service. The documentation is unclear on this point so here you go: you can't use an Aurora RDS PostgreSQL database as the source database because Aurora doesn't support the concept of replication slots, which […]
17 Feb 2019
Three years ago I quit my job and started consulting full time. It's worked out really well. I get to spend more time doing things I like to do and I've been able to deliver great products for clients. I wanted to go over some tips for starting a successful consulting business. Charge more - […]
7 Oct 2018
Belmont is evaluating pedestrian and bike improvements to Ralston Avenue. These improvements build on the Pedestrian and Bicycle Master Plan. There is pretty good cycle access all the way from the eastern tip of Foster City to the Belmont Caltrain station. However, the cycling access from the Caltrain station to Safeway, NDNU or Carlmont Village […]
25 Sept 2018
Caltrain is spending $2 billion to electrify the entire railway from SF to Tamien, and buy new train cars. This is expensive and painful - weekend headways are 90 minutes, and the 4th and King/22nd St. stations won't get trains on Saturdays and Sundays for about six months. Why is Caltrain doing this? There are […]
13 Sept 2018
Previously I wrote about pedestrian/bike improvements for the east side of 101. There's now a proposal for the east side exit of 101, shown in this slide at a recent Caltrain board meeting. It's not ideal to have pedestrians and cyclists on the north side of East Grand for two reasons: ped/bike crossings will hold […]
11 Sept 2018
It's Rail Safety Month and last month at the Caltrain CAC we got a presentation on suicides on the Caltrain line. I've added some key papers that study railway suicide to this Github repository. At a high level, they show: There are several factors that predict suicide incidence. There are several factors that have been […]
2 Sept 2018
For the past month or so I've been commuting to a biotech office east of 101 in South San Francisco. I've gotten a little depressed about how car-centric the infrastructure is and I wanted to share some small wins that could improve the bike and pedestrian experience. Why bother? Well, the roads get really full […]
20 Jul 2018
Last week I wrote about how AWS ALB's do not validate TLS certificates from internal services. Colm MacCárthaigh, the lead engineer for Amazon ELB, writes: I’m the main author of Amazon s2n, our Open Source implementation of TLS/SSL, and a contributor to the TLS/SSL standards. Hopefully I’m qualified to chime in! You’re right that ALB […]
10 Jul 2018
If you are using an Amazon Application Load Balancer, and forwarding traffic to internal services using HTTPS, the ALB will not validate the certificate presented by the internal service before forwarding the traffic. So we're clear here, let's say you are running a web server on Amazon ECS. The webserver is configured to present TLS […]
6 Jul 2018
Twelve days before Christmas 2017, Otto LLC, a company that wanted to produce smart locks, shut down with little notice. Employees were given no severance and contractors were left with tens or hundreds of thousands of dollars in unpaid invoices. This incident was widely covered in the press, and one board member has since quit […]
23 May 2018
Belmont is finalizing plans to build affordable housing on two parcels it owns across from the Caltrain station along El Camino Real. The proposal from the developer, LINC Housing, would construct around 20 large-family affordable units (2 and 3 bedrooms) and 20 senior housing units (one bedroom). Belmont reduced the parking requirements for new construction […]
9 May 2018
There's a pretty famous software engineering slide called "Latency Numbers Every Programmer Should Know." I thought I would write an equivalent for housing construction, since a lot of these statistics can be hard to estimate. The goal is to make it easy to do a ballpark estimate of the impacts of a particular proposal. For […]
26 Apr 2018
Want to know how to get rough profiling of any tool written in any language, whether you control the source or not? Keep reading. For example, here's the output you get when you compile Go from source code. Each of these lines prints out a few seconds apart. How would you go about getting timings […]
27 Mar 2018
In the middle of a housing crisis, cities up and down the Peninsula are moving forward with plans to add a ton of new office space and no new housing. These plans will add many more new commuters, without any corresponding housing for them. Last year the Apple Park launched in Cupertino. 2.8 million sq […]
20 Mar 2018
Writing middleware in Go seems pretty easy at first, but there are several easy ways to trip up. Let's walk through some examples. Reading the Request All of the middlewares in our examples will accept an http.Handler as an argument, and return an http.Handler. This makes it easy to chain middlewares. The basic pattern for […]
16 Feb 2018
On Tuesday, the SF Board of Supervisors moved to study whether a Mission laundromat is a historic resource, delaying 75 units of housing by 5 months. We wanted to look back at famous laundromats of history. Garden of Eden, 6000 BC Eating the forbidden fruit without any napkins makes quite a mess. Adam and Eve […]
4 Nov 2017
It's a common, and distressing, pattern to have factories in tests that call out to a library like Faker to "randomize" the returned object. So you might see something like this: User.create({ id: uuid(), email: faker.random.email(), first_name: faker.random.firstName(), last_name: faker.random.lastName(), address: faker.random.address(), }); package = Package.create({ width: faker.math.range(100), height: faker.math.range(200), length: faker.math.range(300), }) This is […]
23 Oct 2017
There are a number of Unix commands that manipulate something about the environment or arguments in some way before starting a subcommand. For example: xargs reads arguments from standard input and appends them to the end of the command. chpst changes the process state before calling the resulting command. envdir manipulates the process environment, loading […]
22 Oct 2017
Bazel is a build system that was recently open sourced by Google. Bazel operates on configuration files - a WORKSPACE file for your entire project, and then per-directory BUILD.bazel files. These declare all of the dependencies for your project, using a language called Skylark. There are a number of Skylark rules for things like downloading […]
16 Oct 2017
It's easier than you think to make a software package installable via Homebrew. If you depend on a very specific version of a software package (say, Postgres 9.5.3 with readline support), I highly recommend creating a Homebrew repository and publishing recipes to it. Then your team can install and update packages as easily as: brew […]
10 Oct 2017
When you navigate to your project in CircleCI's UI, Javascript from eight different analytics companies gets loaded and executed in your browser. Pusher Intercom Launch Darkly Amplitude Appcues Quora (??) elev.io Optimizely You can see this in my Network tab here: This is a problem because the CircleCI browser context has full access to the […]
1 Sept 2017
Node string encoding is all over the place. Let's try to straighten out how it works. First, some very basics about string encoding. A string is a series of bytes. A byte is 8 bits, each of which can be 0 or 1, so a byte can have 28 or 256 different values. Encoding is […]
8 May 2017
You might have heard that you shouldn't be using JWT. That advice is correct - you really shouldn't use it. In general, specifications that allow the attacker to choose the algorithm for negotiation have more problems than ones that don't (see TLS). N libraries need to implement M different encryption and decryption algorithms, and an […]
10 Apr 2017
You should write your next web server in Go. Yes, you! Compared with Ruby, PHP, Python, or Javascript, you're going to get great memory and latency performance, and libraries that do what you expect. The standard library can be a bit lacking though, if you are used to developing with a tool like Rails. I […]
30 Mar 2017
Do you work in the tech industry in the Bay Area? You should start learning about, and getting involved in, local housing politics. The prognosis for housing and rent prices is bad, and things are likely going to get worse for tech workers in the Bay, unless we start taking action. I will explain why […]
3 Jan 2017
You may have seen this on New Year's Eve: Another leap second, another slew of outages. Handling time correctly is hard!https://t.co/kJepOfsKkv pic.twitter.com/Fwz2Xtpzkd— Dan Luu (@danluu) January 1, 2017 I'd heard a little about this problem, but I didn't understand how it broke code, and what to do about it. So here is an explainer. Background […]
15 Dec 2016
The next president of the United States showed a willingness to violate historical norms while campaigning, and there's little evidence that he has any moral compass - the examples of this are legion, one of the worst is him cutting off medical treatment to his sick nephew over a legal dispute. His kids are going […]
27 Nov 2016
A while ago my friend Alan and I were discussing configuration management. In particular we wondered why every configuration management tool has to ship a DSL, or be loaded from YAML files. We wondered if it would be possible to just write code that deploys servers — it might let you describe what you want […]
7 Nov 2016
For the past few weeks I've been working on Logrole, a Twilio log viewer. If you have to browse through your Twilio logs, I think this is the way that you should do it. We were able to do some things around performance and resource conservation that have been difficult to accomplish with today's popular […]
24 Oct 2016
This is Part 2 of my voter guide. Part 1 covers the 24 San Francisco ballot propositions and city supervisor races. The deadline to register to vote in California is October 24. I highly recommend you sign up. Click here to register to vote. A few notes I cover in more detail in Part 1: […]
16 Oct 2016
I think this is useful and the ballot's complicated so I wanted to share how I'm voting this year. I used several sources to compile this guide: The SF Chronicle's endorsements - they follow these issues every day. The ballot book mailed to every voter, especially the text of the law and the main pro/con […]
3 Sept 2016
I have seen a few databases recently that could have saved a lot of space by being more efficient with how they stored data. Sometimes this isn't a big problem, when a table is not going to grow particularly quickly. But it can become a big problem and you can be leaving a lot of […]
2 Aug 2016
For the past few weeks I've been on the hunt for a configuration file format with the following three properties: You can use a library to parse the configuration. Most configuration formats allow for this, though some (nginx, haproxy, vim) aren't so easy. You can manipulate the keys and values, using the same library. When […]
3 Jul 2016
I've been following the commits to the Go project for some time now. Occasionally someone will post a commit with benchmarks showing how much the commit improves performance along some axis or another. In this commit, they've increased the performance of division by 7 (a notoriously tricky number to divide by) by about 40% on […]
16 Jun 2016
I have a lot of tests in Go that integrate with Postgres, and test the interactions between Go models and the database. A lot of these tests can run in parallel. For example, any test that attempts to write a record, but fails with a constraint failure, can run in parallel with all other tests. […]
7 Jun 2016
Recently I put the maximum amount of cash into my IRA account. Since stock prices jump up and down all the time, I wondered whether the current price would be the best one to buy the stock at. In particular, I'm not withdrawing money from my IRA for the better part of 40 years, so […]
27 May 2016
(I'm omitting the many, many, astroturf posts - "Why X is Better than Twilio", "Why I'm Ditching Twilio for X" - and comments from employees at competitors between 2010 and 2014.) Twilio Raises $12m Series B "Can something like Twilio really become a $100m+ company? I hope so but my ignorance blinkers me to how […]
26 May 2016
This is the story about an error that caused our tests to fail maybe one out of one hundred builds. Recently we figured out why this happened and deployed code to fix it. The Problem I've been fighting slow test times in Javascript and Sails since pretty much the day I started at Shyp. We […]
3 May 2016
I was hired in December 2014 as the sixth engineer at Shyp. Shyp runs Node.js on the server. It's been a pretty frustrating journey, and I wanted to share some of the experiences we've had. There are no hot takes about the learning curve, or "why are there so many frameworks" in this post. Initially […]
7 Apr 2016
Often the best way to learn a new language is to implement something you know with it. Let’s take a look at some common async Javascript patterns, and how you’d implement them in Go. Callbacks You can certainly implement callbacks in Go! Functions are first class citizens. Here we make a HTTP request and hit […]
3 Apr 2016
You may have seen the TSA Randomizer on your last flight. A TSA agent holds an iPad. The agent taps the iPad, a large arrow points right or left, and you follow it into a given lane. How much does the TSA pay for an app that a beginner could build in a day? It […]
18 Feb 2016
DEAR SIR, I HAVE THE BELIEVE YOU ARE A REPUTABLE AND RESPONSIBLE AND TRUSTWORTHY PERSON I CAN DO BUSINESS WITH FROM THE LITTLE INFORMATION SO FAR I GATHERED ABOUT YOU DURING MY SEARCH FOR A PARTNER AND BY MATTER OF TRUST I MUST NOT HESITATE TO CONFIDE IN YOU FOR THIS SIMPLE AND SINCERE BUSINESS. […]
12 Feb 2016
This is a pretty common task: encode JSON and send it to a server, decode JSON on the server, and vice versa. Amazingly, the existing resources on how to do this aren't very clear. So let's walk through each case, for the following simple User object: type User struct{ Id string Balance uint64 } Sending […]
9 Feb 2016
You might want/need to check out repos locally as several different Github users. For example, my Github account is kevinburke, but I push code at work as kevinburkeshyp. If I could only commit/push as one of those users on each machine, or I had to manually specify the SSH key to use, it would be […]
14 Jan 2016
Recently there's been a trend in API's to return more than one error, or to always return an array of errors, to the client, when there's a 400 or a 500 server error. From the JSON API specification: Error objects MUST be returned as an array keyed by errors in the top level of a […]
27 Dec 2015
This past week the team at Shyp decided to fork the framework we use (Sails.js) and the ORM it uses (Waterline). It was an interesting exercise in JS tooling, and I wasted a lot of time on busywork, so I thought I'd share a little bit about the process. Why Fork? We've been on an […]
18 Nov 2015
Do you have objects in your system that can be in different states (accounts, invoices, messages, employees)? Do you have code that updates these objects from one state to another? If so, you probably want a state machine. What is a state machine? At its root, a state machine defines the legal transitions between states […]
13 Oct 2015
Adrian Colyer wrote a great summary of a recent paper by Peter Bailis et al. In the paper the database researchers examine open source Rails applications and observe that the applications apply constraints - foreign key references, uniqueness constraints - in a way that's not very performant or correct. I was pretty surprised to read […]
26 Sept 2015
There's a distressing feeling in the Node.js community that apps without up-to-date dependencies are somehow not as good, or stable, as apps that always keep their dependencies up to date. So we see things like greenkeeper.io and badges that show whether the project's dependencies are up to date (and, implicitly, shame anyone whose dependencies aren't […]
23 Sept 2015
To try and avoid having interview candidate start every interview with the same "tell me your background" boilerplate, we get every interviewer in the room with the candidate at the beginning of the interview for a few minutes, so everyone can introduce themselves and the candidate can walk through their background. Recently we had a […]
6 Sept 2015
The Shyp API currently runs on top of the Sails JS framework. It's an extremely popular framework - the project has over 11,000 stars on Github, and it's one of the top 100 most popular projects on the site. However, we've had a very poor experience with it, and with Waterline, the ORM that runs […]
31 Aug 2015
Okay! You had an idea for how to improve the project, the maintainers indicated they'd approve it, you checked out a new branch, made some changes, and you are ready to submit it for review. Here are some tips for submitting a changeset that's more likely to pass through code review quickly, and make it […]
25 Aug 2015
Our test suite has been failing maybe 2% of the time with a pretty opaque error message. I thought the database logs would have more information about the failure so I figured out how to turn them on with Circle. Add the following to the database section of your circle.yml: database: override: - sudo sed […]
19 May 2015
Pay people more! It’s really that simple. If you care so much about retention, put your money where your mouth is.
20 Apr 2015
Our test environment takes 6-9 seconds to load before any tests get run. I tire of this during the ~30 times I run the test suite a day,1 so I wanted to make it faster. For better or worse, the API runs on Sails.js. Before running model/controller tests, a bootstrap file in our tests calls […]
9 Apr 2015
Reddit and Duck Duck Go recently announced that they are eliminating salary negotiations, in part to help even the playing field for men and women, since men are more likely to negotiate salaries than women. Men negotiate harder than women do and sometimes women get penalized when they do negotiate. So as part of our […]
1 Dec 2014
"Invalid Username or Password": a useless security measure Login attempts fail because computer users can't remember their email or didn't input the right password. Most websites on the Internet won't tell you which one is actually incorrect. Amazon: Shoprunner: Hacker News: If you tell an attacker the email address is wrong, they'll try a different […]
29 Nov 2014
Recently I had a very weird problem with iTerm where new login shells were being created with environment variables already present. Restarting my machine made the issue go away, and I wasn't able to reproduce it again. But I got curious about how long ZSH spends in various parts of the startup process. A new […]
4 Sept 2014
I read Ready Player One recently and I enjoyed it; it was a pretty fast read and I finished it in a day. It presents a view of the future where the possibilities allowed by a virtual reality world surpass those of the real world, so most people spend as much time as possible connected […]
1 Aug 2014
I used to play a ton of Roller Coaster Tycoon when I was a kid. I loved the game but I was never very good at making the roller coasters. They always felt too spread out, or too unnatural looking. As a ten year old I idly wondered about writing a computer program that was […]
30 Jul 2014
You should sign up for a VPN service! Yes you, the casual Internet browser. Here is why. Any time you connect from your laptop/phone to a wireless network (SFO Wifi, Starbucks, etc), anyone else on that network can read all of your traffic over HTTP, to sites like Wikipedia, Netflix, YouTube, WebMD and more. This […]
26 Jul 2014
I'm setting up a new website, which gave me an excuse to try out Nix, the stateless package manager, and Docker, the tool that lets you run all of your apps in light-weight containers on a host. Nix may be a great tool, and help you avoid the possibility of moving parts in your builds, […]
24 Jul 2014
I read a great blog post in college, and sadly I can't find it now, so I'll summarize. It showed a picture of Hearst Castle, and a photo of an average middle-class home, and the text of the post went something like: One of these can travel across the country in 6 hours. One of […]
22 Jul 2014
You have photos on your computer. You would probably be really sad if you lost them. Let's discuss some strategies for ensuring that doesn't happen. What you are doing now is probably not enough. Your current strategy is to have photos and critical files stored on your most current laptop and maybe some things in […]
You kick off a long running job - maybe a data migration script that operates on a large data set, or you're copying a large file from one disk to another, or from the Internet to your local computer. Then a few minutes in, you realize the job is going to take longer than you […]
4 Jun 2014
It's important to recognize the people that have contributed to your project, but it can be annoying to keep your project's AUTHORS file up to date, and annoying to ask everyone to add themselves in the correct format. So I did what any good engineer should do, and automated the process! I added a simple […]
21 Apr 2014
The Heartbleed bug was really bad for OpenSSL - it let you ask a server a simple question like "How are you" and then have the server tell you anything it wants (password data, private keys that could be used to decrypt all traffic), and the server would have no idea it was happening. A […]
15 Apr 2014
The open source community was shocked to learn Tuesday that millions of lines of source code had gone missing from Github.com, a popular online version control website. Github stores source code in "reposotories", which are big chunks of code that can be edited by Github members. Most version control websites will keep a small portion […]
14 Apr 2014
On a Friday in April, the lines for Space Mountain and Thunder Valley did not exceed 10 minutes all day. Astro Blasters twice had 4 people in line. The price is $60, which is ~$30 cheaper than Anaheim. It was about 80 degrees during the day and 70 at night. Also when you exit Disneyland […]
24 Mar 2014
"Build software like a tank." I am not sure where I read this, but I think about it a lot, especially when writing HTTP clients. Tanks are incredible machines - they are designed to move rapidly and protect their inhabitants in any kind of terrain, against enemy gunfire, or worse. HTTP clients often run in […]
29 Dec 2013
This will be short, but it seems there's some difficulty doing this, so I thought I'd share. The gist is, any time you reference a class or method in your own library, in the Python standard library, or in another third-party extension, you can provide a link directly to that project's documentation. This is pretty […]
20 Oct 2013
Over on the Twilio Engineering Blog, I have a new post about optimizing your HAProxy configuration. I wrote this mostly because we had some confusion in our configuration about setting options, and if I had it I figured others would as well. Here's a sample: When I said a 30 second connect timeout meant HAProxy […]
18 Aug 2013
Recently I've fallen in love with the IPython Notebook. It's the Python REPL on steroids and I've probably just scratched the surface of what it can actually do. This will be a short post because long posts make me feel pain when I think about blogging more again. This is also really more about setting […]
13 Aug 2013
Yesterday I sped up our unit/integration test runs from 16 minutes to 3 minutes. I thought I'd share the techniques I used during this process. We had a hunch that an un-mocked network call was taking 3 seconds to time out. I patched this call throughout the test code base. It turns out this did […]
1 Jun 2013
I really enjoyed Sam Saffron's post about eliminating trivial inconveniences in his development process. This resonated with me as I tend to get really distracted by minor hiccups in the development process (page reload taking >2 seconds, switch to a new tab, etc). I took a look at my development process and found a few […]
28 Mar 2013
This American Life is an excellent podcast, but occasionally puts out episodes on subjects I don't care for - fiction, reminisces about home life, etc. There is one heuristic you should use for filtering American Life podcasts: listen to the podcasts they release that tell one story for the whole hour. Example whole-hour podcasts, that […]
15 Mar 2013
Email from my alma mater: Dear Members of the Claremont McKenna College Community, I am writing to update you on an important action taken by the Board of Trustees at its meeting on March 9, 2013. In particular, the Board acted to end the College’s “No Packaged Loan” financial aid policy. Beginning with the fall […]
17 Feb 2013
Do you write forms on the Internet? Are you planning to send them to your server with Javascript? You should read this. The One-Sentence Summary It's okay to submit forms with Javascript. Just don't break the internet. What Do You Mean, Break the Internet? Your browser is an advanced piece of software that functions in […]
12 Feb 2013
If you've ever tried to teach someone HTML, you know how hard it is to get the syntax right. It's a perfect storm of awfulness. Newbies have to learn all of the syntax, in addition to the names of HTML elements. They don't have the pattern matching skills (yet) to notice when their XML is […]
10 Feb 2013
How should you design the controls for a shower? Let's take a quick look. Affordance A device should make clear by its design how to use it. Take a hammer for example. No one has ever looked at a hammer and wondered which end you are supposed to grab and which part you're supposed to […]
29 Jan 2013
I've worked with Twilio's client libraries pretty much every day for the last year and I wanted to share some of the things we've learned about helper libraries. Should you have helper libraries? You should think about helper libraries as a more accessible interface to your API. Your helper libraries trade the details of your […]
8 Nov 2012
Last week two other Twilio engineers and I went to the Columbia engineering career fair. We had a great time and talked to a lot of really smart people. However I was surprised at some of the naive mistakes students made when we were talking. We're there to try to hire students and students are […]
26 Sept 2012
The New York Times has a big new feature up explaining why data centers at Google, Facebook etc. waste tons of electricity. Diego Doval, a former CTO at a popular startup, skewers the NYT with a 5,000 word critique of the factual inaccuracies in the post. Doval is right on with his critique, but there's […]