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.
Bank of America November 2016 — Now
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
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
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
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
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
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
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
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