Resume

John Naegle

github.com/johnnaegle | www.linkedin.com/in/johnnaegle

Saint Louis, MO or Remote; United States Citizen.

Overview

Seventeen years of professional software development experience; developing full stack web applications since 2004.  

Experience

2011 – PRESENT

Good Measures LLC, Boston MA (Remote)Senior Software Engineer

Full stack web developer responsible for architecting, designing, implementing, testing, and deploying the Good Measures software platform — a scalable, HIPAA compliant system for Registered Dietitians to coach people to better health.

  • Developed user-facing and internal web interfaces with Ruby on Rails, jQuery, Bootstrap, HTML (Haml) / CSS (Sass).
  • Championed API first development to simultaneously support Web, iPhone, Android, and 3rd party integration with the Good Measures platform.  Closely worked mobile developers to specify, implement, version and document APIs.
  • Worked with Registered Dietitians and other internal users to shape product direction set priorities, design user interfaces, and conceptualize and implement clinical patient management and outreach.
  • Integrated platform with third party applications and data to automate workflows, expand platform capabilities and monitor system performance.  Integrations included: Canvas LMS, Amazon (SQS, S3, Lambda), Urban Airship, APNS, Comfortable Mexican Sofa, Slack, National Provider Identifier Database, PaperTrail,, New Relic, and Trizetto.
  • Replaced JavaScript polling with ActionCable/Websockets to reduce web server load and improve site performance.  
  • Developed Ansible playbooks, targeted for EC2 or Vagrant, for reliable automated infrastructure creation, scaling, and maintenance.  Vagrant systems enabled mobile developers develop against local installations with minimal effort.
  • Automated browser testing using Selenium / RSpec / Capybara.  Wrote model, integration, functional and integration tests enabling confidence in software upgrades and system changes.  
  • Monitored and optimized site performance for better scaling, lower costs and improved user experience: optimized SQL queries, removed N+1 queries, added caching (fragments, query results, e-tags, etc) , optimized back end delayed job calculations, implemented capistrano deployment optimizations,  tuned API performance with Rabl templates and JSON generation optimizations, and replaced Rails models with direct SQL queries.
  • Deployed and extended Hubot (a Slackbot) with EC2 integration and other capabilities (Node/Heroku) to automate operational tasks.  Integrated Slack with AWS Autoscaling Notifications, PaperTrail queries, email delivery failures and other monitoring tools.
  • Mentored and coached development team members through code reviews, design reviews, and pair programming.

2004 – 2011

Varolii Corporation, Burlington MA Principal Engineer, Team Lead

Principal Engineer and Team Lead for Varolii Profiles, a multi-tenant SaaS platform providing inbound and outbound employee and business continuity communications over phone, email, SMS and other transports. Varolii Profiles provided a Web UI and SOAP API for data management, decisioning, and reporting for time-critical mass communications.  

  • Led requirements gathering, design and implementation of upcoming release layering finer grained security on top of existing customers applications and data while maintaining backwards compatibility.
  • Led requirements gathering, design, and implementation of Varolii Contact Manager which added efficient data integration capabilities and significantly lowered customer integration costs.
  • Led design and implementation of Varolii Message Center which added rich inbound communications, a unified web and phone interface and provided a rich administrator interface.
  • Implemented rich web user interfaces using AJAX, JavaScript, HTML, and CSS.
  • Implemented business logic, database access, Soap API additions, and framework improvements using C++ and SQL.
  • Developed UI infrastructure and standards that streamlined and standardized web development.
  • Developed an ASP.NET web application used internally by Customer Support and Operations to monitor site health, diagnose customer issues, and access log files.
  • Diagnosed and addressed performance and resource issues including: inefficient SQL queries, slow web page rendering, and memory leaks.
  • Represented Varolii at trade shows.

2000 – 2004

Quicksilver Technology, Seattle WASoftware Engineer

Developed software tools supporting hardware design and application development for the Adaptive Computing Machine — an integrated circuit for audio, video and wireless applications running on mobile devices.  Primary technologies: Java, C/C++, assembly languages, and Verilog.

  • Developed software tools to support application development, debugging, and testing for software running on a custom hardware platform.  
  • Implemented hardware simulator and assembly language for VLIW processor. Extended simulator to generate basic hardware representation used for chip synthesis.
  • Implemented build system to perform automated builds upon source control check-in.

Public Software Contributions

Repositories and Blogs

www.software-thoughts.com – My infrequently updated blog on software topics.

github.com/GoodMeasuresLLC/trizetto-api – Ruby gem for checking health insurance coverage.

github.com/johnnaegle/hubot-ec2 – Lists EC2 instances in Hubot / Slack.

github.com/GoodMeasuresLLC/inherited-attributes – Extends ancestry gem to allow attributes to be inherited.

github.com/GoodMeasuresLLC/activerecord-has_one_defaults – Provides defaults to has_one associations.

github.com/GoodMeasuresLLC/calendar_to_queue – Mountable endpoint for push notifications from Google Calendars.

github.com/johnnaegle/rails_weak_etags  – Converts strong e-etags to weak to pass through nginx with gzip compression.

github.com/johnnaegle/jquery-visibility-rails – Provides the jQuery visibility library as a gem.

Sample Pull Requests

github.com/rack/rack/pull/814 – Fixed a bug with Rack and open file counts.

github.com/Apipie/apipie-rails/pull/524 – Have ApiPie generate documentation for delete request parameters.

github.com/Apipie/apipie-rails/pull/521 – Fix bug with API documentation generation

github.com/stve/silencer/pull/15 – Made log silencer thread safe in Rails 4.2.6+

github.com/comfy/comfortable-mexican-sofa/pull/639 – Fixed asset URL generation when CMS is not mounted at root

github.com/saml-idp/saml_idp/pull/59 – Fix invalid SAML generation.

github.com/saml-idp/saml_idp/pull/64 – Rails 4 upgrade change.

github.com/atomicjolt/omniauth-canvas/pull/3 – Documentation and Usage

github.com/snikch/jquery.dirtyforms/pull/76 – Fix dirty form checking in JavaScript focus events

github.com/collectiveidea/delayed_job/pull/689 – Fixed test failures under Rails 4.2.0.beta1

github.com/grocer/grocer/pull/39 – Fail APNS push notifications if the payload is too large

github.com/anthonator/dirigible/pull/14 – Made parameters optional in Urban Airship API Wrapper

github.com/rails/rails/issues/9351 – (bug report) Rails 3.2 issue with millisecond differences in timestamps.  

Education

University of Washington, Seattle WA – Masters of Computer Science, 2004.

University of Washington, Seattle WA – Bachelors of Science in Computer Engineering, Mathematics Minor, 2000.

Other Interests

Running, camping, hiking, taekwondo, photography, and cycling.