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