It was twenty years ago in May that I started with Maplesoft (known then as Waterloo Maple Software) in a tiny office at 608 Weber Street North in Waterloo, Ontario. After having done my graduate work under Maple co-founder Gaston Gonnet, I was invited to join the fledgling company as Technical Manager and the first full-time employee.
I had an office just a little bigger than the one I'm in now, but had to share it with the Marketing Manager who was hired at nearly the same time, a co-op student, an IBM RT server with a whopping 350Mb of disk space, and an old IBM PCjr being used as a terminal. To make things a bit more interesting, the office had no windows and wasn't air conditioned. Fortunately, we moved to more pleasant quarters by mid-June.
My first real task was to finish up Maple 4.3, port it to various platforms (AIX on both RT and 386, Sun OS on SPARC and 68000, MS-DOS and others), write installers, and prepare installation instructions. Then we had to sell it. Receiving Editor's Choice in a PC Magazine comparison between Maple and Mathematica certainly helped. During that early period I was also responsible for technical support, QA, and IT.
Since that day, I've worked at the Maple company for over 15 of those 20 years, and worked with the Maple product for almost all twenty. As we've grown, we've moved several times to ever larger and better offices, finally ending up where we are now.
During a four year hiatus at another local firm founded by Gaston Gonnet, I worked on a high performance database query engine prototyped in Maple (a great tool for prototyping large software systems). I also spent half a year at another company, where among other things, I used Maple to solve some equations needed to implement the graphics for a weight & balance program for an Airbus.
I eventually came to miss working on the innards of Maple, and in 2004, I was invited by Laurent Bernardin to return to Maplesoft to work on the "new simulation system" which eventually became MapleSim.
Most of the work I've done in Maple has involved the kernel in one way or another (new language features, data structures, and built-in functions). I've also done some user-interface work (command-line editing), written some packages (ImageTools and AudioTools), and worked on other products (the Modelica compiler in MapleSim). As the Maple programming language has become increasingly powerful, I've found that I can do more and more using the Maple language itself, having to resort to C only when I need to get that last little bit of performance out of the hardware.
I've had a lot of fun accomplishing things here and have had the pleasure of working with a growing group of brilliant folks in all areas of the company, many who have now been here many years themselves. I can't imagine a better place to work, and am looking forward to the next twenty years.