I have experience across several different products and environments; my career has demonstrated that I'm able to adapt and work with varying needs, delivering solutions to a range of stakeholders and clients.
I have authored several open-source WordPress plugins and themes, available in the WordPress theme and plugin repos.
I publish a tech blog at Planetjon.ca, active since 2001.
Stack Sports is a global leader in sports management software and services.
An e-commerce-centered data persistence and third-party vendor integration API. I was instrumental in carrying it from beta to production.
What's notable about my work on this project has been the process of porting the codebase from a legacy framework to Laravel, and in the process re-architecting the app to be more modular, maintainable, and testable.
I designed a robust API, using an OpenAPI schema to validate the integrity of requests and responses.
I used MongoDB to store data documents, allowing for nested data formats.
I leveraged Elasticsearch for implementing a powerful search functionality. To allow the app domain and ES queries to co-exist without tight coupling, I implemented search criteria transformers to map domain models to Elasticsearch queries.
I implemented serverless functions to facilitate certain integration tasks coming from other products such as catalog population and order placement. This was done by moving task-related files to an S3 bucket, triggering its related Lambda function which in turn makes use of the Kiosk API.
Skycam is a cloud-based image CDN. I worked on enhancing its security implementation and maintaining its OpenAPI schema.
What's notable about my work on this project has been the challenge of refactoring the existing codebase into a state where configuring service-level and endpoint-level middleware is possible.
I enhanced the security of the API by ensuring that the OpenAPI schema clearly notes which endpoints require a JWT.
I aligned the API gateway configuration with the OpenAPI schema to ensure that endpoints requiring a JWT are properly protected.
I maintained the OpenAPI schema to ensure it reflects the current state of the API, and used it to generate API documentation.
An internal dashboard and management portal for performing administrative tasks involving company systems. I spearheaded this initiative from ground up, working from initial wireframe designs and high-level functionality requirements.
What's notable about my work on this project has been the meeting the multiple changes in direction and scope as the stakeholders' needs evolve.
I started this project as a client-only CRA app, but later ported it to Next js as its scope and requirements grew.
I leveraged Chakra UI for rapid LAF development, but extracted recurring elements into their own components and higher order components.
This project is really a collection of tangentially related and unrelated admin pages. As such, there is no one size fits all approach. However, I have worked to maintain a convention for organizing pages, components, 3rdparty integrations, and endpoints.
A coach and evaluator portal for onboarding players and tracking their game performance and progress through seasons. I was instrumental in all aspects of this project.
What's notable about my work on this project has been the iterative process of adapting to several increasingly complex design specs with minimal impact to existing functionality.
I developed entity models for capturing business requirements, and validation rules for applicable use contexts.
I designed Blade templates for rendering static structures and providing scaffolding for integrating dynamic Livewire components.
I implemented interactive UI components with Livewire, leveraging its reactivity and server-side integration to minimize the amount of custom JavaScript needed.
A source of truth for person-oriented data. I implemented various endpoints as per spec.
What's notable about my work on this project is the provided opportunity for learning .NET for the first time, transitioning from fumbling to meaningful contributions.
I developed a comprehensive API for storing and retrieving person-oriented data including relations to other persons.
A session management system and source of truth for identity-related data. I worked with my team to preserve and modernize the existing service functionality.
What's notable about my work on this project has been the challenge of porting code from Node js to ASP.NET Core while preserving existing behaviour and intent.
I ported the original Node js implementation to this C# version with attention to preserving existing behaviour and shortcomings.
I integrated with AWS Cognito for handling authentication and authorization.
I refined this API to a v2 iteration, with a focus on legacy-breaking improvement for the sake of providing a better integrator experience.
Ford Motor Company is an American multinational automaker.
Sync4 is Ford's next generation in-car communications and entertainment system. I worked with the dashboard team to build out interactive UX views and app state management as well as an SDK for communicating with the middleware.
Implemented UX views to spec with React, React-Redux, and Redux-Saga.
Middleware communication through MQTT topics.
Built an SDK generator which consumes protofiles and MQTT topics map, and generates a documented JS library.
App state optional persistence with Redux-Persist.
Performance tuning with React Dynamic Modules and React-Loadable for lazy loading components on demand.
Assessment and measurement of performance through code profiling with Chrome devtools.
Rerender optimization with shallow comparison and Reselect props caching.
ES7 JavaScript through Babel transpiler.
Typesafe JavaScript through Flowtype.
Project build managed with Webpack and Rollup.
Ifs, Ands, or Buttons is a Canadian designer focused on socially progressive ideas.
ShowWiz is a platform for discovering arts and crafts shows and featuring makers.
Architected ShowWiz as a platform.
Leveraged WordPress as the platform backbone for its wide offerings of capabilities.
Implemented project requirements by refinement of third-party software through integration of proprietary PHP code.
Implemented modular featuresets through bundling of code in WordPress plugins.
Built out UX with HTML5, CSS3, JavaScript, and jQuery for a rich interactive experience.
Built out backend and service layer with a traditional LAMP stack behind an Nginx reverse proxy.
Configured and deployed project infrastructure on a cloud environment.
Integrated third-party services including Google Cloud Platform and Mailgun.
Fleshed out technical roadmap and assembled product requirements into user stories. Groomed backlog into release sprints.
Pythian is a global IT services company specializing in data and cloud.
PythOS is Pythian's provider/client portal. I worked on building out UX views and middleware API development.
Fullstack cloud developer on the PythOS platform.
Route endpointing and API implementation with Node.js/Express middleware.
Backend interfaced through custom portal as well as Jira API.
Client UX implemented with React.js/MobX and styled with SemanticUI components.
Data visualization widgets rendered with D3.
Product developed and delivered through Agile methodology, coordinated with Jira.
Team collaboration coordinated with Git and Bitbucket.
Use of NPM and Webpack to manage and package dependencies.
Use of Babel to bring modern JavaScript to the browser.
Use of ES Lint and TS Lint to help test the integrity of code quality and type checking prior to runtime.
Use of Jest and Enzyme to write and perform Unit Tests.
Use of Docker containers for local and production deployment.
Use of Jenkins for continuous integration and build orchestration.
Use of OutSystems to rapidly prototype a proof of concept prior to project green light.
Pointstreak is a sports technology company specializing in web-based software for managing organized sports.
Performance is a comprehensive platform targeted towards management of organized sports. I worked on the full stack to bring it from beta to production.
Core and lead developer on the Performance platform, an encompassing web-based solution for managing organized sports. My role has been integral in bringing Performance from beta to maturity, serving a customer base in the tens of thousands.
Backend leverages MySQL database and PHP middle tier hosted on Amazon AWS services, served through Nginx. description logic is handled through a custom PHP framework which I have been responsible for writing or enhancing the majority of components.
Frontend leverages Bootstrap for streamlining the look and feel, and a synergy of Bootstrap and jQueryUI widgets. D3.js library is used for presenting charts and graphs of player performance data. Dynamic views are achieved with AJAX and EJS templates.
Made significant contributions to a multi-dimensional hierarchical data metric aggregator, used for calculating and caching season averages and totals on player statistics.
Project management utilizes agile methodologies and JIRA software to plan releases and manage the work log. As team lead, I work tightly with product management to maintain transparency on progress and projections, as well as keep expectations in check with what is viable within time constraints.
Lixar is a Canadian IT consulting company.
APBA Baseball is an online fantasy baseball game. I worked on building out UX views and refining a WordPress middleware.
Developer and WordPress expert on the APBA Baseball Fantasy League project, a modernized web-based app from the original email-based game.
Technologies leveraged include Tomcat Java enterprise backend responsible for description logic, PHP and WordPress/BuddyPress middle-tier served through Nginx responsible for serving client requests and working as a proxy to the Java backend.
My expertise was called upon in advising project management with regards to best separation of concerns between the middle-tier and the BI backend, as well as advising on best practices for customizing WordPress/BuddyPress.
BuddyPress and WordPress were heavily customized through custom hooks to inject and modify behaviours as specified by the project requirements.
Made significant contributions toward a site-wide chat integration, and the realtime Team Draftroom through which all customers participated in preparing their fantasy team during the drafting event.
Project management utilizes agile methodologies and JIRA software to plan releases and manage the work log.
Native English fluency, moderate French fluency
References are available on request.