Mark Campbell - Ruby Enthusiast

location: Winnipeg, MB
mobile: 204-963-9981
email: [email protected]

Profile

Experience

Software Development Team Lead
Sermo, Toronto, Canada
January 2016 - Current

  • Remotely led a team of developers and designers ranging from PST timezone to eastern Europe
  • Designed and implemented services with AWS technologies (too numerous to mention!), serving as a networking and devops engineer full time for about a year
  • Full stack developer for services related to ETL, BI, and data operations with data warehousing, reporting, and monitoring implemented with ETLWorks, AWS RedShift, Metabase, etc.
  • Implemented several new stand-alone Ruby on Rails based apps as a full stack developer with unit and integration testing as a focus
  • Directed the implementation of an overall QA strategy and trained team members to become proficient with automated testing tools
  • Begun the implementation of a DataOps method of BI
  • Built new JSON and Thrift APIs between .NET based apps and Ruby on Rails based apps (and maintained them of course)
  • Successfully migrated and put into maintenance existing Ruby on Rails based apps in a split Ruby on Rails and .NET ecosystem to a primarily .NET based ecosystem
  • Dockerized several rails apps and Jenkins itself for CI/CD purposes
  • Successfully transitioned several large Ruby on Rails apps on an old Amazon Linux AMI with Puppet 2 to a modern Ubuntu release with Puppet 3
  • Implemented a streamlined deployment strategy à la GitHub flow along with CI/CD with Jenkins and GitLab
  • Built monitoring systems for AWS based services (Sentry, CloudWatch, dashboards, PagerDuty, etc.)

Software Development Team Lead and Ruby on Rails Developer
theScore, Toronto, Canada
June 2013 - January 2016

  • 'Go-to person' for many issues due to breadth and depth of knowledge of systems at theScore
  • Technical recruitment of new employees to the company via monthly hack nights
  • Speaker on multiple occasions for the Ruby Tech Talks in Toronto
  • Solved tons of long-term technical debt with automated testing and rapid change
  • Led a team of developers and mentored juniors into high performance employees
  • Developing the JSON API that theScore's mobile devices (Android, iPhone, etc.) consume
  • Effectively upgraded and modernized a large custom legacy python project and replaced/upgraded large portions of it
  • Upgraded and effectively impelmented integration testing in a complex queue based push alert system (millions of devices, 1+ billion messages per month)
  • Queuing systems with beanstalkd and Sidekiq
  • Architecting new applications and testing infrastructure, including a system with 10,000 RPM using Rails and MySQL to service 10 million users
  • Caching strategies from CDNs (CloudFront/Akamai) to Varnish HTTP caching to fragment caching within Rails
  • Implementing AngularJS based administrative interfaces
  • Experienced with Splunk for operational alerts and ad-hoc reports
  • Augmenting server deployments using Ansible
  • Working with various AWS components

Ruby on Rails Developer
Wave Accounting Inc., Toronto, Canada
December 2011 - May 2013

  • Key member involved in building Wave Payroll
  • Applied RSpec and Capybara tools to achieve 90%+ test coverage
  • Collaborated and worked remotely with colleagues in US and Canada
  • Worked closely with Rida Al Barazi, author of Beginning Rails 3
  • Domain expertise in Electronic Funds Transfers (moving over $6 million a month), credit cards, and implementing Canada Revenue Agency requirements
  • Designed and implemented fraud detection for Wave Payroll
  • Technologies used: Ruby on Rails, Git, beanstalkd, Redis, MySQL, cucumber, nginx, unicorn, and more

Co-founder, Ruby on Rails Developer
ArrangeMySeat
October 2011 - December 2014

  • Co-founded a seating arrangement web-application with Nathan Bertram (http://about.me/nathanbertram)
  • Uses Ruby on Rails and JavaScript to deliver a complete Eventbrite-like experience with seating choices in mind
  • Seating plan designer built in Raphaël JS
  • Integrated with PayPal to remit money to event organizers

System/Database Administrator
Agriculture and Agri-Food Canada, Winnipeg, Canada
January 2011 - September 2011

  • Developed automation tasks for Oracle database backup and data warehousing
  • Performed security audits of HP-UX and AIX Unix environments
  • Exported End of Life products from obscure, proprietary formats to portable formats to ensure continued availability of data

Application Developer
Manitoba Government, Air Services Branch, Winnipeg, Canada
May 2010 - August 2010

  • Authored technical manual detailing systems used to run Air Ambulance, fire fighting, and chartered flight programs for developers and system administrators
  • Developed critical business application for aircraft flights, Transport Canada regulations, and Manitoba government requirements
  • Redesigned a critical recertification application and implemented in a 3 client – 1 server configuration for centralized data reporting

IT Consultant
Extreme Computer Systems, Minnesota, USA
January 2009 - December 2014

  • Configured, set up, and administered Cisco VoIP phone and data environments
  • Designed and created websites with Photoshop, C4D, and web-related languages
  • Created internal CRM website developed with Ruby on Rails
  • Built, configured, repaired, and maintained computers for clients

Languages, Technologies, and Techniques

  • Ruby
  • Ruby on Rails
  • Python
  • AWS (CloudFormation, etc. etc.)
  • pytest
  • Sinatra
  • JavaScript/Node
  • Splunk & ELK
  • Cucumber (Rails)
  • Strong sql skills
  • ETLWorks
  • Metabase
  • mod_security
  • Redis
  • Sidekiq
  • RSpec
  • Capybara
  • Beanstalkd
  • Git
  • Bash/Ksh/Zsh
  • Jenkins CI/CD workflow administration
  • MySQL administration
  • PostgreSQL administration
  • Oracle administration
  • Ansible & Puppet
  • TDD & BDD
  • MVC & MVVM
  • Varnish
  • Agile and Scrum
  • Vim
  • MS-Access
  • CCNA Level 1

References

References are available on request