PHP Developer in Nanaimo, BC, Canada
Senior Software Engineer2014 - 2015Fox Sports Pulse
Technologies: Perl, Python, AngularJS, Flask, SES, jQuery, MongoDB, Ionic Framework, Node.js
- Developed a marketplace-like application from the ground up working as sole developer. This marketplace application would create a new revenue stream for them by allowing them or 3rd party applications to plug-in to their existing applications with minimal setup. I set up the application in a decoupled manner using Python and Flask to set up the back-end API and AngularJS for the front-end admin interface. Interacted with stakeholders to present progress and develop iteratively based on their feedback.
- Completely refactored email sending for the main Fox Sports Pulse application. Email sending was previously being performed from dozens of different places in the application. When something went wrong with email, it was previously very difficult to figure out the reason and how to fix it. I worked with the CTO to identify what exactly the previous problems were. Based on that and the vision they would like to have for the email, I planned out a model for preventing the previous issues and researched best practices for working with Amazon's SES (their email provider at the time). After setting up the model and code, I slowly changed the existing email sending code to use the new library. The new email system now allowed them to: send email much faster, have a record of what email was sent, track bounces and complaints, prevent future sending to hard bounced emails (as per SES' guidelines) and send attachments.
- Assisted a junior developer with help developing an HTML mobile app using AngularJS and Ionic framework. Identified areas in the code for improvement and came up with solutions for implementation based on loosely defined specifications. Worked with stakeholders to help get specific on details of what they were looking for for an MVP. Helped move the application towards launching by focusing on priorities. Mentored the junior developer and provided feedback on code structure and development practices.
- Implemented various features in a legacy Perl application as needed. Understood very tricky parts of the system when making changes and wrote unit tests when possible. Helped move the application towards more modern development structure by incorporating ORM into codebase. Made presentations to the development team on the benefits of moving to Git and using the Perl debugger. Performed code profiling to identify the reasons for slow parts of the system and made improvements resulting in substantial speed up of loading particular pages.
- Wrote thorough documentation on the main projects I worked on as well as the new email setup, code profiling in Perl, and debugging in Perl.
Senior Web Application Engineer2013 - 2015DelfiNet Software Consultancy
Technologies: PHP, CakePHP, Zend Framework, Twitter Bootstrap, MySQL, Twig, jQuery
- Came into summitevergreen.com and helped get a disorganized project back on track and get it to launch by helping the project owner identify high priority issues. Identified and corrected bugs and illogical flows/code. Refactored long controller actions into well designed model classes. Simplified code to help with readability and understanding. Fixed issues with Stripe, 1ShoppingCart, Aweber, and InfusionSoft integration. Created library classes for 3rd party API connections for easy re-use.
- Integrated custom CakePHP system for iwillteachyoutoberich.com/dreamjob with 1ShoppingCart. Tied Zendesk into the system whereby agents can interact with tickets directly from Dreamjob. Set up caching to eliminate bottlenecks and provide for a smooth launch to thousands of users. Integrated Cake's SoftDeleteBehavior and fixed bugs with it to work with the codebase. Extending Cake by writing special components to provide extra functionality (i.e., AJAX, file downloads) while being able to drop-in and re-use in future projects.
- Testimonial: "Matt possesses one of those qualities that is critical in a talented system engineer: the ability to think through a problem on his own. Many recommendations for programmers say 'great to work with' or 'gets things done on time,' but very few talk about initiative and the ability to work through a solution on their own. Matt is a talented engineer who I trust to develop a solid and extensible solution with only broad strokes as guidance. His talent at not only at programming, but also problem solving, has saved me countless hours of micro-management because I can trust him to take an idea and run with it, accomplishing a complete and tested solution that continually exceeds my expectations. I would hire Matt again in a heartbeat." —Keith Perhac, Director.
Senior Web Application Engineer2012 - 2013Sprongo.com
Technologies: PHP, Yii Framework, MySQL, Rackspace Cloud, Zencoder API
- Worked as technical lead and sole developer responsible for all back-end development and server maintenance. The site was used by over 10,000 and had several terabytes of uploaded video files.
- Helped guide a major site redesign spanning 9 months with very few issues on launch. The redesign affected every area of the site and resulted in the site being more social, ability for users to open up their videos to the public (from a previously closed system), allowed for better loading and quicker access of related videos.
- Identified and fixed bottlenecks, dramatically improving the site response time. Upon the redesign launch, large teams were experiencing non-loading pages. I single-handedly identified the SQL and data performance issues and rewrote queries to improve the load time from minutes to just over 1 second. Caching further reduced this time later on.
- Streamlined systems to reduce unnecessary steps, saving time and money. After coming on board, I identified systems that were not needed anymore. This saved the company $600/month.
- Testimonial: "In his position, Matt oversaw a major rewrite of the site and the introduction of a number of new features. He single handedly completed the required back-end tasks and successfully coordinated integration with the front-end. Thanks to his efforts our user base grew 2.5x while Matt was working at Sprongo. Matt’s disciplined and systematic approach, attention to detail and willingness to go the extra mile, made him an efficient and effective developer. Matt’s effective oral and written communication skills contributed to effective communication and coordination across our team, which at the time was distributed across three different continents. Any development team would be lucky to have Matt on board." —Can Babaoglu, Founder.
Senior Developer Consultant2011 - 2012Escort Design
Technologies: PHP, MySQL
- Worked with the site owners and junior developers to improve the development process.
- Put processes in place to fix bugs.
- Fixed loading issues.
- Identified and improved areas of the development process.
- Set up a testing framework and continuous deployment integration systems.
- Testimonial: "Matt’s a self-motivated programmer whose knowledge of web app development best practices has been invaluable to our team. Breaking down problems into achievable goals is a great asset." —Zak, Director.
Senior Developer2010 - 2011Bulldog Marketing Technologies
Technologies: PHP, Zend Framework, Yui, PHPUnit, MySQL, FileMaker, Sphinx, Phing, Hudson
- Served as lead developer contributing to most of the codebase.
- Designed and implemented complex functionality such as a Dynamic Access Control List (ACL) system based on Joomla 1.6.
- Developed code to easily support future feature requests, thereby saving time and money down the road.
- Refactored original code to improve readability and maintainability.
- Implemented PHPUnit testing.
- Set up a Hudson Continuous Integration server for immediate developer feedback on builds after commits.
- Pulled data from third-party systems such as Autodata and HomeNet.
- Built an app from the ground up in use by 50-60 dealerships.
- Testimonial: "Matt has a passion for technology and for learning. He uses his abundant skills and experience to conceive creative solutions for all types of projects. Matt looks at problems as opportunities to be solved and enjoys seeing his solutions help others. Matt is extremely intelligent while remaining humble and easy to work with. He mentors junior members in a kind but authoritative way. Any team would be fortunate to have Matt!" —Jamey Davis, Technical Lead.
Intermediate Developer2008 - 2011Vivid Solutions
Technologies: Java, J2EE, JDBC, JSP, JSTL, Struts, Tiles, Oracle 10g, PL/SQL, Crystal Reports, YUI
- Developed an application using J2EE, Struts, and JSP. Contained the app within an existing app and included a check during user login to forward specific users to this new application. Worked with the project manager and senior developer responsible for the data model. Created screen mockups, developed the codebase, and wrote documentation.
- Entered the project when it was running behind schedule and got it up to speed quickly. Built sections including a multi-step Add Project wizard, multiple sub-screens, and setup form validation for the project using Struts Validator.
- Performed bug fixes and implemented new features as required.
- Created and updated Crystal Reports.
- Refactored and improved code as needed.
- Testimonial: "Matt is punctual and hard-working, self-motivated individual, personable and easy to work with. During his stay Matt demonstrated a high level of commitment to learn whatever was required to complete the assignments required of him and managed his time as appropriate." —Todd Warnes, Director.
Web Application Developer2009 - 2010Elevated Ventures
Technologies: PHP, MySQL, Django, Python, Apache, Smarty, CodeIgniter, jQuery
- Created various web applications from scratch according to specifications using PHP, Smarty, CodeIgniter, Django, Python, and MySQL. Worked as a team of one solely responsible for the projects and worked directly with the partner.
Junior Web Developer2007 - 2008Pensions Corporation of British Columbia
Technologies: J2EE, Java, JDBC, JSP, JSTL, Struts, Tiles, Oracle Portal, Eclipse
- Solved bugs and upgraded web applications, resulting in improved performance.
- Developed sections of a new workshop registration system.
- Maintained and performed updates to corporate intranet.
- Soapbox Guru (Development)
Soapbox Guru helps people improve their public speaking. It is a video site for people to receive feedback on their speeches and presentations.
* Developed concept and idea with a friend
* Hired and worked with an external designer
* Developed all code
- 1widget - Twitter and RSS Website Widget (Development)https://github.com/mattmccormick/1widget
1widget is a Twitter/RSS feed aggregator that allows people to easily combine multiple Twitter and RSS feeds into one digest that can be inserted on their website. It gives users an easy way to provide their website visitors with dynamic content about the website topic.
* Conceived idea and developed concept with a partner
* Hired and worked with external designer and SEO consultant
* Developed all code
- TouchingBase.io - Automated Personalized Follow Ups (Development)
TouchingBase.io helps you win more business by making sure you touch base with potential and previous customers.
A quick SaaS app I built using Django, Python, the Gmail API, PostgreSQL, Nginx and Gunicorn.
Developed idea and programmed the whole site.
FrameworksYii, Zend Framework, Django, CakePHP, Bootstrap 3, PHPUnit, Angular, Ionic, Yii 2, Laravel, CodeIgniter, Ruby on Rails (RoR), AngularJS
Libraries/APIsGmail API, jQuery, Google Maps, Stripe API, Underscore.js, YouTube API, Infusionsoft API, MailChimp API, YUI, Node.js, Twilio API, PayPal API, Twitter API, Facebook API
ToolsEclipse IDE, Apache, Bitbucket, MailChimp, Hudson, Firebug, Beanstalk, PyCharm, PhpStorm, Zend Debugger, Microsoft Access, FileMaker, Nginx, Geany, Vagrant
ParadigmsModel View Controller (MVC), Object-oriented Programming (OOP), Agile Software Development, Object-oriented Design (OOD), Design Patterns, REST, Unit Testing, Minimum Viable Product, Continuous Integration (CI), Rapid Application Development, Test Automation
OtherWeb App Development, Ajax, APIs, Unix Shell Scripting
PlatformsUbuntu, Linux, NetBeans
StorageSQLite, MySQL, Oracle PL/SQL, MongoDB, PostgreSQL
- Bachelor of Science degree in Computer Science1999 - 2005University of Victoria - Victoria, BC, Canada