Christopher Morris
Coffee. Code. Complete
chris.themorrises.xyz |
morriswchris@gmail.com |
905.302.0143
Summary
- 15+ years of experience working with RDMS
- 15+ years of web application development and system design
- 15+ years of experience using middle-tier caching layer services and network technologies, including Redis, MongoDB, Memcache, Apache2, and Nginx
- Fullstack Engineer active in all areas of development including infrastructure, CI/CD setup, development process design and engineering leadership
Current Stack:
- Ruby on Rails backend with VueJS Frontend
- MySQL 8, Redis, ElasticSearch
- Terraform, Docker, Kubernetes with Flux
- AWS
Talks
Kafka Summit SF - Oct 16-17th 2018
Don’t you love signing in to your favorite application only to discover it’s undergoing scheduled maintenance? I know I don’t!
Designing scalable systems is a challenge all software engineers face. Ultimately this means you will find yourself in a situation
where you need to upgrade your software engines for better performance. In this session, I will guide you through the experience of swapping out PagerDuty’s original prop engine consisting of a Cassandra
queue-based system to that of a 747 which utilizes Kafka not only for ingestion of customer data but also internal heuristics and
back pressure support.
Professional Experience
OpsLevel
Being a founding engineer at OpsLevel requires deep technical knowledge and strong engineering leadership capabilities. As the company continues to scale, the founding engineer must know which processes to adopt at the right moment. As with any startup, a staff founding engineer has more responsibilities than just writing software.
Staff Engineer - Founding
May 2019 - Present
Technologies and Tools: Ruby on Rails, VueJS, Kubernetes, MySQL, ElasticSearch, SideKiq
Key Responsibilities
- Creating the SDLC process for the engineering org in partnership with the CTO
- Creating the technical strategy, including the core technical stack
- Implementing features for the Catalog, Maturity, and Integration pillars of the product
- Maintaining infrastructure, including CI/CD configuration and database maintenance
- Product Owner on deep technical projects, including custom properties/objects, Search, and Integration SDK
- Product Owner for public GraphQL API
- Scaling engineering organization from 2 to 15+ engineers, including creating interview loops, career matrix, and team structures.
- Engineering Manager for one engineering team
Being an engineer at PagerDuty requires each team to be responsible for the services they develop, including their infrastructure, taking on the true meaning of DevOps. PagerDuty requires extensive knowledge of the full application stack and infrastructure while being able to operate at scale.
Senior Software Development Engineer (SDEIII), Growth
June 2018 - May 2019
Technologies and Tools: Elixir, Ember, Ember-CLI, Ruby on Rails, Sass, Kafka, Percona, Splunk, DataDog
Key Responsibilities
- Kickstart the growth engineering initiatives
- Act as liaison between Marketing/Business Operations and the engineering organization
- Instrument, measure, and improve the trial experience to increase the conversion rate from trial to paid account
- Implement experimentation framework for data-driven development
- Launch of new pricing initiative(s)
- Active in the SDLC, including sprint planning, sizing, execution, and demos
- Active on the On-Call rotation
Software Development Engineer (SDEII), Event Management
August 2016 - June 2018
Technologies and Tools: Ember, Ember-CLI, Scala, CoffeeScript, Ruby on Rails, Sass, Kafka, Cassandra, Percona, ZooKeeper, Splunk, DataDog
Key Responsibilities
- Provisioning of new Kafka clusters over SSL in all environments
- Launch of the Suppression module for events
- Launch of a service that stores and executes rules
- Optimization of the current event ingestion pipeline
- Release of a new public API for harvesting events in a common format
- Responsible for all things EmberJS on the team
- Active in the SDLC, including sprint planning, sizing, execution, and demos
- Active on the On-Call rotation for the Event Management services (yes we dog-food our product)
FinanceIt
Engineer, Risk
January 2016 - August 2016
Engineer, Partner On-boarding and Growth
November 2014 - January 2016
The role of Engineer, Partner On-boarding and Growth at FinanceIt required extensive knowledge of the full application stack while having the ability to explain technical solutions to other departments. Being the main engineer for partner growth meant having the ability to understand growth tactics, as well as bottlenecks for allowing the smoothest on-boarding process without sacrificing fraud security.
Technologies and Tools: Ruby on Rails, CoffeeScript, Cucumber, Rspec, BackBone, underscore, jQuery, bootstrap, font-awesome, Sass.
Key Responsibilities
- Lead technological initiative for developing sound growth tactics to get Partners approved and integrated into the system with ease.
- Integrated with LexisNexis in the USA and developed a corporation verification system to validate against credit bureaus and risk analysis tactics for partner onboarding.
- Integrated with AVS in Canada for corporation verification by both province and country-wide.
- Single point of contact for all things related to Partner onboarding and retention.
- Developed action plan with timelines to implement growth tactics for Partner sign-ups.
- Lead initiative for converting Ruby on Rails asset pipeline to utilize Gulp for faster build times.
- Worked on deployment management software utilizing Rugged so that QA engineers can manage and deploy features to testing environments.
- Conducted company-wide training of new features for Partner On-boarding and Retention.
- Participated in
Ruby Like its Thursday
technical presentations, including presenting conditional waterfall logic using AASM to pass through various states.
Synacor Inc.
Engineer, Email Team
October 2013 - November 2014
The role of front-end engineer for the email team at Synacor required extensive knowledge of
JavaScript (particularly the BackboneJS AMD framework), AJAX, HTML5, CSS3, NodeJS, and other
related web technologies. The front-end developer was also responsible for developing impromptu
solutions for a fast-paced, client-driven environment while developing the next generation of mobile
webmail experience.
Technologies and Tools: NodeJS, Grunt, BackBone, underscore, QUnit, requires, npm, bower, jquery, bootstrap, font-awesome, momentjs, log4javascript, lesshat, LESS, hammerjs.
Key Responsibilities
- Architected the use of requirejs as the primary AMD loader with BackBone.
- Lead successful migration from private git repositories to the use of Atlassian Stash/Crucible
(with a new workflow for code reviews).
- Development of simple grunt configuration (https://github.com/morriswchris/grunt-simple-config),
spread across multiple modules, for easy additions to our development stack without merge
conflicts.
- Development of a pre-compiled template manager for use in BackBone. Created with the gruntcontrib-jst
task for build time compilation and AMD namespacing using folder directories.
- Development of grunt-jst-i18n (https://github.com/morriswchris/grunt-jst-i18n) for extrapolation of
templates containing dynamic data as well as i18n data. The grunt task allows for one template
to be extrapolated into static HTML for all supported locales, based on language module
directories.
- Lead initiative for TDD using requirejs and QUnit. Added grunt-contrib-qunit support to ensure
full test coverage during build process.
- Created environment documentation for onboarding of new developers to the email team.
Documents included coding conventions, template manager, i18n, logging, architecture, Stash
transition.
- Completed code reviews and merging of branches for other team members using the GitFlow workflow.
Developer, Full Stack
2012-2013
The development team is responsible for the migration and integration between two of the most
predominant daily deal websites in Canada; Dealfind.com and Buyers Unite Inc. (teambuy.ca). With the
merger, the development team will be migrating the current DealFind.com database to the teambuy.ca
platform, as well as expanding the teambuy.ca web application to support US funds. Post-migration, the
development team is responsible for daily health of the web application as well as future expansion
requests.
Technologies and Tools: PHP5, MySql, RHEL6, Ubuntu, Redis, Memcache, Jira, HipChat, Github,
Git, netbeans, sublime text 2, xdebug, SOAP, WSDL, backbone.js. underscore.js, JSON, Jquery,
Bootstrap, ExactTarget, Netbanx (Optimal), CodeIgniter.
Key Responsibilities
- Lead migration of user and merchant data from Dealfind.com to teambuy.ca, including seamless
user password migration to new hashing scheme.
- Lead migration and API integration of Netbanx (Optimal) for US currency support and credit
card tokenization.
- Lead migration for US/CAD currency support of promotion codes.
- Day-to-day support for issues that arise within the application.
- Backend development for server-side level tools and utilities.
- Frontend development for both user and merchant facing aspects of the web application.
- Both frontend and backend development for CMS tools needed for day-to-day operations of the site.
Software Engineer
2011-2012
The software engineering team at Buyers Unite Inc. (www.teambuy.ca) is responsible for providing
solutions to both new features and current issues faced by a mid-sized e-commerce platform. As a
member of the engineering team, my main responsibilities are to utilize state-of-the-art and emerging web technologies to provide the greatest solution for both the business and the customers while obtaining a high level of website availability.
Technologies and Tools: PHP5, MySql, RHEL6, Ubuntu, Redis, Memcache, Jira, Github, Git,
netbeans, sublime text 2, xdebug, SOAP, WSDL, backbone.js. underscore.js, JSON, Jquery, Bootstrap, ExactTarget, Netbanx (Optimal), CodeIgniter.
Key Responsibilities
- Lead migration and API integration for moving current list-based subscriptions to data
extensions in ExactTarget.
- Lead implementation of Role Base Access Control (RBAC) system for CMS platform.
- Support and continue development of Linkshare / Pepperjam affiliate network integration.
- Lead migration and API integration of Netbanx API (Optimal) while still allowing PayPal express and a checkout option.
- Day-to-day support for issues that arise within the application.
- Backend development for server-side-level tools and utilities.
- Frontend development for both user and merchant facing aspects of the web application.
- Both frontend and backend development for CMS tools needed for day-to-day operations of the site.
Quality Assurance Manager / Junior Developer
2010-2011
Buyers Unite Inc., better known by its website address as www.teambuy.ca, is a startup group-buying platform, originating in Toronto. This website is operated and maintained by a five-man development team. The role of junior developer consisted of day-to-day operational tasks, such as bug fixing and database queries, while attaining further development initiatives of the current platform. The quality assurance manager position required spearheading a quality assurance program that consisted of unit testing and regression testing.
Technologies and Tools: PHP5, MySql, Ubuntu, Memcache, Redmine, Unfuddle, Github, Git,
netbeans, SOAP, WSDL, JSON, Jquery, CodeIgniter, VMware, McAfee PCI, PCI.
Key Responsibilities
- Lead integration of unit test and regression test framework development. This includes setting up templates, coverage scripts, and process documentation.
- Lead application-wide security audit process by external security experts. Research industry-standard solutions to security issues and apply appropriate patches.
- Aid in migration from company UAT testing suite on Google docs towards proper acceptance testing framework with unit test and regression test tracking.
- Member of the development team responsible for implementing a Merchant Control Panel facet of the platform.
- Frontend/backend developer for all user facing facets of the web application.
- Frontend/backend developer for CMS platform.
Projects of Interest
Education
- B.A., Specialized Honours in Information Technology (Technology and Society) - York University, 2011.
- CompTIA Network+ Professional.
- PADI certified scuba diver.