Graph queries for a social feed
2015.041Why a graph database was the only sane choice for a social feed where the interesting question isn't what your friends posted, but what your friends' friends are doing this Saturday.
Why a graph database was the only sane choice for a social feed where the interesting question isn't what your friends posted, but what your friends' friends are doing this Saturday.
Adding businesses to a social platform built on Neo4j -- and realizing both sides of the marketplace use the same graph patterns.
Two people, one Express app, and eight middleware functions between the request and the response.
Turning months of git commits into an animated video with Gource and ffmpeg -- then opening the weekly sharing session with it.
Leaving the salary to try building something -- a platform where the unit isn't opinion or memory, but a plan.
Adrian Hands contributed a GNOME patch using Morse code typed with his knees. His commit message was three words and an exclamation.
A text-poster on a meeting-room wall, doing more work than a poster should.
Running a custom Node.js blog engine on a Raspberry Pi at home -- from a 45-day wait and a dead board to DuckDNS, ISP port blocking, and the first external request.
A birthday, a public oath, and one line I want to keep.
Two days after the speech. I went looking for the numbers.
He carried a list. That's the part that broke me.
Route handlers don't need to be nested callbacks -- Express middleware chains turn them into a flat, readable sequence.
Phabricator changed what code review means to me. A note from a few months in.
A bash deploy script and a Node.js process monitor -- SSH, pull, touch a file, the cluster reloads. No CI, no dashboard. The terminal.
A composable predicate function for sorting arrays of objects by multiple fields -- with reverse, primers, and short-circuit evaluation.
Upstart, clustering, zero-downtime deploys, heartbeat monitoring, and an embedded REPL -- what it takes to keep Node.js running in production in 2013.
Using bind mounts to move MySQL data, config, and logs to an XFS volume without changing a single MySQL setting.
Our team's Node.js conventions -- error-first callbacks, early returns, callback alignment, and the formatting rules we drilled into every new developer.
Commit history isn't a log of what happened -- it's a narrative you author. Rebase, atomic commits, and the discipline of writing history for the person reading it six months from now.
Some days you build the wall. Some days you notice you're in it.