Ryan Davis’ Résumé
Last updated: 2021-05-06
LOTS of experience with remote work!
Directs only. No headhunters.
You can email me for my phone number.
- Zendesk - Señor Staff Engineer - Platform - 100% remote
- 2020-04 - Present
- Overhaul usage of Rails
- Modernize Ruby
- Seattle.rb Consulting, LLC - Señor Consultant - 100% remote
- 2014-10 - 2019-04: Consulting / Training / Programming for various clients.
- Optimization & Scaling (code, process, or people)
- Heavy Troubleshooting
- Open Source Collaboration
- Training & Mentoring
- Clients include:
- Chef - Senior Software Engineer - 99% remote
- 2019-04 - 2020-03: Open source development on various chef projects, mostly inspec.
- AT&T - Señor Software Architect - 100% remote
- 2014-06 to 2014-09: Worked on open-stack in support of our cloud offering.
- 2012-11 to 2014-06: Developed open-source ruby libraries and present at ruby conferences.
- 2012-09 to 2012-11: Worked on internal tools/websites for one of our many “Cloud” offerings.
- 2012-09 to 2014-09
- AT&T Interactive (now YP) - Señor Programmer & Manager of Application Services - 99% remote
- Worked on ruby and/or rails stuff for internal and external projects.
- Taught various workshops internally.
- 2011-01: Managed the remote app services team.
- 2010-02: Managed the application services team. Pumping 50-70k rpm. rawr. Topped at 99k rpm or 1 billion reqs/week!
- 2009-10: Managed the tools team.
- 2009-02 to 2012-09
- Engine Yard - Rubinius Core Developer - 99% remote
- Worked on Rubinius, an alternative implementation of ruby.
- 2007-10 to 2008-11
- University of Washington Educational Outreach - Educator
- Taught ‘Ruby: The Core Language’
- Co-taught ‘Advanced Topics in Ruby’ 2008-Q3 w/ Aaron Patterson.
- 2007-Q1, 2008-2009 Q1 & Q3.
- LimeSpot (now dead, a division of Lime Wire LLC) - Consultant / Señor Developer - 90% remote
- Ruby on Rails development for a social yadda yadda website.
- Re-engineered the entire application simplfying the design:
- Test time improved 20x.
- Code size was reduced 40%.
- Test size was reduced 50%. (code to test ratio went from 1:1 to 1:0.8).
- Massively improved developer productivity (and morale).
- 2007-01 to 2007-09
- Independent Consultant - 99% remote
- Ruby and Ruby on Rails development, development process improvement, TDD mentoring.
- 2006-01 to 2007-10
- SHPS (bought out by carewise health?) - Señior Software Developer
- Healthcare enterprise data integration with Java, Ruby, and Ruby on Rails.
- Addressed idioms, design patterns, refactoring, and testing on a medium-to-large sized j2ee implementation.
- 2005-06 to 2005-11
- Omni Group - Quality Assurance / Lead QA
- Team lead of two (inclusive) to test and validate four primary applications, some secondary applications, and many addons to our primary applications.
- Responsible for maintaining and extending all build scripts and related tools, written in zsh/sh, Ruby, and perl.
- Inherited the bug database and client application. Used XP with weekly releases and took the application from something that was reviled to a very functional app that is used by all engineers, tech support, and QA on a daily basis.
- Cut the number of DB tables in half.
- Cut the application code by one third.
- Designed and implemented an automated release process reducing the number of errors in software releases and reducing the time to release a product from 2 days to 1 hour.
- Implemented a continuous build system for all of our products. This insured that bad CVS commits were noticed immediately.
- Instituted a code review policy for (nearly) all commits, reducing the number of errors that get committed in the first place.
- Validated more (stale) bugs than I’d like to admit.
- 2002-09-01 to 2005-04-15
- Amazon.com (Reverse-chrono) - Hacker / Señor Hacker (official title)
- Member of an uber-elite task force to refactor and port entire source repository (1000+ modules) to new scalable build system. Contributed to milestone 4-6 over a 6 month period. Lead milestone 5 over a 6 week period.
- Wrote C/C++ parsing tools in Perl to analyze file, module, and package level dependencies of the entire codebase (1000+ modules) and provide numerous reports and graphs.
- Investigated problems with the length of a full build. Profiled 10000 individual compiles and isolated problem files. Actually found a single file that took 18 minutes to compile. A very simple change reduced that time to 7 seconds. Directly reduced build by 30 minutes (serial).
- Investigated problems in scaling the build system. Wrote tools to analyze binary symbol sizes. With this I found and and fixed code that was producing 2 gig of bloat on disk, which was causing numerous problems in RAM and on disk in some configurations.
- Extended the same build system for compile-only (no application linking) runs to optimize refactoring runs. Brought build time from 12 hours (on desktop linux box) to 3 hours (first pass, 5 minutes for second pass w/ no changes).
- Verified and fixed make system for 500+ source modules and applications to optimize refactoring work and incremental builds. Brought incremental build time from 5 hours to 5 minutes. Literally.
- Created numerous systems in Perl and Berkeley DB for reporting and monitoring of various systems (production CVS checkout staleness, error log reporting, etc).
- Reverse engineered website order pipeline (many many many C/C++ files) to provide a scriptable tool (in C++ and ANTLR) to flexibly generate orders at a massive speed (compared to using the website). Saved at least 4 man-days/week for one QA group alone.
- Architected pattern-based distributed (client/server) multithreaded test/task execution engine in Java.
- Architected automated test engine for website testing including an easy to understand script language for writing tests, a non-linear multi-threaded task queue, with a well organized object design in Java.
- Lead Developer in Quality Assurance Tools group. Team topped at 5 engineers and produced over 75 systems, programs, CGI and scripts for various testing tasks, software engineering tasks, configuration management, and process management.
- 1998-09-01 to 2002-06-10
- Independent Contract with JoeAverage.com (dead)
- NOTE: I’ll never work on the windows platform again.
- Research with Java, C++, and other languages for internet programming.
- Internet Programming - ISAPI, CGI, ASP, and several other acronyms.
- Relational Database Programming t/SQL on SQLServer 6.5.
- Various System Administration duties for WinNT network.
- Various Webmaster duties on WinNT/IIS.
- 1998-01 to 1998-06, 1998-08-01 to 1998-09-01
- Gemstone - Software Engineer
- Perform regular QA duties (run, develop, and maintain tests) for Gemstone Smalltalk (backend).
- Original lead QA developer for Gemstone/J (Gemstone for Java). Duties included architecting and developing original test plan and framework. Development and maintenance of tests. Co-design in some of the API. Mentoring for contractor.
- Responsible as the Java certification engineer for Gemstone/J. I spent more than a year becoming an expert in testing Java VM’s on multiple platforms. Worked closely with key engineers at JavaSoft on the JCK’s tests, framework (JavaTest) and new framework subsystems (AssertionTest). Also used JavaTest to architect and implement new test systems for non-JCK use.
- 1996-06 to 1998-01
- TESC - Smalltalk Educator
- Helped students qualifying for KEY services with VisualWorks Smalltalk programming for Student Originated Software program offered at The Evergreen State College.
- 1995-11 to 1996-06
- Computer Solutions - Project Lead and Programmer
- Wrote specifications, analysis and design for distributed OODBMS for the Macintosh.
- 1995-06 to 1995-10
- WLN - Analyst/Programmer I.
- Debugged and documented previously existing Smalltalk database. Also designed and wrote C++ online-help app. for the Macintosh.
- 1994-06 to 1995-02
- Self Employed
- Various independent programming projects for various clients.
- 1991 to 1993
See my page on confreaks or my presentations page.
- Rubyconf 2018: Graphics and Simulations (and Games), Oh My!
- Railsconf 2018: Minitest 6: Test Feistier!
- RubyHack 2017: Improving Coverage Analysis
- Magmaconf 2017: Level up! Study Groups, Workshops, & Collaborative Learning
- Rubyconf 2016: Improving Coverage Analysis
- Ruby on Ales 2016: Writing a Test Framework from Scratch.
- RailsConf 2016: Writing a Test Framework from Scratch.
- Mountain West 2016: Writing a Test Framework from Scratch.
- RailsConf 2015: Ruby on Rails on Minitest.
- Mountain West 2015: Standing on the Shoulders of Giants.
- LA Ruby Conf 2015: Mind of a Hacker.
- Ruby on Ales 2015: Standing on the Shoulders of Giants.
- GoGaRuCo 2014: Let’s Make a Computer!
- Mountain West 2014: Nerd Party v3.1
- GoGaRuCo 2013: Let’s Write an Interpreter!
- Cascadia Ruby 2013: Real Craftsmen (can) Create Their Own Tools.
- Windy City Rails 2013: Minitest & Rails, No Pony.
- Madison Ruby 2013: Judge for IronRuby Coding Contest.
- Mountain West 2013: Trolls of 2013 aka Let’s Write an Interpreter!
- Madison Ruby 2012: How to Contribute to Open Source: Extensibility from Simplicity.
- Cascadia 2012: Occupy Ruby: Why we need to moderate the 1%.
- Cascadia 2011: Size Doesn’t Matter.
- GoGaRuCo 2010: Workflow.
- RubyConf 2009: Worst. Ideas. Evar.
- RubyConf 2008: Seattle.rb Rocks! & Lightning Talks.
- Goruco 2008: Ruby Sadism: Hurting Code for Fun and Profit.
- RubyConf 2007: Ruby Sadism: Hurting Code for Fun and Profit.
- SDForum 2006: Test Driven Design with ZenTest.
- AjaxWorld 2006: Electric Kool-aid Acid Testing.
- FOSCON 2006: ruby2c and metaruby.
- RubyConf 2005: Polishing Ruby: ZenHacks and friends.
- Founder of RejectConf - speaker at many 2006 - present.
- many more given to Seattle.rb.
Too many to list these days. Really. See
https://github.com/seattlerb/ and https://github.com/zenspider/ for
some of them.
See https://www.zenspider.com/~ryan/IntellectualProperty.pdf for a
semi-current list of IP exclusions.
- TESC, Olympia, WA
B.S. (Emphasis in Computer Science), 1992 - 1996
- WWU, Bellingham, WA
1991 - 1992
Sourcecode and Project Information is available on this website.
References are available upon request.