Harvard CS75 - Web Scalability

Notes on scaling web servers from David Malan's web dev course. Topics covered: vertical and horizontal scaling, caching, load balancing, database replication, and database partitioning.

Machine learning in production with Flask, Twilio, Docker, and Google Cloud

Making machine learning models work in the wild, and what I learned along the way.

async/await vs .then() in JS Promises

Promises are at the core of asynchronous programming in JavaScript, but sometimes the patterns surrounding their use can be really confusing. First of all, there are two main things you can do with promises: *create* and *handle* them. This post will be mainly focused on the latter...

Dynamic Programming with Python

Today I worked on a LeetCode problem called House Robber: given an array of numbers, each representing the amount of money in the house, find the maximum amount of money you can rob without robbing neighboring houses.

Automata, Consciousness, and 17th Century Mechanics

Automata — machines that operate according to a set of predetermined instructions — are some of our earliest iterations of artificially intelligent technology. What epistemic purpose did they serve, and what do they demonstrate about how people have historically thought of machines as alive?

Hardware hacking with Arduino, Neopixels, and MTA data

As a New Yorker, I've had this dream, for awhile now - to be able to glance at a display on my wall and know when my train is coming. The MTA has a website: http://subwaytime.mta.info that provides this experience, but the user experience is pretty terrible and you can't even bookmark your subway stop.