Skip to content

CodeOtter/resume

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 

Repository files navigation

Given the size of this resume, I've created an executive summary to give you a faster review.

Contents

Knowledge

  • NodeJS
  • SailsJS - API framework
  • Socket.io - Realtime socket server
  • Express - HTTP server
  • Grunt - Build tools
  • Gulp - Build tools
  • Browserify - Build tools
  • Webpack - Build tools
  • Forever - Process manager
  • PM2 - Process manager
  • Cluster - Multi-core programming
  • Commander - CLI framework
  • Lodash/Underscore - Helpers
  • Async - Flow helper
  • Sequelize - ORM
  • Waterline - ORM
  • Mongoose - ORM
  • Handlebars - Templating library
  • Jasmine - BDD test framework
  • Superagent/Supertest - HTTP simulator for endpoint testing
  • BCrypt - Encryption tools
  • Brain - Neural network library
  • Blessed - Terminal interface library
  • Sentiment - Sentinment analysis library
  • JsonWebToken - Allows for per-device sessions without central session management.
  • NPM - Dependency manager
  • JavaScript
  • Knockout - Model-View-ViewModel framework
  • React - One-way data flow library with virtual DOM management that updates only what has been changed
  • Flux - Centralized dispatcher and store management for React application
  • JSX - Syntacitc sugar to represent UI compnents as XML tags for easier reusability and configuration.
  • Redux - Predictable state container management for React programs
  • jQuery - The myth. The legend. One of the two Beasts of the Book of Revelation.
  • Cheerio - Web scraper with jQuery-like syntax.
  • Karma - Headless web page testing
  • PHP 5
  • Doctrine - ORM
  • Symphony - HTTP SOA framework
  • Composer - Dependency manager
  • CSS
  • PureCSS - Simplified grid and responsive library
  • Bootstrap - Heavy JS/CSS/HTML framework
  • IoT
  • SerialPort - Low-level I/O library
  • CylonJS - High-level I/O library
  • Node-RED - Visual wiring tool framework for I/O tasks
  • DevOps
  • AWS
  • Jenkins
  • New Relic
  • Version Control
  • Git
  • Github
  • Gitlab
  • Bitbucket
  • Databases
  • mySQL (MyISAM, InnoDB, BDB)
  • MongoDB
  • Postgres
  • Services/SDKs
  • AWS
  • Stripe
  • Bill.com
  • Braintree
  • OpenTok
  • Docusign
  • ZeroPush
  • PubNub
  • ZenDesk
  • Twitter
  • Facebook
  • Reddit
  • HackerNews
  • Methodologies
  • SOA
  • REST
  • Test-driven development
  • Object-oriented programming
  • Functional programming
  • Flow-based programming
  • Dependency injection
  • Extreme programming
  • Planning poker

Experience

DropIn

Architect, July 2015 – Present (1 year), Los Angeles, CA

  • Worked with Valensi Rose, PLC to provide investors with legal and business insight on how to integrate autonomous vehicles into DropIn's business plans.
  • Worked with Diamond Web Services and Silicon Prime to bring devops, mobile development, project management, quality assurance, and additional API support into the project.
  • Acted as product owner and UX designer for the customer-facing mobile product to establish business logic and discover needed API endpoints.
  • Utilized SailsJS, Nginx, MongoDB, Redis, Vagrant, Jasmine, and Supertest to build a RESTful server to fulfil business objectives for account management, operator management, geolocation services, dispatcher services, stream token management, pricing logic, authorization and authentication services, logging, payment and payout management, and timeouts/cleanup tasks for offline users.
  • Became very familiar with BrainTree, Stripe, Docusign, Amazon Web Services, ZeroPush, PubNub, PushWoosh, Pusher, Apple Store review, SendGrid, Google Maps, ZenDesk, Loggly, Twilio, OpenTok, and Bill.com.
  • Selected JWTs instead of managed sessions to assist with scalability.
  • Wrote 500 tests to ensure the core business logic surrounding the dispatching logic works in a variety of cases.
  • Documented the dispatching logic and the user experience extensively with code comments, external documentation, flow charts, slideshows, and integration tests.
  • Provided considerable insight on how to generate revenue for existing product lines without additional tech expenditures.
  • Prepared the company engage in remote UAV operation by structuring the entire API to support the ability to resume a job even if the customer, operator, or server crashes/disconnects.
  • Tons of daily code review between 4-5 coders across different timezones.

CounterTack

Lead Frontend Developer, October 2014 – July 2015 (10 months), Santa Monica, CA

  • Reviewed the technical and business relationships between Windows kernel event tracing, big data behavioral analysis, and Countertack's cybersecurity solution.
  • Spearheaded the initiative to rewriting their entire customer-facing UI in React with the purpose of creating reusable UI elements. The React community had very experimental libraries at this time, so we ended up trying out and throwing away solutions on a near daily basis.
  • Spent way too much time writing a lexer from scratch to create contextual autocomplete of CQL statements. (No, not Cassandra... Contextual Query Language [http://www.loc.gov/standards/sru/cql/spec.html])
  • Oversaw the hiring process of additional developers given the unique challenges of this situation. Ultimately selected based on best psychological fit over technical experience since the nature of the challenge was a "pioneer-to-maintainer" position instead of a "permanent hacker of legacy" position.
  • Wrote and heavily optimized the build solution using Gulp, Browserify, JSX transpiling, code complexity, linting, Karma testing, uglification with source maps, and a super handy cube that glowed red whenever builds failed and green when they passed. (Cuts right through email clutter)
  • Wrote and militantly enforced extensive testing in Karma (Jest wasn't comprehensive enough) for each UI component to make sure they worked in the intended use cases. Pull requests without tests would be rejected.
  • Played lots of Magic: The Gathering!

Reason for leaving: My company landed its first contract for UAV/drone consultation and analysis.

JobSync

Lead Frontend Developer, September 2013 – April 2014 (8 months), Santa Monica, Los Angeles

  • Rewrote the entire primary customer-facing application in five months by myself.
  • Learned Python and Django and created a service-oriented REST gateway for the new client, allowing the new client to request back-end data 400% faster than the old client while transferring 67% less bytes to load the new client.
  • Created a custom service-oriented front end using KnockoutJS for data-binding, RequireJS for AMD, Nodejs/Grunt for deployment, NPM/NVM for task package management, Karma/PhantomJS/CasperJS for DOM-driven function testing, Bower for front-end package management, SammyJS for URI path management, Bootstrap for CSS, jQuery/jQueryUI for drag-and-drop activity, TouchPunch for mobile touch events, and a reusable library of self-rendering/self-binding DOM elements utilizing my custom solution to mimic AngularJS's directives in KnockoutJS (https://github.com/CodeOtter/knockout-directive).
  • Ensured the front-end worked specifically for >=IE7.
  • Experimented with NodeJS, Nginx, Siege, and Amazon Micro Instances to serve the entire web application at 1,000 requests/second.
  • Implemented GitFlow (http://nvie.com/posts/a-successful-git-branching-model/) to ensure proper software development planning and deployment.

Reason for leaving: No coherent technology strategy = hemorrhaging tech costs = I am on call only in the event of disastrous bugs.

Brave Games

Consultant, June 2013 – September 2013 (4 months), Los Angeles

  • Provided extensive consultation on how to build complex game systems (Centralized reward system, HAL-JSON REST APIs, service-oriented design) in Symfony 2.
  • Explored how to create an Symfony-based alternative for the Unity3D asset server.
  • Established a Jenkins build server for automated deployment.
  • Demonstrated proper GitHub branching to leverage pull request merging.
  • Explored sharing business objects in Symfony to Node.js via AMPQ.
  • Extensively planned the cost and maintenance effort required for the entire back-end topography of the project (Apache, PHP, AMPQ, Varnish, MySQL, Symfony caching, Doctrine caching, load balancers, Jenkins, development environments, GitHub, RackSpace cloud, programmer costs) to minimize the amount of maintenance required to run the entire operation.

Reason for leaving: Provided all of the information the client required.

PetShapes

CTO, April 2012 – August 2013 (1 year 5 months), Los Angeles

  • Created a workflow manager (Verband) as the core back-end technology. Instead of a fixed workflow passing requests to a MVC component, Verband allows for dynamic workflows on a per component basis. (Think chains of monads for Haskell)
  • Extensively charted the costs, maintenance, and the technical debt required for the entire project.
  • Embraced test-driven development for the entire project.
  • Embraced RESTful SOA for scaling.
  • Learned and implemented AngularJS as the front-end framework.
  • Kept technology costs to below $1,000 for the first year.
  • Assisted with design and theme with third-party contractors.
  • Established an OpenERP server to track income, expenses, vendors, contractors, and project status.

Reason for leaving: Power struggle between the CEO and the CFO brought the entire project to a standstill.

AlumniFinder

Contractor, April 2013 – June 2013 (3 months), Santa Monica

  • Worked with a custom MVC framework in node.js to build a crowd-sourcing platform. (Added mailer functionality, restructured core components to be decoupled for more flexibility, adjusted HTML and JS in the views to reflect new functionality)
  • Demonstrated the benefits of a service-oriented approach via a dependency injection container for said framework.

Reason for leaving: Funding for the project dried up.

4Over

Lead Developer, February 2012 – March 2013 (1 year 2 months), Burbank, CA

  • Learned Symfony 2.x, Doctrine 2.x, Composer, REST (real discoverable REST, not just pretty URLs), PSR-0, ANT, OnTime from scratch in four months.
  • Created a custom user management bundle (custom listener, tokens, users, groups, roles, session handling, and access control) that could do permission inheritance. (The out-of-the-box ACL system can't)
  • Created a bundle that represents paper stock products as NoSQL (Preparing for MongoDB)
  • Created a asynchronous message queue/worker bundle (with scheduling) that allows users to create super trim (8K RAM minimum) children processes (with PSR-0 support) to handle delayed and CPU-intense tasks.
  • Created a REST bundle that conforms to our particular RESTful approach. Generate a few controller, repository, entity stubs and a entity and ORM definition, and your table is now fully RESTful (while being automatically tied into the access control system) Also returns a variant of HAL JSON for the API calls.
  • Created a developer bundle that contained various utilities to assist in rapid prototyping and inspection.
  • Trained and directed two programmers who worked under me into the ways of the aforementioned methodologies and technologies.
  • Planned sprints and organized task dependency for maximum efficiency.
  • Built an experimental open-source framework in PHP that utilizes monads and dynamic workflows using Symfony components (Mostly HttpFoundation) and Doctrine. Helped provide GREAT insight on how the internals of both systems worked.
  • Updated a diagram editor I built two years ago to analyze relationships (oneToOne, oneToMany, manyToOne, manyToMany) between shapes, and generate the proper entity and ORM definitions.
  • Worked closely with the United States Postal Service, using the aforementioned technologies and teammates, to build a service-oriented architecture for an application that simplifies their Every-Door Direct Mail program.

Reason for leaving: The CTO was fired, causing a power vacuum that ultimately resulted in the legacy coders successfully defending their turf from being overwritten by a RESTful approach. They are now on their fourth REST architect in two years.

Capcom

Contractor, January 2012 – March 2012 (3 months), North Hollywood

Reason for leaving: Finished my contract.

Meteor Games

Programmer, December 2010 – November 2011 (1 year), Beverly Hills

  • Programmed for Island Paradise, a Facebook game with ~590,000 monthly active users.
  • Wrote a Capistrano clone in PHP to assist with the deployment of code for Island Paradise.
  • Created a query language that is used in Serf Wars (~300,000 monthly active users) to allow rapidly changing, decentralized, and unpredictable business directives to be applied with minimal code changes.
  • Designed a highly flexible data-driven combat system for Serf Wars.
  • Leveraged Node.js to create a social debugging tool that allowed PHP instances to inspect data without interrupting the process.
  • Taught programming to an employee in QA. He was promoted to a QA Engineer and assists me in writing the API layer for tools for content, deployment, and other santiziation processes.
  • Utilized a diagram drawing app on Android to generate PHP classes based on what was drawn. Proved to be very helpful during rapid prototyping and brainstorming meetings.
  • Modified an IRC bot in Python to create specific feeds of ticket changes, wiki changes, and code commits based on each project.
  • Provided in-depth consultation on how to integrate message queues and web workers into current projects.
  • Replaced the old purchasing system with a centralized reward/cost system to allow designers to change pricing of digital content without having to rope in a programmer to hunt down code every single time.
  • Provided extensive documentation of new systems including prototyped AS3 code on how to implement it.
  • Created an API framework to allow an in-game console, customer support tools, and marketing promotions to leverage a unified, reusable, and easily expandable code library to meet their needs.

Reason for leaving: Due to serious mismanagement, the company went bankrupt.

Trailer Park

Contractor, January 2011 – February 2011 (1 month), Hollywood, CA

  • Converted several dozen books from PDF to HTML5 by hand to prepare for Apple's iBook launch.
  • Got tired of converting several dozen books by hand and learned how to automatically convert PDFs into SVG.
  • Learned that PDFs are a mess and could not be converted cleanly into Apple's guidelines and settled for automating the publishing of books into Apple's proprietary, distinctively anti-Adobe iBook format.

Reason for leaving: Finished my contract.

Warner Music Group

Director of LAMP Technology, July 2011 – October 2011 (4 months), Burbank, CA

  • Learned the following technologies in 90 days with the intention to scale them out to the Enterprise level: Python, MongoDB, Node.js, Drupal, Twitter API, Facebook API, YouTube API, and Websockets.
  • Leveraged and instantiated Redmine to be a global project coordination solution for 10% of the cost of other solutions.
  • Built a MongoDB Admin Panel using ODM (Object Document Models) to oversee nearly 1TB of Artist and User Activity data.
  • Created Imhotep to quickly integrate Node.js into Drupal.
  • Provided in-depth consultation on how to efficiently manage 140+ Drupal instances.
  • Created a Python script to pull down activity data about Label Artists on Youtube and Twitter at regular intervals.

Reason for leaving: Lead investor lost half of his investment (+$1 billion) and gutted the Web department, my boss, and my boss's boss.

Guthy-Ranker

Contractor, February 2010 – May 2010 (4 months), Los Angeles, CA

  • Performed daily code changes to over 50 shopping carts contained in 20+ SVN Repositories.
  • Created a sales analyzer that would perform short and long term delta comparisons to determine if sales suddenly dropped. Upon a sales dip, emails were dispatched to alert the department.
  • Learned how to integrate Doctrine ORM into Zend Framework and helped move our code base away from its PHP3/4 origins and into an MVC solution.
  • Implemented Redmine, a Ruby on Rails solution for project management, and configured it to simplify the company's scattered and painful work flow. Before Redmine, the company (50+ employees) coordinating complex release schedules via email alone. Today, the team that oversees cart code releases enforces agile management.
  • Managed and increased the productivity of the outsourced quality assurance team entirely alone.
  • Frequently acted as an unofficial Project Manager to oversee weekly code releases (30 issues a week on average including newly created carts) for a team of 5 developers and 10 designers through Redmine.
  • Planned, coordinated, and oversaw the usage of Redmine's central ticking system as our weekly change log instead of having scour through emails to manually construct it.
  • Enforced work flow discipline by any means necessary. (Many employees routinely failed to see the larger, cross-department ramifications of their “quick” and “simple” code changes.)

Reason for leaving: Very poor working conditions (Aloof management, health hazards, unintended turf war)

Mammoth Financial

Contractor, June 2009 – January 2010 (8 months), Los Angeles, CA

  • Deployed my custom framework to create a web application designed to help automate and manage the company's unique financial situation.
  • Converted the standing system of hard-coded site navigation (PHP Arrays representing the many rules that control user flow for 100+ domains) into a dynamic database-stored process with it's own CMS application. Additionally, I created a process that migrates the old PHP Array files into the appropriate database records.
  • Tied in new user data with outbound API requests for 3rd party information sharing promotions.
  • Created a Profile Generator that randomly filled out expected profile fields with random data based on number ranges and lists.
  • Taught the long-term PHP staff the joys of Autoload and OOP.

Reason for leaving: I grossly miscalculated the time and resources required to finish the contract.

EternalSpace

Systems Designer, April 2008 – June 2009 (1 year 3 months), Los Angeles, CA

  • Deployed my custom framework to create a web application designed to help automate and manage the company's unique financial situation.
  • Converted the standing system of hard-coded site navigation (PHP Arrays representing the many rules that control user flow for 100+ domains) into a dynamic database-stored process with it's own CMS application. Additionally, I created a process that migrates the old PHP Array files into the appropriate database records.
  • Tied in new user data with outbound API requests for 3rd party information sharing promotions.
  • Created a Profile Generator that randomly filled out expected profile fields with random data based on number ranges and lists.
  • Taught the long-term PHP staff the joys of Autoload and OOP.

Reason for leaving: The Great Recession kicked off, and the company went bankrupt.

Juice Wireless

Senior PHP Developer, December 2007 – April 2008 (5 months), Los Angeles, CA

  • Developed additional social networking features in a code base that consisted of five different frameworks, each with no documentation.
  • Optimized database (MyISAM, InnoDB, Memory) calls to reduce locking and query times from 9 seconds to 1 second.
  • Created the iPhone portal using the Symfony framework within my first week of employment.

Reason for leaving: Another company (EternalSpace) wanted to use my framework for their core projects.

Cyber Flow Solutions

Senior PHP Developer, August 2007 – December 2007 (5 months), Los Angeles, CA

  • Developed the PHP back-end classes that handled mySQL maintenance for photos, user logins, movies, and many other project objects.
  • Wrote the thumbnail/watermark generator script. (using ImageMagick command-line arguments)
  • Worked at length with the Flex front end team and the end-user to troubleshoot bugs as they happened.
  • Imported code from my personal projects made 3 years ago that provided administrator-level screens for record modification. (A script called forms() which handles the checking, displaying, and submission of HTML forms strictly as PHP objects.)

Reason for leaving: A third of the information worker were laid off due to changes in the Canadian exchange rate.

Education

Full Sail Real World Education Jul 2002 to Jul 2003

Winter Park, FL

Associate of Science in Recording Arts

References

VP of Engineering at Drinks.com

Worked under him at Meteor Games. Contact information avaibile upon request.

Associate Director at Pivotal Labs

Worked under him at Meteor Games. Contact information avaibile upon request.

About

Patrick Ryan's resume

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published