About

I’ve lived in Israel, Argentina, and Boston, and currently live in the San Francisco Bay area.

I graduated from Boston University with a degree in political philosophy.

I love motorcycling, sailing, skiing, and traveling.

I like woodworking, DIY projects, and (of course) technology.

My wife and I have a travel blog about our year in Argentina and many other adventures.

more »

Work

I have worked as a software engineer since 2003. For the last four years, I have specialized in the Node.js ecosystem.

Most recently I was a software engineer at Good Eggs, building logistics software for an innovative food distribution model.

Before that, I was a lead engineer at DocuSign.

I am passionate about high-quality, maintainable, automatically-tested software using cutting-edge, open-source technology.

See my LinkedIn profile.

more »

Blog — March 2014

The new DocuSign experience, all in Javascript

We recently launched The New DocuSign Experience, a reimagining of our primary web application used by 45 million users. The app is built in Node.js and uses the REST API as its data store. We’re proud to have built the entire app on an open-source stack, and plan to share a lot of our code in the coming months.

read »

Blog — Nov 2013

Building a Redis Sentinel Client for Node.js

We use Redis for sessions and for a short-lived data cache in our node.js application. Like any component in the system, there’s a potential risk of failure, and graceful failover to a “slave” instance is a way to mitigate the impact. We use Redis Sentinel to help manage this failover process, and we decided to create a middle tier, a Redis Sentinel client, to handle this failover automatically.

read »

Blog — June 2012

Understanding MapReduce in MongoDB, with Node.js and PHP

MongoDB’s query language is good at extracting whole documents or whole elements of a document, but on its own it can’t pull specific items from deeply embedded arrays, or calculate complex relationships. To do that, MongoDB uses an implementation of MapReduce.

read »