Jon Frisby

Email: jfrisby@mrjoy.com
Cell: 408-898-7702
Location: Portland, OR

Goals

Make a big impact on the bottom line of whatever company I join, both by direct contribution and by being a force-multiplier on the rest of the tech team.

Keep learning all the new things necessary to make that impact - programming languages, tech stacks, problem domains, etc. I pride myself on the diversity of my skillset, having done everything from business intelligence to full-stack web development to both 2D and 3D game development, and am eager to expand that skillset.

Community Involvement

Original Open Source Projects

See my Github account for a more conprehensive list of projects I have created, am actively driving, or have contributed to.

  • sparkle_motion - Generative event lighting in Ruby with Philips Hue and Novation LaunchPad.
  • frisky - A Ruby implementation of an SSDP (UPnP) client.
  • lita-ext - Extensions to Lita to make adding custom functionality easier.
  • rspec-gc-control - Control GC behavior of Ruby in context of RSpec runs to enable better overall test suite performance.
  • UnityColorBlindness - A tool to let game developers experience their Unity3D games through the eyes of someone with any of a number of forms of typical color perception (“color blindness”).
  • UnityREPL - An interactive C# shell (based on Mono.CSharp.dll) for Unity3D.
  • UnityGUIExtensions - Extend Unity3D’s IMGUI with things such as resizeable horizontal/vertical split-panes.
  • UnitySVG - Port of SavageSVG (SVG renderer) to Unity3D, with numerous performance improvements.

Notable Open Source Contributions

  • bundler-audit - Provides patch-level published-vulnerability verification for Bundler.
  • Annotate - a tool for annotating ActiveRecord models with comments describing the schema.

I also have a history of contributing to many other projects.

Noteworthy Posts

Technical Stuff

  • Areas of Expertise: Web, Distributed Systems, Business Intelligence/Data Warehousing, ETL, 2D/3D Game Development, Security, DevOps
  • Languages: Ruby, JavaScript, Go, C#
  • Frameworks/Tools: Ruby on Rails, Sinatra, Resque, Unity3D, jQuery, Docker, Etc.
  • Data Stores: MySQL, Postgres, Redis, Riak

Experience

New Relic

1/2016..8/2016

Senior Software Engineer

Provisioning Team

  • Streamlined “User Access Request” process, reducing the amount of complexity for users and making the system easier to iterate on.
  • Led “How we Role” effort to implement RBAC mechanisms, manageable by individual team leads.
    • Previous system was ad-hoc, involving Jira tickets and manual effort.
    • LDAP roles were not feasible for individual team leads to manage because of their centralized nature.
    • Worked with the organization to establish an incremental path from this to an automated, self-service-per-team system properly integrated with LDAP.
  • Took a software engineer intern, and provided guidance to help make him a net-positive contributor.
  • Helped several ops people “level up” their coding abilities.
  • Refactored and shored up numerous smaller operational tools and components.
  • Implement chat-bot (in Ruby, using Lita.io) to aid in providing operational support to other teams.

Tools Team

  • Fixed brittle Golang test suite, making it clearer / easier to work with, and safe to run in randomized order.
  • Shored up project setup process for several codebases, reducing onboarding friction and easing mobility across teams.
  • Simplified and fixed serious bugs in nascent IP address management system, making it easier for other engineers to iterate on.

Renzu Inc

1/2015..11/2015

Senior DevOps/Security Engineer

Responsible for maintenance and operation of high-traffic, business-critical, consumer-use VPN.

Responsible for security concerns around protection of 50+GiB/day of consumer network traffic, recorded to S3 as PCap files.

Tackled developer mobility and workflow sprawl for multiple teams with multiple languages / toolsets.

  • Formalized and automated construction of VPN instances.
    • Started with 2 ad-hoc, consumer-use VPN servers with minimal documentation / consistency and ad-hoc arrangement of Docker containers.
    • Enabled replacing dead VPN nodes, and scaling up on-demand – a previously error-prone, and time-intensive manual process.
    • Enabled working around a critical and hard to resolve problem by being able to replace nodes frequently.
  • Simplified Docker containers, normalized workflows around constructing and working with Docker containers.
    • Facilitated developer mobility across several codebases.
    • Enabled much more rapid iteration of business-critical VPN design.
  • Migrated to CoreOS.
    • Simplified orchestration of VPN and several other node types dramatically.
    • Enabled the creation of new node types with much less effort.
  • Set up chat-ops integration with Slack, using Lita.io.
    • Allowed an easy-to-review history of key production operations.
  • Created chat-ops workflows for managing large pool of Elastic IPs, pool of Elastic Network Interfaces – each bound to many EIPs, VPN instances – each bound to an ENI, and Route53 DNS entries for VPN nodes.
    • Multi-EIP-per-node needed to support business use-cases.
    • AutoScaling / Elastic Load Balancer not feasible due to UDP-based VPN protocol.
  • Designed outline for security architecture.
    • Gave business a path forward to protecting highly sensitive consumer VPN traffic.
    • Designed with the goal of reducing the burden on as many developers as possible, by minimizing what can be achieved if their code is compromised.
  • Designed standardized workflow tooling and workstation setup process.
    • Enabled more rapid on-boarding of new developers.
    • Improved developer mobility by making it possible for developers to get to running code on any codebase without technical support.
    • Simplified future operational needs by reducing the friction in getting to Docker images for new system components.

RepairPal Inc

6/2013..12/2014

Principal Software Engineer

  • Implemented major BI improvements, improving our A/B testing capabilities and enabling much more aggressive SEM efforts.
  • Prototyped a new repair price estimator.
    • Improved ETL load times from 2 hours to 70 seconds (for 1.5GiB of source data) while extracting much more information.
    • Simplified architectural model from earlier prototype, eliminating a significant amount of accidental workflow complexity.
  • Implemented major workflow improvements.
    • Reduced onboarding from 2+ days involving interrupting multiple engineers to 1 day, mostly autonomous.
    • Reduced test data load time from 8 hours to 15 minutes.
    • Eliminated need to use sudo multiple times during per day.
    • Halved execution time of integration test suite.
    • Built a tool to help apply some of our style-guide rules to the ~100 kloc that did not adhere to them.
  • Prioritized roadmap of future improvements.
    • Defined security model and practices to help protect PII provided by AARP.
    • Enumerated changes needed for migration from EngineYard to AWS.
    • Outlined processes for identifying and prioritizing code quality issues.
    • Triaged several hundred potential security vulnerabilities, fixing dozens of actual issues.
  • Identified gaps in business continuity measures, and triaged high priority risks.
  • Responsible for most developer workflow, devops, and security concerns.

Cloudability Inc

5/2011..3/2013

Technical Co-Founder, Chief Scientist

  • Implemented first-generation system to gather, analyze, and report on large volumes of billing data (4TiB in first two years of operation, 8TiB within six months thereafter) representing over US$500m of our customers’ cloud spending.
  • Proved viability of concept, enabling company to raise US$1.25m in seed funding.
  • Trained several new engineers on both front-end and back-end development tools, standards and practices, including:
    • Training two non-Ruby coders on both Ruby and Rails.
    • Training non-developers on the use of git.
  • Responsible for highly security-conscious infrastructure and workflow design, which an AWS Architect called “rock solid”.
  • Responsible for shepherding other OSS contributions on behalf of various team members, including patches to RSpec, Ruby ZooKeeper bindings, SSSS, resque-statsd, etc.
  • Responsible for most aspects of devops concerns.

Mercantila, Inc

9/2010..5/2011

Senior Software Engineer

  • Reduced turnaround time on various operational issues by providing tactical support/expertise for Linux, and MySQL.
  • Guided transition to AWS (EC2, RDS, S3) infrastructure for new e-commerce platform.
  • Built management tools to facilitate cloud-based development, testing, formal QA, staging, and production workflows using Rake and Fog.
  • Designed and implemented Chef-based systems management infrastructure for cloud-hosted servers.
  • Patched issue in Amazon-EC2 gem, ensured patch was accepted by author in order to avoid having to “own” that fix in our code forever.
  • Investigated zero-day security issue in major e-commerce platform. Identified root cause, found solutions, provided repro case to vendor, and published to Full Disclosure list to allow other users to protect themselves.
  • Provided training to both development and operations staff on effective use of Amazon cloud infrastructure. Effectively reduced per-developer complexity overhead so that developers don’t need to waste mental energy on cloud-specific issues.

AdKnowledge, Inc

8/2008..8/2010

Senior Software Engineer

BidSystem Team

  • Designed, implemented and launched a PHP-based, shared-nothing web service used to integrate various disparate business units in just 20 days when the C++-based core platform hit a massive scaling wall. The new service handled 18x as many requests/sec on the same hardware. Losses were running at $15k/day until the new code was deployed.
  • Maintained and developed the service over much of its lifecycle, maintaining a strict SLA of 99% of requests to be serviced in 10ms or less. Kept pace with high rate of change, business commended me on the service’s track record of consistency and reliability.
  • Trained a new recruit on the business objectives, critical practices/techniques employed, and details of the code itself allowing him to take ownership of the service while still maintaining an exceptional track record with it with no ‘rough’ transitional period.

Social Team

  • Provided necessary expertise in moving from .Net to Mono on Linux, ensuring a timely and cost-effective migration.
  • Migrated an important, performance-sensitive ETL facility from .Net to Mono, reducing code volume by 90% while making it simpler, easier to learn, easier to debug/profile, easier to change, and easier to deploy.
  • Implemented near-real-time (10-15 minute latency) data warehouse to allow management to track the health of the system in bottom-line terms, and identify problems as quickly as possible.
  • Provided the insights necessary to resolve a critical system failure for a high volume system (500m+ requests/day), and to subsequently reduce the operational cost of that system by at least $112k (11%) per year. This moved the system from being merely cost-competitive to being the most cost-effective option for the company.

R&D Team

  • Facilitated rapid iteration / reduced development friction by implementing tools to incrementally normalize build/deployment and common operational processes for multiple legacy codebases that were deployed to a variety of server configurations both directly to EC2 and indirectly via Scalr. Objective was to facilitate experimental discovery of retargeting strategies needed to achieve goal of $10,000/day in revenue.

Multiple Teams

  • Evangelized and led-by-example in applying techniques and practices aimed at improving programmer productivity while facilitating high rates of change. Specifically, TDD, DRY, and devops practices aimed at reducing friction in common workflows.
  • Established a consistent track record of leaving codebases cleaner, and simpler than when I found them in order to facilitate cross-pollination and minimize the creation of hidden 'silos’ of information trapped in the heads of individuals.
  • Evangelized git, trained and supported engineers in using git as individual teams migrated from SVN.

MrJoy, Inc

6/2007..1/2010

Founder

  • Designed and produced When Orcs Attack video game using Unity3D engine. Lead 5 contractors producing art and code, and performed principal coding of the game in C#.
  • Produced Hordes of Orcs video game using Unity3D engine. Worked with publisher to meet a demanding schedule, and high standards for product excellence.
  • Designed and produced Harmonic Convergence video game using Torque Game Builder engine. Lead 14 contractors producing art and code, as well as performing principal coding of the game in C++ and TorqueScript.
  • Gave a “brown bag” session at Apple’s WWDC in 2007 at the request of GarageGames, the creators of Torque.
  • Produced Banzai Ball video game using Unity3D engine. Coordinated the efforts of the lead programmer and 2 contractors producing art.
  • Designed and implemented MrJoy.com online presence using Ruby on Rails, including:
    • Media management system that allowed Flash-based syndication of promotional content (photo slideshows, videos, and music) to social networking sites.
    • E-commerce functionality.
    • Web services for games, providing update/new notifications, gameplay analytics, etc.

Games Shipped

When Orcs Attack
3D tower defense game for Mac/PC with pathfinding, and an emphasis on simplicity.
Epic Tower Defense
Co-branded, web-based version of When Orcs Attack for Shockwave.com game portal, adapted to meet their requirements for transfer size and privacy.
Hordes of Orcs
Significantly enhanced version of When Orcs Attack aimed primarily at the Mac audience with a stronger emphasis on graphical quality.
Harmonic Convergence
A fast-paced rhythm/puzzle game whose music adapts to the intensity of how the player is playing.
Hordes of Orcs 2
Sequel to Hordes of Orcs featuring new game elements, mechanics, visuals, content and an overhauled UI. Released primarily on Mac App Store.

Netblue, Inc

8/2001..7/2007

Co-Founder

  • Developed and maintained highly profitable promotional marketing platform through full lifecycle: Design, implementation, maintenance/evolution, and retirement five years later.
  • Designed and implemented an Object/Relational-mapping tool for PHP and MySQL. The tool introspected a MySQL database, and used hints from an XML file to generate object-oriented code for manipulating data.
  • Established automated build-validation/regression testing framework for Java development environment. Implemented database snapshot comparison tool to facilitate this.
  • Conceived, designed, implemented, and drove adoption of MySQL-based data warehouse to improve reporting performance and depth. Reports that took 6 hours to run subsequently took 20 seconds. New reports changed how we did business for several years and helped the company grow to a run-rate of $80m.
  • Participated in design and implementation of next-generation PostgreSQL based data warehouses. Designed technique for incremental processing of new/changed data and handling of data that arrived late or out of order.

digiGroups, Inc

4/2001..7/2001

Software Engineer

  • Developed several key system components in DOM/DHTML-based customer engagement platform.
  • Designed, prototyped, and demonstrated new architecture capable of reducing code volume/footprint by 6x while dramatically improving performance, maintainability, and time-to-market for new features.
  • Investigated relevant new technologies, and found solutions to numerous problems.
  • Quickly went from having very little JavaScript/DOM/DHTML experience to being a “guru” able to provide insight and expertise to other team-members with more time invested in the technologies.

Everyone.net, Inc

8/1999..3/2001

Software Engineer

  • Maintained and assisted in development of Perl-based back-end architecture of flagship web-based e-mail system that at one point handled more than 12,000,000 mailboxes for 600,000 domains.
  • Designed, implemented, and provided on-site customer support for “iL” product which provided larger partner sites a cross-site single-sign-on capability allowing the user to log in via the partner site, and be automatically logged into the Everyone.net mail system.
  • Designed and implemented “rC” product which allowed web hosting services to sign their customers up for our services and create a unified “control center” where the customer could manage both the services provided by the hosting company and Everyone.net’s services.
  • Designed and implemented “Everyone.net Addresses” product to provide a directory of partner sites for marketing purposes and to improve demographic targeting of partner sites for ad sales.
  • Helped design and implement test cases for evaluation of EJB servers (including JBoss, BEA WebLogic, and Inprise Application Server) and database servers. (Oracle 8i, and DB2 UDB) Assisted in port of existing e-mail architecture from MySQL to DB2 UDB for performance evaluations.
  • Designed middle-tier of prototype next generation hosted e-mail solution.
  • Designed security/contract enforcement mechanism for next generation hosted e-mail solution to allow maximum flexibility in making deals with resellers and partners, including graceful handling of special one-off deals.

Web-Central, Inc

6/1998..8/1999

Co-Founder

  • Developed many of the underlying technologies powering sophisticated intranet/internet web applications, including sophisticated user-customization engine.
  • Developed many novel and useful features to help set us apart from the competition, including resume “searchability” analysis tool.
  • Planned design track for future versions of architecture and applications.
  • Optimized design to ensure maximum performance from minimum of resources.