Phone
(312) 379-9703

Senior software developer with over 20 years of experience. Recently my focus has been on APIs, distributed databases, data ingestion, and high performance data access. I enjoy free and open source software and coding on Linux. DevOps and network/system administration have always been an important aspect of my projects.

GitHub

Bank of America November 2016 — Now

Director/Senior Engineer (CMDR)

CMDR is BofA's official market data API and store. It's built on globally replicated distributed databases, messaging systems and APIs. Data is streamed live and read historically by compute grids, front end applications and a variety of other heterogeneous systems around the world. CMDR uses a high performance, fault tolerant service mesh to integrate our microservice architecture and meet demanding performance and reliability requirements.

Highlights

  • Lead Developer and Architect
  • Go, Python, Java
  • Distributed Database and API Design
  • Envoy based service mesh
  • gRPC and REST APIs
  • DevOps
  • HBase, Kafka, NATS
  • Millions of time series
  • Millions of ticking K/V items
  • Billions of requests per month
  • Trillions of data points

Bank of America June 2012 — November 2016

VP/Software Developer (Guts1)

Guts1 is BofA's first generation, unified, cross line-of-business, market data capture and distribution system. The project includes ZeroMQ-style API gateways and services, a client-side C library with bindings for many high level languages, an admin UI and lots of tools.

Highlights

  • Lead Developer, Architect
  • Python, Java, R, Node, C, C++, .Net, NodeJS
  • HBase
  • ZeroMQ
  • API design
  • API gateway
  • S3 based UI
  • Language bindings for Python, Perl, R, Java, .Net and q

Bank of America January 2010 — July 2013

VP/Software Developer (Streamd)

Streamd is a trade and market data capture system that records millions of events daily from BofA's FX trading platform and other trading and market data sources. Quants use the collected data to enhance trading strategies (ex: avoid front-running counterparties).

Highlights

  • Lead Developer, Architect
  • Perl, C, q
  • kdb+
  • Non-blocking I/O
  • Perl bindings for kdb+
  • q bindings for ZeroMQ
  • C / ZeroMQ client side programs for collecting data
  • valgrind

Bank of America January 2009 — December 2011

AVP/Software Developer (Spider)

Spider is an ETL system with a YAML DSL for describing dataflow DAGs. It's self documenting and highly debuggable with each ETL job's DAG able to record details and data as they occur at various points in the job graph. I started and led the project for its first few years.

Highlights

  • Project Founder
  • Modern Perl
  • Moose
  • YAML
  • Meta Object Protocol
  • Perl Best Practices

Bank of America April 2007 — January 2009

AVP/Software Developer (CASTLE)

CASTLE is a corporate actions processing system built on J2EE tech popular at the time. My role was to integrate new UI strategies and automate the sending of payments in response to specific corporate action events.

Highlights

  • Full Stack Developer
  • Swift Payments
  • Spring
  • Hibernate
  • IBM MQ
  • Perforce
  • Sybase

Bank of America September 2004 — April 2007

AVP/DevOps (Advantage Middle-Office)

Advantage was BofA's primary trading platform. Initially my role was in DevOps and support for the middle-office PnL and Risk grid computing components. I moved into a software development role developing DevOps tools. I wrote "Process Controller" which does process supervision and startup/shutdown coordination of the entire distributed application. It's still in use today.

Highlights

  • DevOps & Tools Developer
  • Perl, Javascript
  • System Adminstration

XL Capital January 2000 — September 2004

Sys Admin

XL Capital is an issurance/reinssurance company. I started as a Junior Unix administrator at a small insurance company and progressed steadily through acquisition and restructuring to become the lead Unix admin for the US data center.

Highlights

  • Unix Systems Administrator for Solaris, HP-UX and Redhat (RHCE)
  • DNS Admin
  • Cisco Router and Firewall Admin (CCNP)
  • Wrote drivers for the Pick Operating System

Fermi National Accelerator Laboratory May 1997 — December 1999

Intern

Fermilab is America's particle physics and accelerator laboratory. I worked there as an intern/summer student where I built networks, maintained GNU/Linux servers, and participated in several development projects.

Highlights

  • Python and sysadmin work for DZero's SAM project
  • Wrote a document management web app for the Technical Division
  • Installed Ethernet networks

Languages

  • Go
  • Java
  • Python
  • Perl
  • Javascript
  • C

APIs

  • gRPC
  • REST
  • Envoy

Software Development

  • Distributed Computing
  • Distributed Databases
  • Network Programming
  • SDLC
  • HDFS
  • HBase
  • ZeroMq
  • Apache Arrow
  • Technical Writing
  • React

Development Environment

  • git
  • neovim
  • Linux
  • zsh
  • tmux
  • i3

DevOps

  • Linux
  • Ansible
  • Grafana
  • OpenTSDB
  • Jenkins
  • eBPF
  • pcap / tcpdump
  • Instrumentation and Observability

Soft Skills

  • Technical Writing
  • Leading teams
  • Mentoring

University of Illinois August 1997 — November 1999

Computer Science (incomplete)
Bachelors

Gardening

Cooking

Free and Open Source Software

Exploring Colorado

Renewable Energy