I blog sometimes! So far the only topics I've covered have been related to software engineering, but I'm not above random posts about cats.

Follow along with RSS or Twitter.

All Posts

A very practical piece of pure CS
If an interviewer asked me to find the last item in a linked list, I might write some code like this: (more)
Could I be a zealot? Yes and it sucks.
Zealotry seems to always sneak up on me. I see it in my coworkers, myself, and of course in comments online. Recognizing it in myself is challenging, but I'm slowly building up some tools to help me out. This post is about one such tool. (more)
A model of (polyamorous) relationships
I want to present a model for thinking about relationships and polyamory. Like any model, I will relate it (hopefully strongly) to real world things, but the model exists within its own system. (more)
Principles of Building a Simple Site
I've made a bunch of simple websites over the years, and from my endless failures I've built up some principles I now follow. (more)
I talk to myself on GitHub
I talk to myself on GitHub a lot. If I could share our internal issues at Khan Academy you'd see a similar story there as well. I do this to serve a few ends. (more)
Solving a wooden puzzle
Last week a mysterious double-sided puzzle appeared next to the kitchen at Khan Academy. (more)
Typos in search queries at Khan Academy
One year ago, searching for polinomials on Khan Academy's search page would give you no results. If you typed the same thing into Google you'd be efficiently and politely corrected. (more)
Local Storage Today
I'd like to write to localStorage often. I'd also like to write to it synchronously in response to user interaction. Past wisdom says this is a bad idea and will give me Angry Users Syndrome very quickly. (more)
Intelligently Shortening Text
Our search page at Khan Academy displays highlighting information to provide context for our results. Our full-text search engine gives us the highlighting text, but it doesn't provide a way to reliably control the length of the text. The end result can be undesirable. (more)
The Python Import System
I made a presentation at Khan Academy on a few good things to know about Python's import system. Here's a writeup of that presentation (this is written mostly as a reference, sorry for the dryness). (more)
Transactions with Python's sqlite3 Package
Python's sqlite3 package tries to take care of the tricky business of properly executing BEGIN and COMMIT statements. The rules of when and how this automatic transactioning is done has confounded a number of developers, many of whom have jumped ship and chosen to use the aspw package or similar. (more)