Hi there! I'm Tim.

Developer Advocate, mLab.

About me

I'm a Developer Advocate at mLab. We power over half a million MongoDB deployments for companies such as Lyft, Facebook, and The New York Times. Previously I was the Commissioner at Major League Hacking, where I lead the team that managed our community of over 250 events attended by 65,000 students in North America and Europe.

I'm a mathematician by training but I fell in love with solving problems using code. My go-to tools are Python or JavaScript. I also enjoy playing with Haskell, Go, and more arcane languages like APL.

Outside of coding, I enjoy history books, cocktails, and watching films at the Alamo Drafthouse.


You can view my blog on Medium here. Here are some recent posts:



Using the Twilio API, I made a script to generate prime number phone numbers. Prime numbers are the coolest numbers out there (apart from e and π). So I built primenumbers.io where you can find your own prime number phone number. You can easily set it up to forward to your phone using Twimlets or TwiML Bins.

I built the project using Node.js, Vue.js, and Twilio's available phone numbers resource. The Twilio API isn't really set up to allow searching of its numbers like this, so it took some hacking to get the desired responses from the API.


An npm module for simulating Enigma machines. It can simulate a Wehrmacht Enigma I and the Kriegsmarine M3 and M4 variants. The cryptanalasis of the Enigma machine by Polish and British mathematicians is a fascinating story. Building this module taught me more about some of the subtle inherent weaknesses of the Enigma cipher. An example is the "double step" which helped Allied codebreakers to determine which rotor settings were used each day.

Built with Node.js. The test suite uses Mocha with Assert.


You can contact me at [email protected]. You can also find me on the following sites: