Skip to content

Instantly share code, notes, and snippets.

View chrisrobison's full-sized avatar
🤔
Open for business and now accepting proposals

Christopher Robison chrisrobison

🤔
Open for business and now accepting proposals
View GitHub Profile
@chrisrobison
chrisrobison / resume.json
Last active August 3, 2025 21:07
resume.json
{
"basics": {
"name": "Christopher Robison",
"label": "Engineering Leader | Scalable Mobile & SaaS Systems",
"image": "https://cdr2.com/cdr-business.jpg",
"email": "[email protected]",
"phone": "(415) 810-6991",
"url": "https://cdr2.com",
"summary": "Veteran engineering leader with a proven record of building scalable SaaS and mobile platforms. Adept at managing globally distributed teams and developing resilient systems used by millions. Deep experience in mobile SDKs, infrastructure automation, and leading cross-functional product development across time zones. Passionate about transforming operations with AI and driving efficiency at scale.",
"location": {
#------------------------------------------------------------------------------#
# Bayesian update with new information
# Based on http://www.databozo.com/2013/09/15/Bayesian_updating_of_probability_distributions.html
#------------------------------------------------------------------------------#
# Load packages
library('ggplot2')
# Define functions
normalize <- function(pos) {
# Normalizes the possibilities so that sum = 1
function Track(src, spriteLength, audioLead) {
var track = this,
audio = document.createElement('audio');
audio.src = src;
audio.autobuffer = true;
audio.load();
audio.muted = true; // makes no difference on iOS :(
/* This is the magic. Since we can't preload, and loading requires a user's
input. So we bind a touch event to the body, and fingers crossed, the