avatar

Bruno Pettersen-Coulombe
Full stack Developer, B. Eng., Racing geek

About

My multi-faceted professional experience and my fast learning made me a profesionnal with great adaptability. World record holder, author, coach: I'm a scientific mind in an athlete body. Addicted to caffeine and challenges.

Work Experience

National Bank of Canada
April 2023 – June 2023
SDET Analyst
This mandate consisted of analyzing the efficiency of the team and proposing solutions to improve the speed of work. In particular, the potential gains of test automation was studied.
Highlights
  • Tested new AWS microservices to ensure compliance with legacy system
  • Interviewd developers and testers to fully understand their tasks, challenges and slowdowns
  • Analyzed bottlenecks, project context and automation costs
  • Delivered a factual analysis on test automation relevance
National Bank of Canada
August 2022 – March 2023
SDET Technical Lead
Building a new testing framework from scratch for the Swift payment infrastructure.
Highlights
  • Reduced the number of lines of code by 85% compared to legacy framework
  • Separated the test framework into several JAR deployed in Nexus: an API client for the main application (APS) and a payment injector to push payments in APS via Kafka Queues
  • Refactored the code using Unirest, Lombok, Jackson, Prowide Software libraries (Prowide core and Prowide ISO 2022), object inheritance, dependency injection, and Gherkin
  • Implemented Fail-fast principle and detailled logs
  • Trained 30 people within the SDET team via 7 presentations on the new test architecture
National Bank of Canada
March 2022 – July 2022
SDET Developer
Test automation for the Bankmate service, a Swift MT to MX(XML) format converter.
Highlights
  • Developed about 30 different tests to validate the behavior of Bankmate
  • Revised existing Bankmate test code to eliminate code duplication
  • Rewrited Bankmate legacy tests using Gherkin structure
  • Assisted my colleagues on the technical side
National Bank of Canada
October 2020 – February 2022
QA Developer
Test automation for the ICOP application and microservices
Highlights
  • Upgraded the test velocity from 1 manual test/hour to 400 tests/hour
  • Developed ~120 automated tests for the ICOP application using the Selenium library
  • Developed ~60 automated tests for ICOP microservices (ISRPB/IIAPB/CAOPB) via Rest Assured
  • Set up 4 Jenkins pipelines for the execution of the automated tests
  • Documented pipeline execution, code structure and maintenance guidance
  • Trained new employees on National Bank's Test Automation Framework
Société Générale
January 2019 – September 2020
DevOps Developer
Having worked on the production support as a Application support Analyst and automated a lot of things there, I was recruted as a DevOps Developer as a full time intern employee.
Highlights
  • Refactored the Eztops to GMI accounting service, with monitoring and automated alerts
  • Deployed and configured of an ELK-based monitoring solution for 2,000 Autosys processes
  • Developed Powershell scripts to communicate between APIs (Elasticsearch and Autosys)
  • Managed deployments
  • Writed dynamic documentation scripts (Do-nothing scripts) to improve bug investigation time
Société Générale
August 2016 – December 2018
Application Support Analyst
My first mandate after graduation to support several global finance applications. Lots of low-hanging fruits so having a development background, I took the opportunity to improve things.
Highlights
  • Reduced code/repos for financial reports production from 20 to 1 by developing a configurable, automated report producer using Groovy and Autosys scheduler
  • Configured and deployed a software and pod monitoring solution based on ELK
  • Planned the migration from the OnPrem Newtops to the Cloud based, modernized Eztops
  • Automated manual daily monitoring checks and alerts (by email)
  • Developed bash scripts to automate fixes for recurring operations failure
  • Supported production operations
Constellio
September 2014 – April 2015
Developer
Constellio was a small business (growned and sold since) with a clientele that was mainly governmental. I built out a modular JavaScript web client for their flagship product.
Highlights
  • Deployed on the Government du Québec website, sucessfully handling 100,000 requests/day
  • Developed unit and integration tests for their product, using Mockito and JUnit
Equisoft
January 2013 – May 2013
Junior Developer
Implemented Entity framework on their subscription management software.
Highlights
  • First experience as a professional software developer
Solutions Technologies
April 2014 – May 2014
Web Developer
Following a loss of code following a virus, Solutions Technologies contacted me to restore their tailor-made and configurable e-commerce shopping cart module for their various customers.
Highlights
  • Developed the backend of a modular e-commerce shopping cart based on Magento
Vice Longboards
August 2013 – December 2013
Web Developer
The small longboard manufacturing company asked me to create their portfolio website
Highlights
  • Applied learnings from GTI350-Design and evaluation of graphic user interfaces
FJB Casting
September 2011 – October 2011
Web Developer
FJB casting needed a module for uploading and cropping photos of models for her bank of extras. The extras could then manage their images themselves on the Figuration Julie Breton website, a task that was cumbersome for the owner of the company.
Highlights
  • Integration of a cropping module and image upload in PHP/Javascript
Heritage Software Inc.
May 2011 – May 2011
Web Developer
Heritage Software needed a drag-and-drop file upload module for their website.
Highlights
  • Integrated a file upload module in PHP/Javascript
Les 2 Photographes
February 2009 – May 2009
Web Developer
A graphic designer approached me after having accepted a mandate beyond his competence. The goal being to deliver a transactional photographs website. I was proud to have been able to deliver the mandate on time despite the end of the school semester and very tight schedule.
Highlights
  • Built a recursive algorithm to display available images on the website
  • Automated the production of image snippets with watermarks to display available images
  • Secured the full size images so that they were inaccessible to the public
  • Automated the payment via PayPal API
  • Automated email sending with attached full size images once payment was made
CADS Informatique
January 2010 – May 2010
Web Developer
First professional mandate (intership) which was an opportunity for me to gain experience in a direct relationship with various clients. I gained experience with both front-end and back-end.
Highlights
  • Redesigned a citizen news website based on Wordpress
  • Built a custom CMS
  • Designed a website for an elderly residence

Contact

Montreal CA
github
linkedin
twitter

Education

  • 2014 2016

    École de technologie supérieure

    Minor

    Entrepreneurship

    Courses
    • ENT201 - Business financial management
    • ENT202 - Introduction to entrepreneurship
    • ENT601 - Marketing and sales
    • ENT602 - Company management
  • 2010 2016

    École de technologie supérieure

    Bachelor

    Software Engineering

    Courses
    • LOG120 - Software Design
    • LOG210 - Object-Oriented Design
    • LOG240 - Conception et évaluation des interfaces utilisateurs
    • LOG320 - Data structures and Algorithms
    • LOG330 - Software Quality Assurance
    • LOG410 - Needs analysis and specifications
    • LOG430 - Software Architechture
    • LOG515 - project management
    • LOG530 - Software re-engineering
    • LOG635 - Artificial Intelligence Algorithms
    • LOG645 - Parrallel Computing
    • LOG660 - High performance Databases
    • LOG735 - Distributed Systems
    • LOG791 - Special projects
    • LOG792 - Graduation project in software engineering
    • GTI350 - Design and evaluation of graphic user interfaces (GUI)
    • GTI610 - Telecommunication networks
    • GTI619 - System Security
    • CHM131 - Chemistry and materials
    • ING150 - Static and Dynamic Physics
    • ING160 - Thermodynamics and Fluid mechanics
    • PHY332 - Electricity and Magnetism
    • PHY335 - Physics of electromagnetic waves
    • MAT145 - Differential and integral calculus
    • MAT210 - Logic and discrete mathematics
    • MAT265 - Differential equations
    • MAT350 - Probability and statistics
    • MAT472 - Linear algebra and space geometry
    • COM110 - Communication methods
    • GIA400 - Project profitability analysis
    • TIN501 - Environment, technology and society
  • 2007 2010

    Cégep André-Laurendeau

    DEC

    Computer Science

    Courses
    • 201-420-AL - Mathematics and Computer Science
    • 420-102-AL - Algorithms and programming I
    • 420-111-AL - Computers and technical support
    • 420-121-AL - Internet and multimedia
    • 420-201-AL - Algorithms and programming II
    • 420-211-AL - Operating systems
    • 420-221-AL - Web Apps I
    • 420-301-AL - Object Oriented Design and Programming I
    • 420-311-AL - Network architecture
    • 420-321-AL - Web Apps II
    • 420-331-AL - Systems modeling and UML
    • 201-421-AL - Statistics
    • 420-401-AL - Object Oriented Design and Programming II
    • 420-411-AL - Internet Services and Security
    • 420-431-AL - Implementation of databases
    • 401-420-AL - Enterprise Computer Systems
    • 420-501-AL - Programming user interfaces
    • 420-502-AL - Quality Assurance and Maintenance
    • 420-521-AL - Multi-Tier Application Project
    • 420-531-AL - Integrated Database Tools I
    • 420-631-AL - Integrated Database Tools II

Skills

Backend Senior
API REST API SOAP Java Spring Boot Javascript Node.js Express Python PHP
Frontend Intermediate
React JQuery HTML
DevOps Intermediate
Deployment optimisation CI/CD Jenkins GitHub Actions Docker ELK Stack
Databases Intermediate
Redis NoSQL SQL Server Oracle PostgreSQL MariaDB/MySQL
Scripting Intermediate
Bash Groovy Powershell
SDET/QA Senior
Gherkin Rest Assured Selenium HtmlUnit Mockito Spock JUnit PHPUnit Xray
Tools
IntelliJ PyCharm WebStorm Visual Studio Code Visual Studio Eclipse Git Bitbucket Jira Maven Gradle Nexus Swagger

Interests

Racing
Karting Cycling Speed Skating
Coaching

References

Bruno was very good at planning and implementing improvements based on real data. His pragmatism led to realistic goals, which led to mesurable results. He his a great asset for any team leader that needs guidance and arguments that helps to manage the project budjet.

I'm thrilled to testify favorably on Mr. Pettersen's behalf. Bruno has been an active and invested participant in the entrepreneurship program, both in class and in the practical work where students are involved in influencing the content taught according to the needs of student entrepreneurs. Bruno demonstrated an interest in entrepreneurship that the whole class could benefit from during the discussions on different business scenarios. He also demonstrated an obvious curiosity towards the tools of entrepreneurship and a strong desire to master their operation. It is therefore with pleasure that I refer Mr. Pettersen to any company.

Bruno brilliantly overhauled the interface of the official search engine of the Government of Quebec during his internship at Constellio. The engine, which receives several million searches, had a flexible interface technology, but it was complex to integrate and limited response times. Bruno designed the new interface based on the latest generation technologies (Ajax/jQuery). The work done was a success! I would like to highlight the initiative, the concern for continuous improvement and the autonomy demonstrated by Bruno. It is a real pleasure to work with him!

Bruno was one of the brightest student I have had. He has great understanding of Financial Theory!