Marco Group of Companies


.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;

Aerial shot of Marco Group of Companies offices

Courtesy of Marco Group of Companies

Despite adamantly claiming in his youth that he’d never go back to Newfoundland, Marco CEO Christopher Hickman did just that. It would be a quick stopover between business degrees, he told himself, and it wouldn’t be forever. “I thought I was just taking a year off to work with my dad [Tom] before I did something else,” he says, “and I certainly never intended to work in construction.”

But his timing was just about as bad as could be. Christopher returned in 1991 and the cod moratorium began in 1992, leaving 30,000 Atlantic Canadians—about 12% of the workforce—unemployed. Almost every industry was affected, including construction, and Tom Hickman’s general construction company—Marco Service Limited, founded in St. John’s in 1980—was no exception. “The economy was very depressed and we struggled for years to stay afloat,” remembers Christopher, who could have jumped ship at any time. “Instead, I hung around.”

Really he’s being humble, because the younger Hickman did a lot more than just remain on hand. He had a business degree in his pocket and a keen vision to keep the family business alive while others shuttered their doors. “Because we had a lot of hourly employees and simply not enough work to give them, we decided to transform ourselves from contractors to managers,” he says. In an unstable economy, pivoting to project management offered the company more flexibility. “It gave us the opportunity to readily ramp up or down, depending on the economy, which is always boom or bust. We realized we needed to smooth out the life cycle.”

As low as the first dip in the ’90s felt, Marco soon rode the cycle upwards. “Suddenly we were very successful again and growing quickly,” says Christopher, whose father retired in 2000 and passed along the role of CEO to his son. While head office remained in St. John’s, Marco opened a Halifax office in 2003, and most recently expanded to Calgary in 2019. (Wait, Calgary? “One of our strengths is repeat business,” explains Christopher. “When some of the developers we work with went west, we went with them.”)

Back on the East Coast, Marco has taken on what Christopher calls “the gamut of pretty much every kind of project.” If Marco was based in Montreal or Toronto, he says, the company might specialize in, say, hotels or fancy condominiums, but that just doesn’t work in Newfoundland. “You have to go with the flow here. We have to continually reinvent ourselves to [align with] whatever’s happening in the market.”

Christopher spent his early years at the company specializing in retail, overseeing the construction of Walmarts and Canadian Tires in the Atlantic provinces. The period that followed was largely institutional—schools and health care centres. More recently the company has added a P3 division to focus on this growing business segment. Whatever the project, Marco’s staff of 96 will oversee its design, finance, maintenance and operation.

The best and worst part of his job, says Christopher, is that every project is new and different. A large-scale project—like the recently completed $55-million renovation of St. John’s International Airport—requires organizing up to a hundred different subcontractors. Everyone, from architects and engineers to the locker and bathroom fixture installers, is subcontracted. “That’s a lot of moving parts and a lot of things that can go wrong,” he says, citing labour issues, unforeseen bankruptcy [of subcontractors], and even unpredictable weather that constantly wreaks havoc on the best-laid plans. Christopher is juggling about 30 projects and thousands of workers at any given time.

Thankfully, after 20 years at Marco’s helm, Christopher has acclimatized to the ebbs and flows. “We’ve been around so long that we’ve seen everything, and there’s nothing that would surprise me,” he says. Except maybe this: if Christopher’s two university-aged sons, 18 and 20, who aren’t particularly interested in the family business, decide to come home sometime. “You never know,” he says.

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 = ‘’;
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’);
// text holder
var theText = document.createElement(‘div’);
// 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 Marco Group of Companies appeared first on Canadian Business – Your Source For Business News.


Please enter your comment!
Please enter your name here