The Early Years
Steffan got his first computer, a Commodore Vic-20 back when he was around eleven years old.Â He developed his interest in programming by learning to write simple programs using BASIC. Â After a few years, he moved up to the Commodore 64 and then got his first IBM PC compatible computer.
Steffan spent hours reading the GW-BASIC manuals to learn how to use the programming language.Â He enjoyed trying to find clever ways to use each obscure piece of the language. Â In his last two years of high school, Steffan entered the yearly software development contest sponsored by the school board.Â This contest was open to students taking the computer science class. Â Steffan won the contest the first year he entered with a simple baseball simulator and he won the second year with a Monopoly game designed with text based graphics.
Personal projects and contract work
During his college years, Steffan wrote a BBS game called Galactic Wars which was similar to an existing game called Solar Realms Elite. Â He designed and developed the game engine, the internal ANSI interpreter and the routines used to transfer data over the modem.
Steffan first shareware program was a File Area Editor conveniently called FAE.Â He created two versions of the program, the first for the BBS package called Celerity and the second version was for PC-Board.Â This was the first large development effort Steffan worked on.Â He wrote the 60,000 lines of code using Turbo Pascal.Â He also wrote the help file and the manual for the product.Â Steffan designed the batch processing to be fast.Â The program would routinely handle tasks faster on a 286 based computer (the machine Steffan developed it on) than competing tools running on a 486 based CPU.Â He used to chide his competition by claiming the acronym FAE stood for Fast and Excellent!
Steffan also wrote a database front-end for a shareware CD collection.Â You could buy databases from the seller that indexed the content of their collection and provided descriptions for the files.Â Steffan used their search tool but found it clumsy and not user-friendly, so he reverse engineered the database format and wrote his own search tool for it using Borland Delphi.Â After testing his new program, he showed it to the seller and sold it to them for use with their collection.
A few months later, a customer of this seller impressed by the new search tool contacted me to develop a program for his company.Â I worked with this customer for a few months to help them develop a front-end for a cooperative advertising database.
Steffan found yet another contracting opportunity while looking for an apartment in Longueuil.Â At the time, he used a broker to help him find an apartment.Â This broker worked with property owners and kept a list of available rentals that he would match with people searching for apartments.Â Steffan saw the tool the broker was using and offered to write a more powerful version for him to help improve the usability and effectiveness of matches.Â He worked with this customer for a few months and delivered an improved tool.
Steffan also wrote and released an ANSI file viewer called ANSIVIEW.
Steffan started his career as a technical support specialist in a small company in Sherbrooke called Mediatrix Peripherals.Â After showing his ability to write code, they expanded his role and he joined the development team.Â Among the projects he worked on, he designed and wrote the front-end software for the Audiotrix Pro Effects Processor add-on card and the IP phone program for the Audiotrix Phone add-on card.Â He also wrote a generic DOS installation program as well as a Windows Sound Recorder application.
Steffan then worked for Crain-Drummond as a programmer-analyst.Â He developed many different different tools such as a web-based customer order tool, a production tracking tool, a factory estimate tool as well as an internal software request tool.Â This job was the first time that Steffan worked with SQL databases.Â On all the projects he worked directly with internal or external customers to understand their needs, created the project plans and did the development and worked with customers to make sure the software met their needs.
A few years later, Steffan joined HMS Software, a small company selling a timesheet entry tool called TimeControl.Â He started with the company as a software developer but over time worked as a project manager and software architect as well.Â Steffan was responsible for architecting the distributed architecture used in TimeControl version 4.0.Â He designed and developed an extensible fully object-oriented framework that allowed a lot of code reuse.Â Steffan also visited many of the largest customers of the company to help them troubleshoot their issues with the product.Â HMS was the first multicultural environment that Steffan worked in and he shared some of the cultural lessons he learned in A Practical Guide to Distributed Scrum.
Steffan worked as a contractor for a year at Motorola as a software developer on a 911 emergency dispatch system.Â During his time there, he worked mainly on fixing defects in the product.Â In his spare time, he wrote some data mining tools for the defect database to produce statistics of individual and team performance.Â Steffan mentored a junior project manager and acted as a facilitator in discussions between the teams in Montreal (Quebec) and Boulder (Colorado).
At the end of his contract, Steffan joined IBM as a senior software developer for a product called Rational Portfolio Manager.Â During his time with that team, Steffan lead a small team dedicated to introducing usability enhancements in the product.Â While on that project, he worked closely with the Product Management team to gather their needs and wrote the Software Requirement Specification documents for his team.Â He also prioritized the work, did some development and assigned work to his team members.Â His team of four to six people delivered over twenty improvements in a five-month timeframe.Â While working on this project, Steffan also coordinated the work from teams in Egypt and Israel delivering bidirectional support in the product.
Currently, Steffan is an Agile Coach as TD Insurance.