Resume
Email: evandbrown@gmail.com
Website: http://evanbrown.io
Phone: (206) 947-9338
Twitter: @evandbrown
GitHub: evandbrown
Summary
I've deployed software in rural Tanzania in search of a malaria vaccine, built APIs and infra in the cloud for an IoT startup before cloud and IoT were cool, and led developer advocacy programs for CloudFormation and Elastic Beanstalk at Amazon Web Services. I currently work at Google as a Senior Cloud Solutions Architect. In my free time I ride bikes, play with my daughter, and write tools in Go.
Work
Senior Software Engineer, Google
January 2015 - present
I contribute to leading open source software projects on behalf of Google to make Google Cloud Platform a first-class option for customers who use that software. I lead the development of CloudFoundry and Terraform integrations, focusing on Go, distributed systems, and infrastructure automation tooling.
Senior Cloud Solutions Architect, Google
September 2014 - December 2015
I help customers run large-scale, reliable applications on Google Cloud Platform by working with engineers and architects to design, build, optimize, and operate infrastructure in the cloud. My specialties are systems automation, security, and migrating workloads to container-based deployments. In addition to helping customers build and deploy applications, I publish technical solutions and open source reference architectures to provide guidance and best-practices to a large audience.*
Open source contributions at Google
The Go build system: Added Kubernetes support to the Go build system. CL 15285 added support for cancellation and deadlines with the
golang.org/x/net/context
package. All CLs are available at https://go-review.googlesource.com/#/q/owner:evanbrown%2540google.com+status:merged. I gave a talk on this work at the inaugural KubeCon 2015.The
dm
tool: I created and maintain thedm
tool for Google Cloud Platform’s Deployment Manager service. Written in Go,dm
is a tool with an opinion (not unlikerake
ormake
) that makes managing large-scale cloud infrastructure not only efficient but fun.packer
: Contributions to improve OAuth and service account for support when runningpacker
on GCE. https://github.com/mitchellh/packer/pull/1679Continuous delivery with Jenkins and Kubernetes: A reference implentation for running a continuous deployment pipeline with Jenkins and Jenkins Workflow on Kubernetes. https://github.com/GoogleCloudPlatform/continuous-deployment-on-kubernetes
GCE internal load balancer: A reference implementation for running autoscaled HAProxy on GCE. https://github.com/GoogleCloudPlatform/compute-internal-loadbalancer
SSL proxy for Kubernetes: A reference implementation for running an SSL-terminated reverse proxy on Kubernetes. Currently top search result for kubernetes ssl. https://github.com/GoogleCloudPlatform/nginx-ssl-proxy
Automated GCE and Docker image builds: A reference implementation for continuously building VM and Docker images. https://github.com/GoogleCloudPlatform/jenkins-packer-agent
Scalable, resilient web apps on GCE: A reference implementation for deploying web application on GCE. https://github.com/GoogleCloudPlatform/scalable-resilient-web-app
Senior Technical Program Manager, Amazon Web Services
May 2011 - August 2014
I joined AWS as the company’s first technical trainer. I developed the flagship Architecting on AWS course, trained over 1400 customer and partner engineers, and led internal train-the-trainer efforts to scale a global team of more than 20 trainers. I served as the principal trainer for AWS’s key customers, inluding Intuit where I was the only technical trainer to receive a company-wide perfect evaluation.
In 2013 I moved internally to lead developer advocacy programs for CloudFormation and Elastic Beanstalk. I designed and built the first prototype of Docker support for Elastic Beanstalk, and helped drive it to release, marking the first official support for Docker at AWS. I was a regular conference speaker and held weekly live Hangouts covering technical material and answering questions.
Lead Software Engineer, Founding Team, Enmetric Systems
February 2008 - April 2011
As the first software engineer on the founding team, I built the API for Enmetric’s first product: a connected powerstrip that reports realtime energy usage metrics and can be controlled (plugs turned on and off) remotely. I was a strong advocate for cloud and automation from the first day. All production systems were deployed to EC2 and used S3 and Hadoop for data processing. New features were adopted as they were released by Amazon, including ELB and EBS.
I led the effort to embrace configuration management, choosing Chef as the tool to automate the build of all Amazon Machine Images used in the infrastructure. This allowed us to use Auto Scaling easily when it was released, and implement A/B tests long before they were en vogue.
Bioinformatics Programmer, Center for Infectious Disease Research
August 2005 - April 2011
Developed a proprietary laboratory management system (LMS) for the Center’s Malaria Vaccine Initiative. The system used web services (Java and Spring) hosted in Seattle data centers and client software (Java Swing) deployed in Tanzania to record and track human tissue samples stored in the Tanzanian lab. Developed offline storage technology for client-side piece as power and network connectivity were spotty in remote labs. Guided FDA 21 CFR Part 11 audits to ensure compliance with good clinical practices.
Developed several internal business systems, including a .NET (C#) web application using MVC to calculate payroll distributions, as well as a system for managing billing for the Center’s gene sequencing facility.
Network Administrator, The University of New Mexico Hospital
May 2001 - July 2005
Designed, developed and deployed intranet web applications (PHP) for ranking and evaluation of Medical Doctors in residency and fellowship programs. Administered Novell Network, Active Directory, and LDAP implementations for several clinical departments in the hospital. Manage DNS and marketing websites (including LAMP stacks) for several clinical departments in the hospital.
Education
University of New Mexico - B.S. in Biology and Chemistry
2001 - 2004
GPA: 3.92
Awards
Operational Excellence, Amazon Web Services
Received quarterly award (a fire extinguisher) by AWS SVP Andy Jassy for engineering operational excellence.
AWS Certified Solution Architect (Associate, 2013)
Open Source Projects and Contributions
dm
Golang. Author and maintainer. An opinionated tool for using the Deployment Manager service from Google Cloud Platform.
golang.org/x/build
Golang. Contributions to support automated build and test of the Go language on Kubernetes.
Packer
Golang. Security contributions to GCE support in Packer.
aMediaManager
Java/Spring. Primary author. Reference application for the Develop, Deploy, and Manage Applications at Scale Kindle book, using CloudFormation, Elastic Beanstalk, S3, Elastic Transcoding Service, VPC, IAM, and other core AWS services.
Speaking and Technical Talks
Go, Build it on a Cluster
KubeCon, 2015
High Fidelity, High Velocity Deployments in the Cloud
DockerCon, 2014
Deploy, Manage and Scale Your Apps with AWS OpsWorks and Elastic Beanstalk
AWS Summit, 2014
Zero to Sixty: AWS Elastic Beanstalk
AWS re:Invent, 2013
Publications
2016
Autoscaled Internal Load Balancing using HAProxy and Consul on Compute Engine
Primary author
2015
Automated Compute Engine and Docker Image Builds with Jenkins, Packer, and Kubernetes
Primary author
Scalable and Resilient Web Applications on Google Cloud Platform
Primary author
2014
Develop, Deploy, and Manage Applications at Scale
A Kindle book based on a comprehensive 5-part blog series covering best practices for automating complex infrastructure using CloudFormation and Elastic Beanstalk. Primary author.
Blog Posts
2015
Automating Configuration Management with Google Cloud Deployment Manager and Puppet
Automated Compute Engine and Docker Image Builds with Jenkins, Packer, and Kubernetes
Migration and Beyond - Opportunities around Windows Server 2003 EOL
2014
Customize Ephemeral and EBS Volumes in Elastic Beanstalk Environments
Locally Packaging Gem Dependencies for Ruby Applications in Elastic Beanstalk
Develop, Deploy, and Manage for Scale with Elastic Beanstalk and CloudFormation (Part 1, Part 2, Part 3, Part 4, Part 5)
Using DynamoDB and SNS with Elastic Beanstalk in any AWS Region
2013
Skills
- Advanced - Infrastructure Automation (Terraform, Packer, Vagrant, Consul, AWS CloudFormation, Google Cloud Platform Deployment Manager, Jenkins)
- Advanced - Amazon Web Services (CloudFormation, VPC, IAM, EC2, S3, Elastic Beanstalk)
- Advanced - Google Cloud Platform (Compute Engine, Container Engine, Cloud Storage, EC2, S3, Elastic Beanstalk)
- Advanced - Go (Golang)
- Advanced - Git (except bisect)
- Intermediate - Chef and Puppet
- Intermediate - Java
- Working Knowledge - Python, .Net, and Ruby