Dave Henderson's Resume
Passionate about networking, cloud infrastructure, containers, monitoring, and writing the code that ties it all together.
firstname.lastname@example.org | @hairyhenderson | hairyhenderson | dhenderson
Senior Software Engineer, SRE
October 2017 - present
I help people design, deploy, scale, and observe distributed services.
- deployed and configured a number of Prometheus servers to gather metrics across regions and environments, including global per-environment federation
- worked with leadership to help the team implement various SRE best practices recommended by Google's SRE book
- introduced Service Level Indicators and Objectives (SLIs/SLOs) to the development organization, and provided guidance on finding reasonable SLOs
- worked with management and team to implement (and participate in) a regular rotating on-call schedule
- helped to plan and deploy a set of Kubernetes clusters to run Qlik's next-generation cloud services
- developed and open-sourced a library to expose common metrics to Prometheus - https://github.com/qlik-oss/http-metrics-middleware
- wrote a Prometheus exporter to expose more metrics from Docker Swarm
- helped establish a Launch Coordination process, and collaborated continually with service owners and developers
- established a regular "Metrics Office Hours" forum for cross-team sharing and discussion around our metrics strategy
- helped establish patterns for auto-scaling of services
- [hackathon] built a Raspberry Pi-based LED GitHub notification indicator
Senior Software Engineer, Qlik Cloud
June 2015 - October 2017
I helped transform qlikcloud.com with infrastructure-as-code, immutable containers, and distributed microservices.
- helped launch the early iterations of https://qlikcloud.com
- brought 19-hour production deploy cycles down to a few minutes, with an immutable Docker container-based approach
- simplified and solidified our cloud infrastructure by introducing declarative infrastructure-as-code to the site (Terraform, shell scripts)
- helped to interview and assess dozens of candidates
- migrated the single-node Elasticsearch deployment to a multi-node AWS-hosted ES cluster, deployed GitHub-SSO-protected Kibana (ELK)
- created a simple container management system with Packer, Terraform, and shell scripts
- helped split the monolithic service into separate microservices. Extracted packages and libraries for common concerns. (Node.js)
- helped to deploy and manage a highly-available Vault cluster for secret management. Integrated Vault support into a number of services. (Vault)
- deployed Prometheus for monitoring, and started instrumenting services with common and custom metrics and alerting
- deployed and managed Docker Swarm (with Docker for AWS) and started migrating services
- advocated Go to Qlik R&D as a viable alternative to Node.js for new services and tooling
- [hackathon] built a Raspberry Pi-based Slack-enabled physical "traffic light" to display the current state of the production site
May 2018 - May 2015
I joined IBM when Cognos was purchased in 2008.
Worked on building the cloud architecture and technical foundation for IBM Watson Analytics.
- Worked on building the cloud architecture and technical foundation for IBM Watson Analytics (WA)
- Introduced log aggregation and analysis technologies, and developed dashboards to help other developers diagnose and correct software issues
- Integrated a 3rd-party monitoring service to help other developers and operators get a handle on performance, availability, and be notified during outages
- Introduced Docker as a development and deployment technology
- Socialized Docker and associated tools to other developers, and encouraged a grass roots project-wide effort to "Dockerize" all components
- Transformed the deployment strategy to enable the team to do zero-downtime continuous deployment using rolling upgrades instead of the previous strategy where upgrades could only be done during pre-planned maintenance windows
- Contributed code and bug fixes across a number of the WA components
- Contributed to various open source projects to provide bug fixes or features useful to WA.
I worked on Test as a Service, an internal project.
- Worked on the next generation of test automation software for the cloud. Designing and implementing multiple services with RESTful APIs, implementing fully-automated infrastructure using Chef.
I worked on internal automated test tools.
- Helped to lead development of an Eclipse RCP-based test automation tool for test authoring, execution, and analysis
- Worked on technology-agnostic keyword-driven test automation engines
- Continued development of software written at Cognos to automate installation, configuration, and testing of Cognos BI products.
- Helped to bring in Agile and DevOps principles to our team, creating and maintaining a continuous integration and deployment system based on Jenkins
Quality Control Analyst
Apr 2005 - May 2008
I worked on internal automated test tools.
- developed and executed automated tests for Cognos 8 BI releases
- created frameworks to automate installation, configuration, and testing of Cognos 8 BI releases
The IT Department
Senior Internetworking Engineer
1999 – Apr 2005
I helped small and medium-size businesses with their IT needs.
- built firewall appliances
- installed and supported networking solutions for small to medium-sized businesses across Canada and the US
- deployed inter-site VPNs for customers
- developed software and processes to allow IT Department help desk staff to remotely manage and troubleshoot customer issues
- managed the help desk
Tech I've Worked With
- Docker Machine
- Docker Swarm
Some Projects I've Contributed To
Some Projects I've Created
- gomplate - a command-line template rendering tool written in Go, supports a large number of datasources. Used by a number of organizations worldwide, user base estimated at ~3000
- jiraprinter - a tool to help bridge the gap between work tracked in Atlassian JIRA and physical scrum meetings
- go-onerng - Go interface to the OneRNG open hardware random number generator
Docker Ottawa Meetup Group
Apr 2016 – present
I'm one of the organizers of Ottawa's Docker Meetup group. I've helped organize most of the events and often deliver talks on various Docker- and containerization-related topics.
Slides from many of my talks are available here.