I have deep experience in web services, relational databases, batch data processing pipelines, and the support systems needed to deploy, maintain, and secure them.
While I've performed many different operations duties over the years, I now primarily write software, whether that be customer-facing, admin-oriented, or fully automated.
I'm comfortable leading or taking direction, but in all situations I want to be learning, improving and when possible teaching.
Software Engineering Consultant
At Spantree we write greenfield web services for small to medium-sized companies before they have an internal dev team.
I have also been in embedded in clients' tech departments, modernizing legacy systems and teaching new approaches.
- Build REST and GraphQL APIs in Kotlin, Node.JS, and Go
- Build and enhance data pipelines leveraging Apache Airflow, Apache Spark, Pandas, Papermill (Jupyter executor), SnowflakeDB, S3 and more
- Participate in GV-style design sprints, DDD-style event storming, and XP-style technology spikes to kick off new development efforts
- Declare desired system architecture with Terraform, Helm, and Serverless frameworks
- Define Docker images for consistent code execution across environments
- Wrap technology-specific build tools with Make and/or Jenkins files to ease continuous integration
- Contribute data-oriented React components to front-ends
DevOps Technical Lead
One of three founding engineers in this software/consulting data analysis firm. At times focused on client work, at others contributing to our core web application codebase, my responsibilities eventually settled on leading our technical operations.
I instituted a culture of continuous improvement, configuration as code and shared responsibility. We tackled diverse challenges with agility, while maintaining an obsession with data security and quality.
- Built a cloud-based technical infrastructure from zero to millions in billing.
- Implemented an API-only, version-controlled, 100% peer-reviewed configuration process for all production systems, using git, Ansible, CloudFormation, cloud-init and several Linux distribution package managers.
- Facilitated continuous delivery using SaaS and open-source tools, including Capistrano, Docker, Packer, CircleCI, systemd, and supervisord
- Instrumented systems for active and passive monitoring and actionable alerting with tools like PagerDuty, CloudWatch, DataDog, SumoLogic, statsd and Elasticsearch/Kibana.
- Information security responsibility for all products and services.
- Managed the company-wide HIPAA and SOC 2 certification processes
- Fostered a culture of living documention of procedures, with all team members actively following and editing our Confluence wiki.
- Contributed to Ruby, Java, and Python application codebases, particularly our Rails monolith
Administered both the core web services application database (MySQL) and the analytics database cluster (Vertica).
- Performed regular maintenance, tuning, backups, recovery and capacity upgrades of production analytics cluster, under heavy and increasing load.
- Managed the live sync of data from disparate transactional database to Vertica.
- Constructed ETL pipelines and data models in order to, for example, improve the campaign donor pipeline.
- Provided round-the-clock support for system availability issues.
- Performed complex data processing to aid analysts in answering key leadership questions
Data Analyst / DBA
Worked for a large national litigation firm as an analyst and database administrator in their electronic discovery practice.
We were responsible for facilitating all technical aspects of electronic evidence management for our partner attorneys.
- Performed complex data transformations of (often dirty) tabular data, primarily via SQL and regular expressions.
Litigation Support Analyst
My role here was similar to Seyfarth. Debevoise was foundational in one respect: the department's insistence on accuracy set my professional standards for work product high.
- Wrote and administered training modules to onboard new peer colleagues.