Todd Reed


I have over 20 years of professional software development experience and over 2 years of management experience, leading a geographically dispersed team of 20 developers.

My technical experience includes mobile development on several platforms (but predominantly iOS), speech applications, natural language processing, image processing, and machine learning. I prefer working at smaller companies because they often provide greater opportunities to work on interesting problems and to contribute at multiple levels.

I hold a Master of Science degree in computer science. During my academic life I was recognized as an exceptional student, earning many prestigious accolades. These awards attest to my strong work ethic and resolve to excel.

Recent Work Experience

Owner, Software Developer

Reaction Software Inc., Calgary, Canada. August 2012-present.

I am currently working to productize Music Lens on iOS. Music Lens is an optical music recognition program—essentially the analogous of OCR for sheet music. Music Lens uses image processing and machine learning algorithms to recognize music notation from an image of sheet music acquired with an iOS device’s camera.

Technologies: iOS, Objective-C, Core Data, C++17, Python, CouchDB

iOS Consultant (Developer)

A Parent Media Co. Inc., Calgary, Canada. February 2014–September 2016.

Lead developer for Kidoodle.TV on iOS and tvOS. Kidoodle.TV is easiest described as “Netflix for kids”, and provides video streaming of kids content plus features for parents to control and monitor the viewing habits of their children.

Technologies: iOS, Core Data, Objective-C

iOS Consultant (Developer)

Arcurve, Calgary, Canada. June 2014–September 2014.

Led the development of SiteWatch 2 for iOS, an app for monitoring well operations for the oil and gas industry. A significant part of this involved implementing a custom graphing/plotting library after open source (CorePlot) and commercial libraries (Shinobi Controls) failed to provide satisfactory performance for the datasets involved.

Technologies: iOS, Objective-C

iOS Consultant (Developer)

SERVIZ Inc. (formerly ClubLocal LLC), Los Angeles, US. September 2012-May 2013.

Worked remotely with a small iOS development team based in Los Angeles. My primary activity involved designing and implementing a framework for real-time syncing of data between an enterprise iPad application (that used Core Data) and a remote XML-RPC server.

Technologies: iOS, Core Data, Objective-C

Senior Software Developer

Calgary Scientific Inc., Calgary, Canada. October 2010–August 2012.

Worked on iOS and Android clients (but mostly iOS) for Calgary Scientific’s medical imaging product, ResolutionMD.

Technologies: iOS, Objective-C, Android

Owner, Software Developer

Reaction Software Inc., Calgary, Canada. March 2010–September 2010.

During this time I worked on and released That Word 2, a word-finding game for the iPhone and iPod touch that I initially developed while on sabbatical in 2009.

Technologies: iOS, Objective-C, Python, Django, PostgreSQL

Consultant (Developer)

Ditech Networks (now part of Nuance), Mountain View, US. September 2009–February 2010.

Worked remotely with a small, distributed team on toktok, a speech-enabled call control system (akin to Google Voice in many ways).

Technologies: Java, Hibernate, Spring, VoiceXML, MySQL


April 2009–September 2009.

During this time I took a self-imposed sabbatical to pursue personal interests that weren’t possible while working full-time at Call Genie: train to run a 40 minute 10k; learn to play piano; catch up on reading; work on some personal programming projects; and learn a bit about some programming languages that interest me (notably the many functional languages that have been gaining an audience: Erlang, F#, Scala, Haskell). I began to experiment with iPhone development, and developed That Word, a word-finding game for the iPhone and iPod touch.

Director of Research & Development

Call Genie Inc., Calgary, Canada. November 2007–March 2009.

During this time, Call Genie acquired BTS Logic, in Århus, Denmark, and PhoneSpots, in San Francisco. I participated in the technical due diligence of these acquisitions. I continued to manage Call Genie’s Canadian development teams in Calgary and Toronto, and for a brief time, also managed the development team in San Francisco.

Development Manager

Call Genie Inc., Calgary, Canada. September 2006–October 2007.

During this one year period I managed a development team that grew three-fold to about 20 developers, located in Calgary and Toronto. I also continued to contribute to the design and architecture of Call Genie’s flagship product (see below).

Senior Software Engineer

Call Genie Inc., Calgary, Canada. October 2003–September 2006.

As part of a four-person development team, I participated in the design and implementation of Call Genie’s voice-automated 411-like directory service (à la GOOG-411) for finding businesses, and was the principal developer of its VUI (voice user interface) and a variety of related production tools.

Technologies: VoiceXML, Java, JDBC, Struts, Hibernate, Python, MySQL

Consultant (Developer)

Zi Corporation (now part of Nuance), Calgary, Canada. June 2003-Decemeber 2003.

I assumed the development of Zi’s eZiTap FEP application for the Symbian-based Sony P800 smartphone (FEP is an acronym for Front End Processor, Symbian’s term for a character input method, such as an on-screen keyboard or a hand-writing recognizer). In 2004 this application won the “Best Productivity Application” for Symbian devices in the Handango Champion Awards.

Technologies: C++, Symbian

Co-founder, Senior Software Engineer

Kojents Inc., Calgary, Canada. October 2002–April 2003.

Kojents is a software consulting and development firm I co-founded in 2001 with colleagues from E-Zone Networks. Kojents provided consulting services and also launched three games for the PocketPC. During this period I wrote Kojents’ gaming library, and developed Kojents’ first two games, WordHunt—a word-finding game—and Switch—a picture puzzle.

Technologies: C++, Windows CE

Consultant (Developer)

Zi Corporation (now part of Nuance), Calgary, Canada. May 2002–June 2003.

I was hired to optimize a graph construction algorithm for a new dictionary compression scheme Zi designed based on tries and directed acyclic graphs. I rewrote their prototype implementation, reducing the run-time to generate the optimized graph for an English word list from about thirty minutes to less than one minute.

Technologies: C++, Python

Consultant (Developer)

CSI Wireless Inc. (now Hemisphere GPS), Calgary, Canada. January 2002–August 2003

CSI Wireless hired Kojents, a company I co-founded with colleagues from E-Zone Networks, to implement a system to track the manufacturing, testing, and shipping of wireless products, and to synchronize this data between corporate offices in Calgary and manufacturing plants in Mexico. I was one of two principal developers that worked closely with the client on all phases of the project including requirements specification, design, implementation, testing, and support.

Technologies: C#, Java, C, Python, XML-RPC, PostgreSQL

Consultant (Developer)

Zi Corporation (now part of Nuance), Calgary, Canada. August 2001–January 2002.

I was hired to conduct research and build an experimental predictive user interface for cellphones that avoided the conventional (and often deeply nested) menu driven interfaces that prevailed at the time. The UI applied natural language processing techniques that allowed the user to type what they wanted to do. The system would then analyze the input and offer a menu of possible actions based on how the input was parsed. Applying techniques from The Reactive Keyboard, the UI also offered adaptive text prediction.

Technologies: Java (J2ME), C

Senior Software Engineer

E-Zone Networks, Calgary, Canada. January 2000–December 2000.

As a member of a four-person development team, I participated in all aspects of designing and implementing software for a multimedia Internet appliance designed for fitness equipment, delivering audio, video, and web features to end-users. In additional to the multimedia components, the system included networking and database back-end components.

Technologies: C++, COM/DCOM, Visual Basic, SQL

Owner, Software Developer

Reaction Software Inc., Calgary, Canada. September 1999–March 2000.

During this time I developed Express Sync, the first contact synchronization software available for Palm devices and the Windows Address Book. Express Sync was launched commercially in March 2000, and I officially supported the product till November 2006 (though I’ve helped customers as recently as March 2010 that are—amazingly—still using the product).

Technologies: C++


Master of Science

Computer Science, University of Calgary, 1995.

Specialized in computer vision. Designed and implemented an optical music recognition system that “reads” scanned images of music scores. I placed second, out of 657 eligible candidates, in the Governor Generals Gold Medal competition for my research and thesis work.

Bachelor of Science

Computer Science, University of British Columbia, 1993.


Nevill-Manning C.G., Reed T. and Witten I.H. Extracting Text from PostScript. Software-Practice and Experience, 28(3): 481–491, 1998.

Reed, Todd and Parker, J.R. Automatic Recognition of Printed Music. Proceeding of the 1996 International Conference on Pattern Recognition, Vienna, Austria.

Reed, Todd and Wyvill, Brian. Visual Simulation of Lightning. Proceedings of the SIGGRAPH 94, Orlando, USA. In Computer Graphics Proceedings, Annual Conference Series, ACM SIGGRAPH, 359–364.

Major Awards and Recognition

Placed second in Governor General’s Gold Medal for Masters students graduating from the University of Calgary, 1995.

NSERC postgraduate scholarship, 1993.

University of British Columbia Scholarship, 1989, 1990, 1992.

David J. Greer Scholarship for computer science, 1991.

Hewlett-Packard Prize in recognition of academic excellence, 1990.