John Ewart

john@johnewart.net

Summary

Software engineer, author, consultant and teacher with over a decade of experience architecting and developing software and technology ranging from low-power embedded sensor networks to large distributed systems used to deploy software millions of times per week. In addition to my experience with technology, I have over eight years of experience teaching at the University of California, California State University and local community college systems and have written a number of books on technical subjects.

Recent Experience

Adjunct Faculty

January 2016 - Present
Northeastern University, Seattle, WA

Responsible for design and delivery of courses at Northeastern University’s computer science department targeting students seeking an MS in Computer Science. Topics include: building software as teams, web services, service-oriented architecture, continuous delivery and deployment, API design and building software at scale.

Senior Software Engineer

July 2016 - Present
Amazon.com, Seattle, WA

I work on Alexa; unfortunately this means I probably can’t tell you much about what I’m currently building. During the day I spend a lot of time doing design, architecture, code reviews, mentoring newer team members and working across organizations to help deliver awesome experiences for customers using Alexa powered devices.

Senior Software Architect

October 2015 - July 2016
Egencia (an Expedia Company), Bellevue, WA

As a senior software architect my role is to ensure that our organization is making the right technical decisions to enable our teams to deliver quality, performant software. Things I work on include:

  • Ensuring teams expose consistent APIs in their services
  • Migrating our monolithic applications to a service-oriented architecture
  • Building prototypes and proofs of concept for teams
  • Rolling out advanced continuous delivery pipelines for faster and more reliable deployments
  • Automating infrastructure management and configuration with Terraform and Chef
  • Training engineering staff on a variety of topics
  • Shepherding our migration to AWS
  • Researching and approving technology adoption

Senior Software Engineer

January 2015 - October 2015
Amazon.com, Seattle, WA

I worked in the Kindle organization supporting Goodreads, the social book recommendation site. I was on the catalog and tracking team responsible for managing Goodreads’ collection of books and helping customers track books that they have in their library or want to read in the future. Things I worked on included:

  • Driving our migration from a monolithic application to a service-oriented architecture
  • Building new data services to manage bookshelves for over 30 million readers on both the web and Kindle tracking billions of data points
  • Providing leadership and mentoring to other engineers
  • Improving development processes and deployment strategies to increase productivity and site reliability

Senior Software Engineer

July 2014 - January 2015
Chef (formerly OpsCode), Seattle, WA
  • One of two primary developers of Chef’s provisioning system
  • Developed drivers for AWS, Docker, Azure and PXE-boot bare-metal
  • Responsible for roadmap planning, building new features, supporting new platforms, and writing documentation and training material
  • Helped other developers learn how to contribute to chef-metal

Senior Software Development Engineer

May 2013 - July 2014
Amazon.com, Seattle, WA
  • Worked on a distributed, scalable system for deploying software to nearly a million legacy and cloud hosts, millions of times per week across the globe
  • Worked on scalability, reliability and regionalization of the deployment system, which was critical to the success of Amazon’s retail website
  • Built new data services and simplified overall architecture where possible
  • Architected and developed new backend services for public AWS offerings
  • Lead the effort to build cross-platform development tools for achieving consistent and reproducible builds
  • Helped to develop and deliver training material to new hires, as well as existing teams and subsidiaries, both locally and internationally
  • Mentored other developers and interns

Freelance Developer and Consultant

2002 - Present

Recent projects include:

  • Infrastructure configuration, management and scalability using Chef and AWS
  • A geospatial application framework using Django, PostgreSQL, PostGIS, HTML5, OpenLayers and Backbone.js
  • Geospatial applications for customers ranging from government entities to fishing enthusiasts
  • An iOS application for location-aware, automated, time tracking
  • High-performance Flash charting components for radio spectrum testing equipment
  • Geographically distributed data-collection and alarming system for wireless sensor nodes using cellular networks
  • Large-scale sensor data processing using Hadoop, Pig and Hive
  • Enabling customers to better manage software development, deployments and infrastructure with tools such as Chef, Jenkins and GitHub

Software / Infrastructure Architect

October 2012 - May 2013
UpCity (previously DIYSEO) Chicago, IL (remote)
  • Re-architected a monolithic Rails application to use a service-oriented architecture
  • Responsible for monitoring, infrastructure planning and capacity management
  • Built data and web-services and APIs using Ruby, Java, Riak and MySQL
  • Automated system provisioning and infrastructure management
  • Increased visibility into application performance
  • Performed day-to-day systems administration

IT Manager

March 2012 - October 2012
Superior Court of California, Merced
  • Oversaw a team of support staff who were responsible for desktop support, networking, technology infrastructure, e-mail and A/V support
  • Managed department budget and consulted with court executives on technology projects
  • Procured equipment and software for new and existing projects
  • Responsible for requirements gathering, architecture and development of a number of in-house applications to help optimize day-to-day court operations
  • Managed technical operation of virtualized infrastructure
  • Automated deployment of software and provisioning of systems
  • Participated in state-wide projects designed to set the technical direction for the Superior Court of California
  • Hired and trained new employees

Senior Software Engineer / Architect

March 2010 - February 2012
Cramer Development, Inc., Iowa City, IA (remote)
  • Architected, developed and maintained Ruby on Rails applications
  • Provided technical direction for internal projects as well as client-based projects
  • Performed system administration and operations tasks using Chef, Ganglia, Munin and Nagios
  • Oversaw hiring of new technical talent
  • Mentored other engineers

Software Engineer

April, 2007 - March 2010
Front Porch Communications, Sonora, CA
  • Responsible for development, maintenance, and support of a WiFi HotSpot appliance used at over 3,000 locations across the US and Europe
  • Wrote a GRE-encapsulation bridge driver for the Linux kernel
  • Developed API clients and libraries in C# and Perl

Research Experience

Research Assistant

2004 - 2006
University of California, Merced, CA
  • Research assistant to Dr. Thomas Harmon on a variety of projects pertaining to soil moisture, groundwater, and surface water quality.
  • Work included developing embedded sensor networks to retrieve data for analysis by mathematical models to understand the nature and behavior of pollutants in environmental systems.
  • Projects spanned agricultural, riparian, groundwater-, and wetlands-related problems.

Teaching Experience

  • 2007 - 2012: Lecturer at University of California, Merced – Developed and delivered courses covering: Java, C++, data structures, C, UNIX systems programming and machine organization.
  • 2008 - 2009: Adjunct faculty member at Columbia Community College in Columbia, CA – Taught Introduction to Programming, Introduction to UNIX and Linux, and Advanced Web Topics
  • 2006 - 2007: TA at University of California, Merced – Assisted with teaching Operating Systems, Data structures using Java, and Exploratory Computing / Data Analysis
  • 2004 - 2006: Part-time lecturer at California State University, Stanislaus, teaching Introduction to programming using C++, and basic computer / Internet usage skills including Microsoft Office, basic database development and web-page development.

Books, Publications and Presentations

Books

  • Chef Essentials – ISBN: 978-1-78398-304-9, published 2014
  • Managing Windows Servers with Chef – ISBN: 978-1-78398-242-4, published 2014
  • Instant Parallel Processing with Gearman – ISBN: 978-1-78328-407-8, published 2013
  • Instant Chef Starter – ISBN: 978-1-78216-346-6, published 2013

Publications

  • Yeonjeong Park, et al. – Adaptive Management of Irrigation with Feedback Control to Avoid Groundwater Pollution by Nitrate (2006)
  • Nithya Ramanathan, et al. – Embedded Networked Sensing of Subsurface Water Quality Calibration, Fault Detection and Feedback Control (2006)
  • Thomas Harmon, et al. – CENS Contaminant Transport Observation and Management Research Overview (2006)
  • J. Eric Haux, et al. – Development of the Soil Pylon System for Observing Subterranean Processes (2005)
  • David A. Turner, et al. – Allocating Resources in Storage Cooperatives with Pseudo Currencies (2003)

Presentations

  • Automating your Infrastructure with Chef – O’Reilly Webinar; August 6, 2014

Education

Ph.D in Environmental Systems (Incomplete)
2004 - 2008
University of California, Merced
  • Research was in the field of embedded sensor networks and 1-D flow modeling
  • Coursework in: hydrology, environmental statistics, contaminant fate and transport, geochemistry, organic chemistry and modeling of environmental systems.
B.Sc. in Computer Science
California State University, Stanislaus