← Projects
Sonder icon

Sonder

Deprecated

A neighborhood discovery walking app in React Native — a four-person team project where I built the location pipeline and the backend.

react nativeredux-saganoderedispostgresgeolocationteam project

Sonder is the realization that every stranger you pass has a life as vivid and complicated as your own. The app took the word literally: a neighborhood discovery walking app for iOS and Android, built on React Native, that showed you what was around you and who else was out there.

This was a team project and I want to be straightforward about that. Four people: George Michel as product owner, Matt Walsh as scrum master, and Paige Vogenthaler and me as the development team. Of the repository's seventy-one commits, twelve are mine.

What I built

My twelve commits are a coherent piece of the app rather than a scattering — the location pipeline and the server under it:

  • Created the backend for Sonder, and configured the app against it once it was deployed
  • Redis for location caching, running in Docker alongside Postgres
  • A location service and a redux-saga to drive it, turning a stream of device positions into application state
  • User state after Facebook login, setting the user's location as part of establishing who they are
  • Friend location tracking, enabled at login
  • Real-time location broadcast through the saga, and then the fix for it

Location is the hard part of an app like this, and not because reading a GPS coordinate is difficult. It is because position arrives continuously and unreliably, needs caching so you are not hammering a database on every tick, needs to reach other users promptly enough to feel live, and has to survive the app being backgrounded. Putting that lifecycle in a saga — a long-running process that can wait, retry and be cancelled — is the right shape for it.

The stack around it was React Native 0.38, Node, Redis, Postgres, Docker, and Yelp for what was nearby.

The timing

Sonder ran from late December 2016 through January 2017. It was the capstone of a three-month programming bootcamp I took after nine years out of professional software.

I joined the Echo Look team at Amazon the following month, hired as a full-stack engineer specializing in React Native.