Web Application Stack
We build client applications in CoffeeScript and ES6 using tools such as React
. Our goal is to build performant clients with an eye for progressive enhancement.
Our native iPhone, iPad, and Apple Watch apps are written in Objective-C and Swift. We develop and maintain internal frameworks that are reused for core functionality such as networking, model serialization, and caching across our apps. Core Data is used for persistent local caching. We run an in-house APN server to track, customize, and deploy push notifications to our users.
Retrofit, Picasso and OkHttp handle all the network layer communication. We use RxJava and RxAndroid to bring reactive programming to Android. Design support libraries to bring Material design look and feel. Espresso, Mockito, and Robolectric for testing purposes. And we follow the latest Google Android developer patterns in our code.
MySQL, more specifically Percona
runs the show. We rely on Redis and Memcached to provide support for caches and background job processing. Elasticsearch
powers anything from full search, search suggestions, some functions of our network graph, recommendation engine, and it even acts as cache store. We utilize Neo4j
to perform complex network graphing operations.
is our operating system of choice for all servers. We leverage Chef
, and Packer
for automation and provisioning across a AWS and DigitalOcean servers. Sensu
and New Relic
are used to monitor hundreds of services within our application servers. Hubot
deploys, migrates and restarts our applications, It also triggers the automation suite runs.
We rely on CircleCI to run our massive suite of unit tests and feature specs for every single commit of our web applications. Each build is parallelized across multiple containers that auto-scale to provide the development team with quality feedback, fast. To ensure the same quality on mobile, we rely on a self-hosted instance of Jenkins to build, test, and deploy our iOS and Android applications.
Follow us for updates and new blog posts.