_____ _____ _____ _____ _____ _____ _______ _____ _____ _____ /\ \ /\ \ /\ \ /\ \ /\ \ /\ \ /::\ \ /\ \ /\ \ /\ \ /::\ \ /::\ \ /::\ \ /::\ \ /::\ \ /::\ \ /::::\ \ /::\ \ /::\ \ /::\ \ /::::\ \ /::::\ \ /::::\ \ /::::\ \ /::::\ \ \:::\ \ /::::::\ \ /::::\ \ /::::\ \ /::::\ \ /::::::\ \ /::::::\ \ /::::::\ \ /::::::\ \ /::::::\ \ \:::\ \ /::::::::\ \ /::::::\ \ /::::::\ \ /::::::\ \ /:::/\:::\ \ /:::/\:::\ \ /:::/\:::\ \ /:::/\:::\ \ /:::/\:::\ \ \:::\ \ /:::/~~\:::\ \ /:::/\:::\ \ /:::/\:::\ \ /:::/\:::\ \ /:::/__\:::\ \ /:::/__\:::\ \ /:::/__\:::\ \ /:::/__\:::\ \ /:::/ \:::\ \ \:::\ \ /:::/ \:::\ \ /:::/__\:::\ \ /:::/__\:::\ \ /:::/ \:::\ \ /::::\ \:::\ \ /::::\ \:::\ \ /::::\ \:::\ \ /::::\ \:::\ \ /:::/ \:::\ \ /::::\ \ /:::/ / \:::\ \ /::::\ \:::\ \ /::::\ \:::\ \ /:::/ \:::\ \ /::::::\ \:::\ \ /::::::\ \:::\ \ /::::::\ \:::\ \ /::::::\ \:::\ \ /:::/ / \:::\ \ /::::::\ \ /:::/____/ \:::\____\ /::::::\ \:::\ \ /::::::\ \:::\ \ /:::/ / \:::\ \ /:::/\:::\ \:::\____\ /:::/\:::\ \:::\ \ /:::/\:::\ \:::\ \ /:::/\:::\ \:::\ \ /:::/ / \:::\ \ /:::/\:::\ \ |:::| | |:::| | /:::/\:::\ \:::\____\ /:::/\:::\ \:::\ \ /:::/ / \:::\ ___\ /:::/ \:::\ \:::| |/:::/__\:::\ \:::\____\/:::/ \:::\ \:::\____\/:::/ \:::\ \:::\____\/:::/____/ \:::\____\ /:::/ \:::\____\|:::|____| |:::| |/:::/ \:::\ \:::| |/:::/__\:::\ \:::\____\/:::/____/ \:::| | \::/ |::::\ /:::|____|\:::\ \:::\ \::/ /\::/ \:::\ \::/ /\::/ \:::\ /:::/ /\:::\ \ \::/ / /:::/ \::/ / \:::\ \ /:::/ / \::/ |::::\ /:::|____|\:::\ \:::\ \::/ /\:::\ \ /:::|____| \/____|:::::\/:::/ / \:::\ \:::\ \/____/ \/____/ \:::\ \/____/ \/____/ \:::\/:::/ / \:::\ \ \/____/ /:::/ / \/____/ \:::\ \ /:::/ / \/____|:::::\/:::/ / \:::\ \:::\ \/____/ \:::\ \ /:::/ / |:::::::::/ / \:::\ \:::\ \ \:::\ \ \::::::/ / \:::\ \ /:::/ / \:::\ /:::/ / |:::::::::/ / \:::\ \:::\ \ \:::\ \ /:::/ / |::|\::::/ / \:::\ \:::\____\ \:::\____\ \::::/ / \:::\ \ /:::/ / \:::\__/:::/ / |::|\::::/ / \:::\ \:::\____\ \:::\ /:::/ / |::| \::/____/ \:::\ \::/ / \::/ / /:::/ / \:::\ \ \::/ / \::::::::/ / |::| \::/____/ \:::\ \::/ / \:::\ /:::/ / |::| ~| \:::\ \/____/ \/____/ /:::/ / \:::\ \ \/____/ \::::::/ / |::| ~| \:::\ \/____/ \:::\/:::/ / |::| | \:::\ \ /:::/ / \:::\ \ \::::/ / |::| | \:::\ \ \::::::/ / \::| | \:::\____\ /:::/ / \:::\____\ \::/____/ \::| | \:::\____\ \::::/ / \:| | \::/ / \::/ / \::/ / ~~ \:| | \::/ / \::/____/ \|___| \/____/ \/____/ \/____/ \|___| \/____/ ~~
Senior Drupal Developer with 15+ years of experience specializing in back-end development with strong front-end capabilities. Known for solving complex problems and continuous technical growth.
Pushing the boundaries of my knowledge is what keeps me motivated; I consistently tackle challenges outside my comfort zone to deliver innovative solutions.
Security Optimization
When a client's websites faced attacks consuming excessive resources, I conducted a deep-dive into web security vulnerabilities, particularly SQL Injections. I developed a custom upstream detection module that successfully reduced the attack surface and decreased server load, providing meaningful performance improvement without compromising genuine user experience.
Quality Assurance Leadership
Recognizing gaps in our testing process, I started implementing PHPUnit tests for new features and refactored code. This initiative's objective was pretty simple: reduce regression issues and increase the development team's confidence during deployments. I call it "code insurance".
Technical Philosophy
I strategically leverage Drupal 'contrib' modules and established libraries whenever appropriate, recognizing the value of community support and built-in security coverage they provide.
The Best Fit
I thrive in collaborative environments with multidisciplinary teams where peer review and support is ingrained in the culture. Seeking a role where I can continue growing my Drupal expertise while mentoring junior developers and solving complex technical challenges.
Recent Work
MANITOBA LIQUOR & LOTTERIES (Jan 2023-Mar 2025)
Participated in Drupal 7 to 9/10 migration for six websites. Responsibilities included data migration, custom module/theme porting, and ensuring WCAG 2.2 compliance. Developed custom modules including SQL injection detection and implemented PHPunit testing.
RESULTA (Mar 2021-Sep 2022)
Joined an elite team of 15+ Drupal developers migrating OddsShark.com from Drupal 7 to 9. This platform aggregates picks, odds, and news for major sports leagues (NFL, NBA, MLB, NHL, UFC). The primary focus was on migrating 10 years of complex data, with additional work implementing the new theme design near project completion.
Experience & Expertise
- Custom modules development (PHP OOP)
- Drupal 7 to Drupal 9|10|11 migrations
- Multilingual websites
- Theming & Twig templating, Bootstrap, CSS, SASS
- Faceted search (Search API, Apache Solr)
- Drupal Commerce
- Automated testing (PHPunit)
Look for more about me in my DevLog soon.
Last updated April 2025