Languages: Python, Unix shells, Perl,
C
Tools: Unix/Linux tools, Jenkins, CircleCI,
RightScale, Docker, Phabricator, Ant, javac, gcc, Perforce,
git, CVS
Environments: Linux, Unix, Windows, AWS, Web,
TCP/IP networking
|
Professional Experience:
Release Engineer Nextdoor.com, San Francisco,
California, 2014-2016
Built automated release
systems for Nextdoor's Web service and for its Android and
iOS apps.
This automation read and
wrote data using the APIs for the services used for
Nextdoor's development process (git, Jenkins,
JIRA, Kingpin) The tools performed branch
cuts, builds, and deployments to staging and to production
environments.
Rationalized dependency
management for Ubuntu packages, for Python packages, and
for NodeJS packages. This centralized resource management
across all environments: development, testing, and
production.
Ported the development
environment to use docker-compose to emulate
Nextdoor's service-oriented architectore on a developer's
laptop.
Automated installation and
configuration of developer tools.
Release Engineer Google, Mountain View,
California, 2003 - 2013
Helped guide the growth of
Google's release engineering team from four people to forty
people, now supporting self-service automated releases of
thousands of programs.
- Tech lead and strategist
-
Saw the big picture of what Google needed from
Release Engineering, and led the team in filling
these needs.
Hands-on tech lead for Billing and
Internal Systems. Ensured that customer needs were
met. Helped team members focus on automating release
tasks so these could be made routine and be handed back
to the development teams.
Reached out to partner teams to identify new
requirements and upcoming changes in the development
infrastructure, and planned and executed responses to
these changes. Negotiated with other teams over what
they needed from Release Engineering and what Release
Engineering needed from them.
One of the founders of a release tools
development council and a release best practices
committee.
- Compliance: SOX, SAS70/SSAE 16, and PCI
-
Designed, documented, and implemented release best
practices to support compliance to the software delivery
parts of SOX and SAS70. Trained release engineers and
internal development teams how to think about compliance.
Explained Google's development, release, and
production procedures to internal and external auditors
and used their feedback to refine those practices.
Wrote reference documents and trained release engineers
how to build compliant release processes.
Designed and built an archive to securely store
the release metadata that was needed for SOX and SAS70
compliance.
Designed a system to provide self-service releases
of products that were in scope for audits, and secured
approval from the auditors. This allowed development
teams to perform their own releases and allowed Release
Engineering to support more development teams.
- Individual contributor
-
Performed releases for many products. This began with
documentation of manual processes and evolved into
building processes that were progressively more fully
automated.
Wrote a release automation framework and tools to
automate release tasks. Maintained and extended
release frameworks, tools, and libraries.
- Source control
- Worked in the intergrouplet that ran the source
control system. Wrote source control tools that were
used by all of Engineering. Helped hire the source
control team and mentored them.
- Sustaining contributions
- Served on hiring committees and promotion
committees. Mentored Googlers on how to get promoted
and on how to achieve career goals. Wrote a course to
show new hires how to use Google's source control system
and tools, and taught it many times.
Build and Release Engineer diCarta, Inc., San
Carlos, California, 2003
- Release engineering
-
Improved the automated build and test system so
developers had timely test results on all code lines.
Re-wrote build scripts for better portability and for
better error handling.
Maintained and extended the product's installation
scripts.
Built an automatically-updated internal Web site
that showed the status of all active builds, tests, and
releases.
- Source code management
- Built a code management scheme and tools to support
parallel development for all of the company's
development, including new products, maintenance of
previous product versions, and customization
projects.
Lead Engineer, Software Infrastructure Safeweb,
Inc., Emeryville, California, 2002 - 2003
- Release engineering
-
Put a software life cycle management process into
place, using continuous integration and automated build
and test.
Implemented a code promotion system that allowed
individual features to be added to the release codeline
only when they were complete and fully tested. Did
this with CVS triggers, Bugzilla, and Bonsai.
- Development
-
Modified the appliance's upgrade process for better
reliability and less support overhead.
Wrote software to support a new device on the
appliance.
Lead Engineer, Software Infrastructure Acero,
Inc., Palo Alto, California, 2001 - 2002
- Release engineering
-
Developed tools, performed builds and releases,
developed installers, and deployed software internally.
Streamlined and coordinated development for server
developers and client application developers. Built a
branched code management scheme under VSS that
made it easy to reproduce any version of the
product.
Documented tools and processes using the style of
an ISO 9001 quality system.
- Source code management
- Evaluated products to choose a new source control
system to be used by all of Acero's software developers.
Collected requirements, condensed them into selection
criteria, and presented the top candidates to the
stakeholders.
Education: BS and MS, Geology,
Stanford University
|