Charles R. Karish

Palo Alto, CA 94301 (650) 283-7864

Release engineering Process automation Team leadership

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, 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.

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