.bmc18-nav–item {
display: block;
font-family: sans-serif;
line-height: 1em;
.bmc18-nav {
margin-bottom: 1em;
.bmc18-banner–main {
display: block;
width: 100%;
border-bottom: solid 0.25em #fff;
.bmc18-nav–item {
text-align: center;
padding: 0.5em;
font-weight: bold;
text-decoration: none;
background-color: #ec3b9a;
color: #fff;
border-bottom: solid 0.25em #fff;
transition-property: background-color;
transition-duration: 0.2s;
.bmc18-nav–item:hover {
background-color: #39b54a;
color: #fff;
@media screen and (min-width: 480px) {
.bmc18-nav {
display: table;
width: 100%;
table-layout: fixed;
.bmc18-banner–main {
/*border-bottom: solid 0.5em #fff;*/
.bmc18-nav–row {
display: table-row;
.bmc18-nav–item {
display: table-cell;
vertical-align: middle;
border: solid 0.5em #fff;
.bmc18-nav–row > .bmc18-nav–item:first-child {
border-left: 0;
.bmc18-nav–row > .bmc18-nav–item:last-child {
border-right: 0;

QSL’s stevedores unload from trains or ships almost everything you eat or buy (Courtesy of QSL)

Stevedoring is probably the industry you rely on the most and yet know the least about. “Nobody knows much about this massive industry,” admits Robert Bellisle, president and CEO of QSL, aka Quebec Stevedoring Co. Ltd. “Ask most people if they understand stevedoring and they won’t have any idea what you mean.”

A quick lesson: most everything you buy, eat or acquire has arrived by road or rail. Before that, traded goods first arrive in port via ship. “Once the material has arrived, that’s where our work starts,” says Bellisle. “We load or unload from rail to ship, or ship to rail, but we don’t handle either the rail or the ship.” (Stevedore is from the 18th-century Spanish word estivador: a person who stows cargo.)

QSL was founded in 1978 in the country’s oldest port, Quebec City, where the company’s headquarters remain today. Founder Denis Dupuis came from a humble beginning, with a $10,000 loan from his mother and a staff you could count on one hand. Six years in, QSL invested in seven additional ports in Quebec; a dozen years after that, they expanded again into Ontario, and then east to the Atlantic coast. The 2000s saw QSL move into the United States via Chicago, and just last year, QSL set up shop in Texas for cargo and trade with Mexico and South America. Today, QSL operates in thirty-four ports.

Stevedoring would be a much easier and straightforward task if QSL focused on a single import—raw sugar or salt, for example—or even either bulk or “break bulk” (individually packaged and non-containerized) materials. But QSL’s tagline, “Tailor-made success,” speaks directly to its core mission to ship anything and everything, from raw steel to a finished yacht. And far from merely loading and unloading, QSL is also in the complicated business of problem-solving: within the industry, QSL is known for its outside-the-box solutions for difficult shipping problems.

In 2017, for example, industrial engineering company Bedrock Industries acquired steel company Stelco. Bedrock, based in Nanticoke, Ont., faced a massive logistical challenge in updating its docks to allow them to handle steel, to avoid having to truck the material to Hamilton for shipping. By then, Bellisle had taken over from Dupuis, who retired in 2017 (mostly—he still sits as chairman of the board) and Bellisle’s career history in the adjacent steel industry would prove helpful in solving what seemed a years-long, multi-billion-dollar problem. “We actually reversed the question,” explains Bellisle. “We asked not what we needed to do to the docks but what we could do to the handling equipment.” By modifying the truck trailers and cranes instead, QSL solved Bedrock’s conundrum for one-fifth the cost and in one-twentieth the time quoted by their competition.

Here’s another example of out-of-the-box thinking: “We had a large customer looking to export grain overseas from multiple areas,” he recalls. When Bellisle meets with a client like this, his sales team actually includes engineers. “We’re one of the only terminal stevedores that has integrated our engineering department right into the marketing department.” This seemingly odd pairing delivers answers that neither department could imagine on its own. QSL ended up acquiring and modifying large storage domes in Quebec to be used as the main point of export, sold the client the domes, and then used the profit to reinvest in their own infrastructure. “We ultimately opened a whole new export market,” says Bellisle.

Creative solutions require employees be very familiar with specific geographies and communities. “Our whole modus operandi is to find people who know regions inside and out. These are the people who can solve unique problems,” Bellisle explains. Operationally, QSL has grown to 1,300 employees, divided geographically into pillars designed to replicate that small-business feeling as QSL continues to grow. “When we moved from an owner-operator structure to a management team, we evolved our managerial structure to preserve the original atmosphere,” says Bellisle. “We work hard so that people feel like they’re in a small organization when they’re really one part of a large organization.”

a.bmc18-actionlink {
display: block;
text-align: center;
padding: .8em;
font-size: 1.2em;
font-family: sans-serif;
color: #fff;
background-color: #EC3B9A;
font-weight: 700;
text-decoration: none;
border-radius: 4px;
transition-property: background-color;
transition-duration: .2s

a.bmc18-actionlink:hover {
background-color: #39b54a

Even more of Canada’s Best Managed Companies »

// API calls for recent posts to the ‘best-managed-companies’ tag. Grabs five of the given posts at random. NOTE: Post IDs are hard-coded below in `eligiblePosts`
‘use strict’;
var bodyClass = document.getElementsByTagName(‘body’)[0].getAttribute(‘class’);
var container = document.querySelector(‘#dynamicPosts’);
// tag id for ‘best-managed-companies’
// var tagID = 351657;
var postCount = 5;
var exclude = parseInt(( bodyClass.indexOf(‘postid’) >= 0 ? isolateID(bodyClass)[1] : 0));
var eligiblePosts = [1079843,1079845,1079849,1079851,1079853,1079855,1079857,1079859,1079861,1079863,1079865,1079867,1079869,1079873,1079875,1079877,1079879,1079881,1079885,1079887,1079889,1079891,1079893,1079895,1079897,1079899,1079901,1079903,1079905,1079907,1079909,1079911,1079913,1079915,1079917,1079919,1079921,1079925,1079923,1079927,1079929,1079931,1079933,1079935];
var chosenPosts = arrayRandomSubset(eligiblePosts, postCount, exclude); // subset of eligiblePosts, see function below
var endpoint = ‘http://www.canadianbusiness.com/wp-json/wp/v2/posts?’;
endpoint += ‘include=’ + chosenPosts.join(‘,’);
endpoint += ‘&_embed’;

fetch ( endpoint )
return response.json();
.then( function(data){
.catch(function( err ){

function postsRender(data){

// Define Post Elements
// post container
var thePost = document.createElement(‘div’);
// visual holder
var theVisual = document.createElement(‘div’);
// visual link
var theImgLink = document.createElement(‘a’);
theImgLink.setAttribute(‘href’, post.link);
// text holder
var theText = document.createElement(‘div’);
theVisual.setAttribute(‘href’, post.link);
// the image
var theImage = document.createElement(‘img’);
theImage.setAttribute(‘src’, post._embedded[‘wp:featuredmedia’][0].source_url);
theImage.setAttribute(‘alt’, post._embedded[‘wp:featuredmedia’][0].alt_text);
// the headline
var theHed = document.createElement(‘h1’);
theHed.innerHTML = ‘‘ + post.title.rendered + ‘‘;
// the dek
var theDek = document.createElement(‘div’);
theDek.innerHTML = post.excerpt.rendered;
// the spacer
var theDivider = document.createElement(‘hr’);
//tack it all together

// return the wordpress postID from the body class
function isolateID( string ){
var pattern = /postid-(d+)?/;
return string.match(pattern);

* From a given array, provide a subset
* @param arr — the array from which to read the values
* @param n — the number of results required
* @param excl — a value to exclude from the results

function arrayRandomSubset(arr, n, excl){
let out = [];
// for the specified count, loop over the given array, select values randomly, and add them to the output array, but only if they aren’t already included.
// NOTE: we temporarily increase the length of the loop to output an array of length n + 1. This is so that if there is an `excl` value provided
for ( var i = 0; i < n + 1; i++ ){
// select a random position in the array
let r = parseInt( Math.random() * arr.length );
// if the value at position `r` isn’t already in the output, add it
if ( out.indexOf(arr[r]) < 0 ) {
// if the value IS already in the output, decrement the loop to try again.
} else {
// if the excluded value is not in the output, just trim to `n` results
if ( out.indexOf(excl) < 0 ) {
return out.splice(0, n);
// if it IS in the output, remove it.
} else {
let e = out.splice(out.indexOf(excl), 1);
return out;

The post QSL appeared first on Canadian Business – Your Source For Business News.


Please enter your comment!
Please enter your name here