Click here for raw markdown.
This document is generated by a Kubernetes sidecar running Pandoc.
The source code is available at github.com/jondkelley/python_resume
E-Mail: jonkelley@gmail.com
Website: https://jon-kelley.com/
LinkedIn: https://linkedin.com/in/jonathandkelley/
Keybase Proof: https://keybase.io/jondkelley
¶ Activtrak (Staff Cloud Engineer)
January 2023 - Current
Handles container security and dependency updates across hundreds of container images using SonarCloud and Snyk.
Manages development team requests for IAM permissions following the security model of least privilege and service accounts per container or VM.
Added GCP artifact registry process to CircleCI build & helm scripts for 150 repositories and build pipelines to retire Google Container Registry.
Right-sizes pod resource limits to help optimize costs around pod resource constraints, in combination with right-sizing GCP GKE (Kubernetes) node pools, saving up to $42,000 a year in cloud compute costs.
Migrated legacy Google Cloud VPN tunnels bridging VPCs together in 11 GCP projects with next-gen Google Cloud VPN tunnels while maintaining zero downtime with BGP session transition.
¶ Mezmo (Site Reliability Engineer)
June 2020 - January 2023
Added LinkerD service mesh in Kubernetes for ~70 microservices for pod end-to-end encryption.
Expanded access tools to internal CLI Python client (logdnactl) for better integration into backend systems.
Regularly contributed to internal tooling using the k8s API and pymongo libraries to manage administrative operations across the product.
Built a support dashboard for support to manage and integrated Flask/Rebrow Redis blueprints into the app along with Python-eve (REST toolkit) for full-search MongoORM via REST, secured with python-authlib and OpenIDConnect/Okta for RBAC.
Re-wrote the Ansible integration for LogDNA logging library with new features for customers.
¶ Doximity, Inc. (DevOps Engineer)
May 2019 - May 2020
Built Doximity's first platform under k8s on EKS with Istio using Ansible, Terraform, and Helm charts.
Refactored Terraform across teams using multiple state files with both Jenkins pipelines and Atlantis. Migrated to Terraform module patterns rather than sprawled HCL resources.
Configured Sensu monitoring scripts for production systems.
Wrote and managed cookbooks in Chef as well as the dependencies for patch management and better inspect testing/kitchen tests.
Moved Jenkins jobs from traditional EC2 swarm builders to ECS-based pipelines for better resource utilization/cost savings.
¶ BoomTown! (DevOps Engineer / Site Reliability Engineer)
April 2018 - May 2019
Participated in on-call SRE style rotation for a split Windows/Linux environment.
Worked with common Amazon AWS toolsets such as ECS, EC2, VPC, ELB, SQS, and Lambda.
Served as a subject matter expert and mentor for Linux applications and platform tools.
Managed TeamCity build pipelines along with Jenkins for operational tasks.
Re-tooled container stack for frontend Wordpress product from a 5-year-old shell magic to docker-compose v3 + python-paver build process (for gulp/yarn/phpunit).
¶ Rackspace (Linux Systems Engineer II)
August 2014 - October 2017
Started conversion of 230 or so Jenkins jobs to store them in YAML and re-deploy with a tool called Jenkins Job Builder. This enabled full Jenkins disaster recovery in <1 hour instead of >2 weeks.
Migrated tooling from Puppet2 to Puppet3 with PuppetDB, Hiera, puppetserver, directory environments, and wrote a tool to wrap r10k. Implemented a security-compliant PuppetDB database security model. This reduced complexity and applied missing patterns.
Maintained Ansible modules that allowed storing firewall configurations in git. Built a release pipeline to deploy on git push. This created "working documentation" and a git log to enable instant rollbacks in production environments.
Managed deployment of billing, integration, and pubsub environments for the Rackspace Cloud.
¶ Rackspace (Linux Systems Engineer I)
April 2013 - August 2014
Built continuous integration in Jenkins for 5 new products using a Python API to trigger builds on a build server and cycle app deployments.
Wrote a Python SDK for the build system platform and deployment system so developers could hook, deploy, and release 4 products via REST API from Python CLI, Jenkins, or virtually anything.
Managed staging, pre-prod, and prod environments for a complex Ruby web app used by 6000+ growing employees 24/7 to manage the administrative backends for the world's 2nd largest public cloud.
Managed deployments in a one-click (actually 3 clicks) fashion using Salt and yum repositories to distribute software and configurations.
Moved apps to hosted Mongo service called ObjectRocket to keep in-house operations costs at a minimum.
¶ Rackspace (Linux Systems Administrator III)
March 2011 - April 2013
Worked closely with Cloud integration teams running deployment and maintenance on large-scale backend infrastructure used for the world's 2nd largest public cloud.
Diagnosed complex Linux application and system problems.
Updated and wrote deployment templates and syntax for Puppet/Chef.
Served as a subject matter expert and senior support escalation for Cloud Load Balancers, Cloud Databases, Cloud Compute, and infrastructure.
Designed migration plans for the Cloud identity token API of a multi-node environment. Moved identity database cluster and load balancer stack into a new subnet while performing schema upgrades and a software upgrade dependent on schema changes with record-setting minimal impacting downtime.
¶ Zixcorp (Embedded Device Support Engineer II)
February 2010 - March 2011
Worked in a HIPAA compliant environment dealing with personal data e-mail encryption with well-recognized companies and government agencies.
Worked in accordance with UK data privacy and export laws related to mail administration.
Administered an E-Mail appliance based on Postfix that implemented FIPS-compliant e-mail encryption solutions with SSL failover to an HTTPS webpage-gateway for secure email transmission.
Handled telephone support with customers who located the appliance in their own datacenters, often assisting with network troubleshooting in unfamiliar network environments.
Troubleshot mail flow issues with different network topologies and layouts with dozens of companies daily.
¶ 1-800-Hosting (Linux Administrator II)
July 2006 - February 2010
Planned and executed primary data-center DNS cut-over to use new BIND stack with Linux HEARTBEAT failover. Wrote failover scripts to handle system failure with zero downtime in DNS lookups.
Performed phone and ticket work to meet customer SLA.
Managed OS patching, migrations, and upgrades as professional services to customers.
Worked as DC OPS managing hardware diagnostics, upgrades, and provisioning.
Worked as DC network operations handling switch upgrades, troubleshooting, DDoS mitigation, or disaster recovery.
¶ C I Host (Linux Technical Support 1)
April 2006 - July 2006
Handled Linux Admin tasks for helping customers install and configure software within the hosting environment.
Configured Merchant and other shopping utilities for customers who ordered the software.
Worked in the data center across the street when staffing was low, assisting colo clients as well as responding to NOC escalations.
A showcase of Jenkins configurations and job creation out of the box. Using groovy and the configuration as code plugin, you can create fully viable Jenkins instances on docker.
A showcase of Python/Flask/Jinja2/HTML(5)/Bootstrap/JQuery used to both generate jon-kelley.com and my hardcopy resume.
This command will recursively fetch all logs from the logdna export API. This is useful to get logs beyond the 10,000 line limit as the API does not natively provide pagination.
Built for the Python developer who needs to look into a Redis store. Allows for inspection and deletion of keys and follows PubSub messages. Also displays some runtime and configuration information.
Simple tool to locate Cisco IP/ARP and display results. Useful for small to medium datacenters (1-100 network devices)
This was created to monitor HTTP / REST Endpoints under Zabbix.
This was created to expose a REST API for a relay board microcontroller so we could build light-based alerting systems while at Rackspace.
Based on the python behave features this project emulates a cucumber style syntax to run HTTP API tests and is able to forward the messages to ELK stack. This uses a language called Gherkin to make plain-english QA testing a breeze.
I made this repo because I keep encountering quick environments setup / breakfix I need from time to time.
Document generation time: 2024-10-10 14:56:38.153938 (UTC).
Document UUID: e03615ea-a25d-4b85-b2d8-57287545db3a