I am a software engineer currently based in Chicago, working at Braintree Payments on API integrity, site reliability, a bit of dev ops, and a smattering of open source problem solving.

You might know me from my greatest hits, braintreepayments.com, braintree's developer docs, and PayPal's developer docs.

Find me spreding knowledge around the 'net on Stackoverflow, Medium, and GitHub

Experience

Braintree Payments

Software Engineer June 2016 - Present
  • Migrated 100+ node, multi-billion document Elasticsearch cluster from our datacenter to AWS cloud, enabling greater performance, effortless scaling, and multi regionality. Reduced fault tolerance and increased disaster recoverability by implementing automatic snapshotting, automated health checks, and true Active/Active architecture. Adapted data pipeline to consume multiple Kafka topics, Protobufs, and message types, allowing for the replacement of error prone local Sphinx clusters. Reworked all search infrastructure to be managed in code by Terraform, including health monitors and dashboards via Datadog.

  • Maintained the Braintree and PayPal developer docs and marketing sites, while working with technical writers to expand and improve functionality. Rewrote Braintree's federated site search to use a custom parser and Algolia front end to serve tens of thousands more useful results. Streamlined release processes while eliminating downtime, implementing nginx caching, and reducing AWS asset storage load by 97%. Secured form inputs against attack via backend validation and captcha.

  • Integrated new features into the C++, Java, Ruby, Python, .NET, PHP, and Node server SDKs including porting .NET to .NET Core compatibility. Wrote tools to allow seamless migration of sensitive customer any payment information to and from Braintree, leveraging awk regular expressions. Improved Jenkins testing for multiple projects, expanding usefulness for non-technical users while surfacing specifically identified issues to developers, and bringing version controlled CI to PayPal projects. Helped to Dockerize development and release of multiple services using legacy Capistrano processes as well as Kubernetes. Made additions to Jenkins and Docker Ruby DSL's for use on our team and others. Wrote shim into exiting core to enable GraphQL endpoints. Wrote thorough API validation tests to ensure nothing went undocumented.

  • Co-founded Python Tutorial group to encourage technical literacy among Braintree Support employees, provided one on one mentorship for interns, and forced Slack to paginate their emoji page via excessive use.


  • Revenew Inc.

    Operations Administrator & Technologist Intern Summer 2015
  • Wrote scripts and queries for Piwik Analytics to decrease analysis duration of 14,000+ tracked sites by a factor of 120x while collaborating with creators and users. Edited existing code base to allow for secure SSH access from .NET webapp to Ruby scripts. Designed database and storage procedures to maintain Financial Services data in cloud-based WORM compliant manner. Created automated testing environment to ensure that latency is minimized and reliability is guaranteed for a non URI routable platform. Created sample webpage to demonstrate ability to cobrand video, rendering on demand. Created procedure for duplicating and migrating Wordpress sites automatically, updated existing templates and plugins, and implemented okta single sign-on.


  • Land O'Lakes Inc.

    Project Management & Application Development Intern Summer 2013 and 2014
  • Created iOS sample for a secure, internal crisis management app, oversaw its development by an offshore team, composed documentation and test scripts. Wrote tool chain to increase readability of scanned data. Implemented ELMAH system to report client side API errors to developers. Performed code maintenance and extensions on projects from previous internship.

  • Designed and implemented public-facing API and UI for approved milk producers to archive milk quality data sets, as well as for regulators and third parties to audit. Wrote SQL calls to manage login and communication logging. Created scripts to facilitate cleaning of old data. Extended location API to allow for more useful queries.


  • University of Chicago

    Humanities Computing Technician October 2012 - June 2016
  • Conducted Tier 1 & 2 technical support directly with Faculty and Staff of the University to identify hardware and software issues and to resolve them with minimal loss of data or time. Performed on site repairs, basic data recovery, and documentation management tasks.
  • Skills

  • Jenkins/Continuous Integration,
  • API design,
  • Full stack site maintenance
  • Pair programming,
  • Unix/Linux systems,
  • Android & iOS,
  • Web development,
  • Application Programming,
  • Vim and Tmux,
  • Project Management,
  • Parser design,
  • Low-Level Programming,
  • Database design & management,
  • Azure systems management,
  • High traffic Piwik instances,
  • Wordpress templates & plugins,
  • MVC RESTful APIs,
  • Regular Expressions,
  • git, svn, and tfs
  • Docker,
  • Kubernetes,
  • Language Design,
  • API Design,
  • Mentoring
  • Languages

    (proficient): Ruby, Python, Node, Javascript, Java, C# .Net, PHP, C++, Arduino/C, Bash/Zsh, R, SQL

    (familiar): Objective-C, OpenGL / GLSL, Haskell, SML, Assembly (6502 & x86), Perl, Yacc, awk, sed, G-code

    @Home

    Jabiru Medical A Northwestern University incubated medical startup in Chicago. Worked on an Arduino powered proof of concept device designed to help pregnant women understand stressors on crucial muscle groups.
    Phyllo.apk A location based distributed information sharing app (mySQL, Django, Java).
    ellenberger.zone A personal website with subdomains for each of my family members.
    FossFazor A 3D printed waveguide for Orthodynamic headphones based off the Audeze model.
    MuLtiplication A Python interface for radioligand binding assays to determine solubility of novel and published Dopamine D2 receptor-like ligands to be used by the Newman Group at the NIH.
    ShowProdDehydron A 3D viewer for Dehydron distribution in proteins in Python.
    oGrocer An app to crowdsource current food price trends and give consumers complete price knowledge about what to buy where.
    Gerrymeleon A GPGPU project in its infancy to calculate and solve Efficiency Gap problems.

    For Work/Open Source

    At a few of my workplaces implemented a "20% time" work structure, where a day every other week (or wherever you could fit it in) would be devoted to personal projects. Here are a few of such projects.

    Emojme An improvement on my work on emojipacks, with a complete rewrite adding bulk emoji download, upload, syncing, and statistics through a reverse engineered undocumented slack api endpoint. Published both as an npm module and a command line tool, Emojme allows me to keep 16,000 emoji synced across multiple slack instances, and has (I believe) been instrumental in forcing Slack to rewrite their /customize page several times over the last few years.
    Slack Yaml Manager A hybrid Slackbot and standalone program to allow Slack users create, edit, and run arbitrary jobs based on a shared yaml schema.
    TEAAS A site to apply useful transformations to basic emoji. My role was to improve the post-creation experience, allowing users to download the emoji they create or upload them directly to slack.
    Emojipacks A codebase designed for importing bought emoji to Slack, co-opted to enable people to transfer and sync emoji between instances. Uses phantomjs to interact with Slack's frontend, making it slower and more brittle than Emojme.
    html-to-text A highly extensible parser, improved upon to better handle complex tables present in Braintree's developer docs. Used as part of Braintree's federated search parser.
    YamlLineNumbers A lightweight library to surface source line numbers in parsed ruby hashes, used extensively internally to help identify and resolve issues with kubernetes configs, static allowlist/blocklists, and programmatic documentation.
    Haskell-CSV-Muncher A completely overwrought way to convert csv documents into more useful docs. For example, converting this resume into a markdown document for applications, plaintext for linkedin, and html for ellenberger.zone
    Awesome-o A stateless Slackbot for parsing Trello boards, tracking open source issues, and crawling internal servers to provide a daily digest of to-do's on Slack.

    @University

  • Implemented PintOS kernel (C)
  • TCP Protocol (C)
  • FLang Compiler (SML)
  • Optical Character Recognition (Python)
  • Ray tracing (C)
  • Protein Data Mining (Python)
  • HMM for linguistic analysis (Python)
  • TEC based 3D Ice Printer (G-Code/C++)

    Phone

    Don't call us please.

    Address

    Edina, Northfield, River Falls, and Chicago
    MN, MN, WI, and IL
    United States of America