Profile of a problem solver.
I am a skilled technologist with experience in software development, cloud technologies, and networking. I bring depth and breadth of understanding to my work and have a knack for devising creative solutions using everything from industry standard tools to finding a use for whatever is on hand.
The advantage I rely on to achieve results is systems analysis. I am interested in how things work and am fascinated by how individual components fit together in complex ways.
My approach to success begins with familiarizing myself with the internals of systems and using that to my advantage while clearly communicating my findings. I excel in problem resolution roles and am most engaged when no one is sure exactly how to proceed.
Technologies with which I have professional experience.
- Bash, sh
- C / C++ / C#
Platforms and Environments
- Kubernetes, Docker, ECS
- cert-manager, ArgoCD, external-dns
- Helm, jsonnet, kustomize
- Terraform, Atlantis, Packer, Vagrant
- Jenkins, CircleCI, Drone, Cloudbuild
- Saltstack, Ansible, Chef
- Boto3, google-cloud-python, Fabric
- MySQL, PostgreSQL, Amazon Aurora, RDS, CloudSQL, DB2
- DynamoDB, Cassandra, BigQuery
- Prometheus, Grafana, Stackdriver, Cloudwatch, Datadog
- SQS, Google Pubsub, Kinesis, RabbitMQ
- Istio, Envoy, ELB/ALB, Google L7 and L4, nginx, Apache
- GCS, S3, AWS EBS, Google PD, K8S PV's
- Gunicorn, uWSGI, PHP-FPM, Tomcat, PhusionPassenger
Experience has allowed my to sharpen my skills.
Descartes Labs Santa Fe, NM 2018 - 2021, Site Reliability Engineer
Brought on to help scale an established SaaS product. Designed and implemented a hierarchical Terraform repo to capture new prod/stage environments for core services, maximize operator confidence, and reduce code duplication.
Migrated a greenfield prototype project from a free-form dev enviroment using Google's managed Istio to a full IaC environment using OSS operator based Istio reducing version churn and gaining greater control over our service mesh.
Gained deep familiarity with GCP, in subtle areas such as IAM, GKE, and IAP to name a few. Partnered with Google solutions engineers to develop a GCS storage class management tool which delivered significant cost savings in our cloud storage bill.
Cisco (OpenDNS) Vancouver, BC 2017 - 2018, Senior Software Engineer
Part of a team responsible for delivering a managed Kubernetes service as part of an internal cloud platform. Designed and delivered managed clusters integrated with several other internal services for authentication, networking, and secrets.
Identified key metrics and events to track for monitoring and alerting, wrote runbooks, and participated in on-call rotation.
Worked with users new to Kubernetes to help them get started with essential concepts, understand how to structure their deployments, and use community standard tools like Helm.
Librato (SolarWinds) Vancouver, BC 2016 - 2017, Site Reliability Engineer
Part of an IP acquisition of technology and personnel. Joined the operations team and began building the groundwork for a product unifying distributed tracing technology with metrics monitoring.
Designed, documented, and implemented cloud infrastructure using Terraform and Saltstack and integrating with existing chatops and internal operations APIs.
Continued to participate in operational on-call support of legacy systems.
AppNeta Vancouver, BC 2015 - 2016, QA Engineer
Hired as the first dedicated QA staff for a distributed tracing system for web applications.
Worked closely with the development team devising test plans, verifying bug fixes, and evaluating features.
Devised techniques for generating complex test data by both emulating and replicating distributed systems designed to model our users environments.
Automated the creation and deployment of test environments and test applications using Chef, Terraform, and Consul.
Participated in on-call ops rotation carrying the pager and handling production incidents.
AppNeta Vancouver, BC 2013 - 2015, Technical Support Engineer
Hired as the first dedicated support staff for a distributed tracing system for web applications.
Directly involved in getting new users up and running with a sophisticated monitoring product in their unique environments using our supported components, including the most popular web servers on the internet, any one of a half dozen supported programming languages, and countless web app frameworks and toolkits.
Worked on all aspects of customer support from liaising with technical writers to keep documentation accurate, to devising and iterating support processes, to maintaining and improving support tools and infrastructure.
Gained familiarity with common web app components along the way such as popular message queues, app servers, frameworks (front-end and back-end), middleware, virtualization and containerization tools.
Conducted frequent internal and external training on product use, internals, and debugging techniques.
Discovered and thoroughly documented several critical security issues.
RBC Toronto, ON 2009 - 2012, Technical Systems Analyst
Automated code rollouts and maintenance of fifteen test environments for a large transaction processing application resulting in a nearly fifty percent reduction in testing time.
Ran and documented frequent software tests involving the integration and validation of new components, organization and upkeep of test data, cataloging of reports, and problem resolution.
Ensured changes met design criteria and worked with application developers, business analysts, and clients to maintain application stability.
Designed and built a prototype application modeling tool to quickly diagnose faults, find bottlenecks, and determine the effect of failures at any given point in the system.
Involved in dozens of implementations from testing deployments and backouts through to on site execution, working with both the development team and production analysts.
RBC Toronto, ON 2005 – 2009, Production Analyst
New responsibilities included covering off hours maintenance, training new analysts, and cross checking implementations and reruns performed by other operators.
Designed and built a framework for automating mass code changes in a production environment which resulted in a savings of over one hundred thousand dollars in work months in the first year of use.
Initiated the development and implementation of several automation projects, including a bulk data transmission interface, and the automating of ASG-Zeke operator commands.
RBC Toronto, ON 2004 – 2005, Assistant Production Analyst
Monitored batch flows in a 24/7 operations center.
Performed diagnosis and correction of errors, batch maintenance, log analysis, and thorough documentation of operational events.
Worked with application developers and application coordinators to solve problems and increase efficiency.
Ontario Die Company Ltd. Waterloo, ON 2003 - 2004, Network Administrator
Contracted for a complete upgrade of all network services, including network switching hardware, new database software (Microsoft Navision), upgrades to punch clock hardware and software used in an industrial fabrication facility, new drafting workstations and CAD software.
Integrated new systems with Smarteam group management software backed by a new data vault.
Built and maintained a multi-layered email filtering system resulting in an over ninety percent reduction in unsolicited commercial email, and a similar reduction in inbound email borne viruses.
Involved in support for remote facilities, including remote administration, travel for on-site upgrades, data backups and recoveries for offices in the US and support for all local staff.
References available upon request.