Skip to content

Instantly share code, notes, and snippets.

Jason Pincin jasonpincin

Block or report user

Report or block jasonpincin

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
#!/usr/bin/env bash
VDATA=$(vault read -format=json secret/core/core-id/staging/us-east-1/rds)
PW=$(echo $VDATA | jq -r .data.password)
USER=$(echo $VDATA | jq -r .data.username)
DBNAME=$(echo $VDATA | jq -r .data.dbname)
HOST=$(echo $VDATA | jq -r .data.endpoint)
jasonpincin / docker-compose.yml
Created Mar 6, 2017
example autopilotpattern/redis docker-compose config for local deployment
View docker-compose.yml
version: '2.1'
image: autopilotpattern/redis:3.2.8-r1.0.0
mem_limit: 512m
restart: always
- 6379
- 26379
jasonpincin / docker-compose.yml
Last active Mar 6, 2017
example autopilotpattern/redis docker-compose config for Triton deployment
View docker-compose.yml
version: '2.1'
image: autopilotpattern/redis:3.2.8-r1.0.0
mem_limit: 4g
restart: always
- 6379
- 26379

MDB is unlike most debuggers you've experienced.

It is not a source level debugger like gdb or lldb or even Node's builtin debugger

Generally used for postmortem analysis.

Postmortem is for Production and Development

We operate mostly on core files, though you can attach to running processes as well.



Anivia is Walmart's mobile analytics platform. It collects user-interaction metrics from mobile devices -- iPhone, iPad, Android, and mWeb. It also processes logging and other metrics from a bunch of mobile services. Anivia allows the business to have real-time insight and reporting into what is going on in the mobile business and provides vital capabilities for developers and ops folks to monitor the health of their services.

Anivia is built on Node.js, Hapi, RabbitMQ, and a multitude of downstream systems including Splunk and Omniture. Anivia is taking in 7,000 events per second on average (as of this writing), which after some fan-out and demuxing comes out to around 20,000 messages per second in flight. These rates are expected to soar leading up to and including Black Friday. The platform has grown in recent months to over 1,000 node processes spanning multiple data centers, gaining features such as link resiliency in the process.

A few of Anivia's functionalities

  • __Timestamp Correc


Quimby is Walmart's service layer for mobile clients' configuration, CMS, a-b testing setup, and a few other sundry related services. It stitches together a constellation of data sources into a concise menu of API calls that mobile clients make to intialize and configure themselves.

Quimby is a REST service layer based upon the Gogo micro-service framework that we in turn built with Node.js, Hapi, Zookeeper, and Redis. Gogo is able to expose an array of web servers as a single host, and offers the ability to isolate tasks into smaller focused processes, emphasizing scalability and failure recovery. For example, a failure in any micro-service will not affect the life cycle of a request. Gogo also offers the additional features required to build distributed services with shared state, such as leader election.

Quimby components

  • Penny (part of Gogo) - The micro-service router, responsible for pairing a request with a servicer
View gist:03c0d25e272c16d7f8f9
### Keybase proof
I hereby claim:
* I am jasonpincin on github.
* I am jasonpincin ( on keybase.
* I have a public key whose fingerprint is CDF6 117D E5B7 FC5E 63D1 158A A944 A205 59C9 52A1
To claim this, I am signing this object:
jasonpincin / Makefile
Created May 11, 2014
package factory
View Makefile
.PHONY: pkg
all: help
@echo "pkgname=name pkgdesc='desc' make pkg"
jasonpincin / index.html
Created Mar 18, 2014
sample index.html for rpc demo
View index.html
<title>RPC Example</title>
<script type="text/javascript" src="bundle.js"></script>
<div id="time" />
<div id="square" />
jasonpincin / client.js
Last active Aug 29, 2015
rpc client using dnode, shoe
View client.js
var shoe = require('shoe')
var dnode = require('dnode')
var document = require('global/document')
var onTime = function (err, time) {
document.getElementById('time').innerHTML = time
var onSquare = function (err, val) {
document.getElementById('square').innerHTML = val
You can’t perform that action at this time.