Life is an Adventure

Telling personal stories makes me uncomfortable. My preference is to live in the now and focus on the future. To do the hard work, to make shared dreams of the future a material reality. However, it is fair for people to know something about the person they are dealing with. Here’s a taste of my life story, with an emphasis on the important software elements.

I’m told I was born in the New Forest in South England, however I’m not sure if this is true or just a romantic embellishment by my mystic loving Mother. My maternal Grandmother raised me in Belfast, Northern Ireland, until my single mother and I immigrated to Canada. When I was about 6 or 7 years old, we, along with my new Stepfather, landed as caretakers of a lodge in the middle of Algonquin Park. By high school, we moved to the relative metropolis of Huntsville in Northern Ontario. There, I surprised everyone by scoring high in the annual Waterloo Math Contest, which put me on a new path. I was accepted by several universities, but first had to earn the money. The Canadian Arctic beckoned and my jobs ranged from guiding at fishing and hunting lodges to being a roughneck on oil rigs in the Beaufort Sea.

Paving the way with education

When I eventually attended Queen’s University in Kingston, Ont. I became the first person in my extended family to go to university. As a science and pre-med student, my main interest was biology and ecology. I took a broad range of science courses and by my second term computer sciences were my new obsession. Well, that and my then-girlfriend, now life partner, Marcia Cardamore, who I credit with getting me organized and focused.

At the time I believed that math and computer modelling could add significantly to understanding ecology and population dynamics. As a biology major, my beliefs led to an unusual path, with more math, statistics, computing science and engineering courses.  In 4th year, it resulted in a joint degree in Biology and Computing Science.

Not sure how I could make a living with this, I started the MBA program at Queens, but by the end of the first term, it was clearly a mistake. I was bored so I quit and got a job programming at DuPont in Kingston. The work was productive, but not interesting. Craving a change, Marcia and I left Kingston and drove across Canada up to the Yukon and into Alaska.

My next gig was scientific programming for Rio Algom, a uranium mining company in Elliot Lake, Ont. The computing work was interesting and the results of my tailings waste limnology simulations stopped Rio’s plan to dump uranium tailings to the bottom of lakes for long-term storage. I was pleased: It was the first time I realized that creative code could change things in the real world.

Elliot Lake, however, was remote and too damn cold. Personal computers were now a reality, plus I’d been accepted into the MASc. Systems Design Engineering at the University of Waterloo. At the same time, I also registered to finish my MBA part-time at U of T. I don’t think the universities realized I was simultaneously in both programs (not recommended).

I loved the math modelling and technical entrepreneurial culture at the University of Waterloo. It’s a special university and it’s clear why Waterloo is the number one recruitment school for tech companies and Silicon Valley. I strongly believe that Waterloo’s exceptional computing science and engineering graduates shouldn’t have to go to America to find success—that’s a challenge my partners and I at EigenSpace are trying to fix today.

Working my way up

In 1983, I landed a job at the Toronto Stock Exchange. The computing department was led by a farsighted tech genius named Don Unruh, who developed the world’s first computerized order execution exchange. It was my introduction to Unix and we built business databases with low level C calls. The early SQL database we programmed performed very well, but had the unfortunate product name of Mistress (It was probably meant as an alternative to Oracle, but I quickly learned that product naming is important).

Because of my math background, I was also asked to do time series modelling. Basically, I programmed math models using a language called APL (A Programming Language). APL was developed in the 1960s and its central datatype in a multidimensional array or matrix. It uses special graphical symbols leading to an efficient math like syntax, which was perfect for all matrix manipulation algorithms. The main statistical problem was forecasting trading volumes into the future to scale the exchange’s order execution systems to deal with a significant anticipated increase in stock trading volumes.

During this period, Marcia and I had our first daughter and bought a house in Toronto. To make more money, I joined the Woods Gordon/Clarkson Gordon (now Ernst & Young) computer practice. PCs were the new focus and reusable code libraries, UI design and methodology for developing systems quickly became my new obsession. Karl Abbott, a brilliant programmer I met at the TSX, joined the company and together (mostly Karl), we built reusable C libraries for quickly developing custom applications on PCs. Within a couple of years, we had built a large custom PC software development shop.

The entrepreneurial spirit takes hold

Given the growth of PCs, we decided tracking their proliferation was going to be a big problem for companies, so Karl and I developed an asset tracking software product called TechTracer. In 1986, we left Ernst & Young and, with a couple of other partners, launched Nidak. The company was quickly drawn into custom programming for Unix computers and PCs. For example, the Royal Bank of Canada asked us to develop a PC-based program trading product. The system, which automatically parsed the real-time trading feed from the TSX, highlighted arbitrage mispricing between stock futures and the underlying stock. When a mispricing opportunity came up, the system would automatically enter orders to buy the futures, then sell the underlying stocks listed in the TSE35 Index and lock in a profit. The system was innovative and worked too well—it hit the news when program trading contributed to the October 1987 market crash. Oops.

We also developed an agile development methodology called SUCCESS (Strategic User Controlled & Centred Software Systems). The methodology contained all the essential elements of agile development, including daily standups, sprints and user design reviews on a bi-weekly basis. This methodology helped Nidak build database systems for the Bank of Montreal, Magna, Olympia and York, OMERS and others. The work won awards and the company’s rapid growth attracted attention. In 1993, SystemHouse bought Nidak.

After Nidak, I no longer had the makings of an employee. Other ideas were percolating and I was anxious to move on. When you have a great entrepreneurial idea, it becomes an obsession that keeps you up at night. Regardless of risk, you just have to do it or regret it forever.

DataMirror launched in stealth mode in 1994. Kirk Dixon and Herman Wallenberg, programmers I’d met at Ernst & Young, joined as partners. (It was also here that I met David Crow; he was a software analyst covering DataMirror and now he is one of my EigenSpace partners.) We incubated the real-time data replication business for about a year, got financed by the legendary venture capitalist Ben Webster of Helix Investments and grew quickly.

Real-time data replication involves exploiting a database and file system feature called journaling. Each database and OS has their own unique journaling protocols. We developed a capability we called semantic thickening, which allowed customers to move data in real time between different types of databases and change database field name, length and type on the fly. It also augmented the data with a bunch of relevant metadata. The product was particularly helpful for data warehousing and high availability applications.