JavaScript: The Modern Parts

In the last few months, I have learned a lot about modern JavaScript and CSS development with a local toolchain powered by Node 8, Webpack 4, and Babel 7. As part of that, I am doing my second “re-introduction to JavaScript”. I first learned JS in 1998. Then relearned it from scratch in 2008, in … Continue reading JavaScript: The Modern Parts

Shipping the Second System

After initial product-market fit and during a period of rapid customer adoption, the Parse.ly team embarked upon the task of re-envisioning its entire backend technology stack. The goal was to build upon the learnings of more than 2 years delivering real-time web content analytics, and use that knowledge to create the foundation for a scalable … Continue reading Shipping the Second System

Expanding my mind, once more, with functional programming

The Structure and Interpretation of Computer Programs (SICP) is a classic computer science text written by Gerald Jay Sussman and Hal Abelson. It is widely known in the computer science community as the “wizard book”. It intends to teach the foundations of computer programming from “first principles”, illustrating programming language design using Scheme, a dialect … Continue reading Expanding my mind, once more, with functional programming

Public technical talks and slides

Over the years, I’ve put together a few public technical talks where the slides are accessible on this site. These are only really nice to view on desktop, and require the use of arrow keys to move around. Long-form notes are also available — generated by a sweet Sphinx and reStructuredText plugin. I figured I’d … Continue reading Public technical talks and slides

Charlottesville tech: a community that won’t be stopped by tragedy

Note: This post was written on August 17, 2017. I was living in Charlottesville, Virginia at the time; I had been based there since 2011 and would end up living there until 2019. Unfortunately, 5 days before this post was written, a tragedy happened in my town. This was my attempt to provide an alternative … Continue reading Charlottesville tech: a community that won’t be stopped by tragedy

The Twitter growth conundrum

Note from the future: this post written in November 2016. A lot has happened to Twitter (or, Twitter/X) since then. But, the fundamental analysis of Twitter’s growth dynamics outlined in this post continues to hold true even 8+ years later. Twitter is the public Internet company everyone loves to hate these days. It’s not growing. … Continue reading The Twitter growth conundrum

Simple and Universal: A History of Plain Text, and Why It Matters

My first computer did not have a web browser. But I remember using my first web browser (Mosaic) with some awe. It was the late 90’s and though the web was not nearly as beautiful or functional as it is now, it worked. It was clear — even to my young self — that there … Continue reading Simple and Universal: A History of Plain Text, and Why It Matters

Simple Lego Blocks for Big Data

Data engineers should abstract their code in the most lightweight way possible to facilitate downstream integration in a large-scale data system. You want lego blocks, not puzzle pieces. The creators of the C programming language once famously said, “first make it work, then make it right, and, finally, make it fast.” This adage still applies … Continue reading Simple Lego Blocks for Big Data