Terry Coatta
8260 Fairdell Cr.
Richmond
B.C. V7C 1W4
Canada
Phone: (604) 274-3404
email: coatta@acm.org
October 13, 2005.
Objective
My passion is to turn great ideas into great software. Great software is
more than just cool technology. It is about fulfilling customer needs, delivering
on time and on budget, and always looking forward to what is next. I bring a strong technical background and
strategic analytical skills, an inclusive approach to management, and an enthusiasm
for my projects which have contributed to the success of my teams. I am looking
for an organization where I can contribute my skills, and work with other talented
professionals to deliver successful projects.
Skills
Management
- I was one of the founders of Silicon Chalk Inc., a Vancouver-based startup
company producing software for the post-secondary educational market. As
Vice-President of Products and Services at Silicon Chalk I lead a team of
18 people that
designed, implemented, and delivered 8 releases of Silicon Chalk's product. Silicon Chalk's software was
well-received by its users and considered ground-breaking in its use of
technology within the classroom environment.
While at Silicon Chalk I was an integral part of the senior management team
and participated in many aspects of the company including strategic planning, raising of capital, budgeting, revenue
modeling, staffing, project planning, and systems architecture.
- At Open Text, I was the
development manager of the Vancouver office. During my tenure,
the office grew from 5 to 10 people (9 developers and 1 quality analyst).
I was completely responsible for the leadership and management of the group.
I participated in employee recruitment and hiring, performance reviews,
budgeting, and coordination with other Open Text departments (Product Management,
Documentation, QA, Release Engineering) and other project development teams
principally located in Chicago, Illinois and Waterloo, Ontario. I was responsible
for setting the strategic goals for my group, carrying out high-level software
design and analysis, design and implementation reviews, and setting and
maintaining project schedules.
- At NSG, I was initially responsible for the day-to-day accounting processes
for the company (payables, receivables, payroll). Later, I took on the tasks
of marketing and client management. In this capacity I successfully attracted
a number of new clients to NSG and grew NSG from 4 to 6 people over a 1
year period, culminating in the representing the NSG partners in the deal
in which Open Text Corporation acquired NSG.
Leadership
- As the Vice-President of Products and Strategy at Silicon Chalk, I lead
a full product team consisting of developers, quality analysts, user interface specialists,
and technical writers. That team developed an application eventually consisting
of 3 million lines of C++ code involving real-time media delivery, 802.11
wireless networking, and peer-to-peer information replication. I was responsible
for overall project management within the development organization. I helped
establish the development process used within the organization,
and also guided the development of a number of in-house web-based systems
used to support that development process.
- As Director of Software Development (Distributed Systems) at Open Text,
one of my primary responsibilities was to establish a strategy for the adoption
of distributed computing technology and to promote the adoption of that
technology throughout the company. In 1997, I became leader of the development
group responsible for surveying distributed systems technology. At the end
of 1997, CORBA was chosen as a technology platform and I began the process
of soliciting requirements for CORBA development tools from the entire development
organization at Open Text. By the end of 1998, my team had completed the
first version of our CORBA toolkit, and I began to actively promote its
use throughout the development organization, including development offices
in Chicago, Waterloo, Ottawa, Ohio, and Detroit. As of the fall of 2000,
5 major software projects had adopted this toolkit, and it has become part
of the standard development environment at Open Text.
Technology
- At Silicon Chalk, our core technology was developed using ATL and COM.
I have extensive experience in designing and debugging COM-based applications.
I was also instrumental in the design of several peer-to-peer networking
protocols designed for the efficient dissemination of streaming media and
group collaboration over 802.11 wireless networks.
- Since Silicon Chalk, I have spent much of my time gaining experience
with C# and the .NET platform, including building some small web applications
using ASP.NET.
- I have a significant amount of CORBA experience, both the development
of application frameworks for CORBA, and the development of CORBA objects,
principally implemented using C++.
- I have used Enterprise Java Beans as a the basis for a complete
sample application for an EJB course I developed for the SPC.
- At ActiveState, I developed a component infrastructure for PERL objects,
exposing SOAP interfaces.
- As a Ph.D. student I was one of the principal designers and implementers
of the Raven System, a distributed, object-oriented programming environment
developed by the Distributed Systems Group at the University of British
Columbia. My thesis work investigated using object oriented techniques to
create a general-purpose distributed management infrastructure.
Programming Languages & Systems
- I have broad experience using and programming in both the Unix and the
Windows environments.
- I have programmed extensively in C and C++. I have
a good grasp of C# and Java.
- I am acquainted with Pascal, Perl, Javascript, Rexx, Tcl, and Lisp.
- I also
have extensive experience in the design of object oriented languages. I
was part of the team at the University of British Columbia that designed
the Raven language. I also wrote the compiler Raven, and
the Raven Configuration Language, a logic-based
language for systems management tasks. I have also written a C compiler
targeted at the NS16016 chip. While working
on these projects, I have designed and implemented compiler-generation tools,
and I have become familiar with the standard compiler generation tools of
the Unix system, yacc and lex.
Other
- During my tenure as an M.Sc. student, I acquired skills in statistical
systems modeling and performance analysis using quantitative methods based
on queuing theory.
- I have extensive teaching/lecturing experience. During 1999/2000 I co-developed
and presented day long courses for the Software Productivity Centre covering
the use of CORBA in Java, the use of CORBA in C++, and programming with
Enterprise Java Beans.. During both my M.Sc. and Ph.D. degrees I have worked
as a lecturer and teaching assistant for a wide variety of courses. My duties
in this capacity included lecturing, assisting students, designing course
work, and developing software for use in the lab. I particularly enjoyed
working with students one-on-one or in small groups, introducing them to
may of the issues which arise when designing and implementing complex pieces
of software.
- My association with Earl's Industries Ltd. (Vancouver) gave me experience
with control and sensing applications in an industrial environment. Implementing
the control system required that I become familiar with configuring and
programming programmable logic controllers (manufactured by Klockner Moeller
Inc.).
Work History
July 2005 to today - Devcraft Software Inc.
- July 2005: Devcraft Software was founded in July of 2005 by myself
and former Silicon Chalk developer Mike Cripps. Devcraft is a software
consulting firms specializing in the development of distributed applications.
January 2001 to July 2005 - Silicon Chalk Inc.
- January 2001: I was one of the co-founders of Silicon Chalk Inc.
I was initially appointed as the Vice-President of Development, and
later as Vice-President of Products and Strategy to recognize my role
in defining the strategic directions for the company.
- July 2005: Silicon Chalk ceased operations. Although the company
had over 100 customers using its software, it was not yet profitable
and was unable to secure further funding.
November 2000 to January 2001 - ActiveState
- November 2000: I took on the role of Senior Software Developer at
ActiveState. However, due to conflicting expectations regarding my position
there, I resigned in January 2001.
June 1994 to September 2000 - Open Text (formerly NSG)
- June 1994: I was a founding partner in NSG Network Software Group
Inc. I took over the role of president in February of 1995. I was responsible
for marketing, customer relationship management, negotiating contracts,
and bookkeeping. I also did development work for several projects.
- June 1996: NSG is acquired by Open Text Corporation. Initially,
my role at Open Text is Senior Software Engineer, but in March of 1997
I become Director of Development for Distributed Systems and have overall
responsibility for the Vancouver development group. From March 1997
to September 2000 I orchestrate the growth of the office from 4 developers,
to 9 developers and 1 quality analyst (plus myself).
- September 2000: I resigned my position at Open Text, seeking to
find a position that would allow me to develop and strengthen my management
capabilities.
June 1999 to 2001 - Software Productivity Centre (SPC)
- June 1999: I approached the SPC about participating in their free
lecture series. My initial lecture on C++ and CORBA was extremely popular
(the lecture was given 3 times and over 200 people attended in total)
and since then I have acted as an instructor on a contract basis giving
courses on CORBA, C++, Java, and Enterprise Java Beans.
September 1986 to May 1994 - UBC & University of Toronto
- September 1986: I entered the Master's Degree program at the University
of Toronto. During my degree there and my subsequent Ph.D. work at UBC
I worked as a teaching assistant for a variety of undergraduate courses.
- September 1993: During the last year of my Ph.D. program I worked
as an instructor, teaching introductory computer science for first year
computer science students. This involved developing course materials,
setting assignments and tests, and coordinating with undergraduate markers
and teaching assistants.
May 1991 to February 1992 - Earl's Industries Ltd
- May 1991: I was contracted by Earl's Industries to produce a computerized
scale model of a shipping container handling system that they were seeking
to develop.
- September 1991: I was contracted again by Earl's Industries to design
and implement the computer controller for a full-scale prototype of
the shipping container handling system. This work resulted in an application
for US and Canadian patents for the whole system.
June 1981 to September 1982 - Houghton Mifflin Inc.
- June 1981: I was contracted by Houghton Mifflin to produce curriculum-based
educational software. During the subsequent year I produced 4 educational
titles targeted at improving math skills for primary school aged children.
Academic History
September 1987 to May 1994 - Ph.D. University of British Columbia
(UBC)
- September 1987: I entered the Ph.D. program at the UBC. I graduated
in May 1994. My Ph.D. work concentrated on using distributed object-oriented
techniques to aid in the management of complex computer systems.
September 1985 to August 1987 - M.Sc. University of Toronto (UofT)
- September 1985: I entered the M.Sc. program at the UofT. I graduated
in December of 1987 (I had completed my work by August of 1987). My
M.Sc. work was focused on using statistical modeling techniques to
analyze the performance of network computer systems.
September 1981 to May of 1985 - B.Sc. University of British Columbia
(UBC)
- September 1981: I entered first year science at the UBC. I received
a B.Sc. with Honours in Computer Science in May 1985.
Affiliations
- Member, Association for Computing Machinery (ACM)
- Member, Institute of Electrical and Electronics Engineers (IEEE)
Publications
- Terry Coatta, Traipsing through the QA tools desert. ACM Queue Magazine,
Volume 3 Issue 1, February 2005.
- Terry Coatta, Norman Hutchinson,
Andrew Warfield, and Joseph Wong. A Data Synchronization Service for Ad Hoc Groups, IEEE Wireless Communications and Networking Conference (WCNC), March 2004.
- Terry Coatta and Roy Kaufmann. A New Platform for Pervasive Learning,
AACE Ed-Media 2003 (short paper).
- Donald Acton, Terry Coatta, Peter Phillips, and Mike Sample. A Development
Framework for Building Fine-Grain CORBA Applications, Proceedings of the
Enterprise Distributed Object Computing Workshop (EDOC '98), San Diego 1998.
- Terry Coatta and Gerald Neufeld. Distributed Configuration Management
Using Composite Objects and Constraints, Distributed Systems Engineering
Volume 1, Number 5, September 1994, The British Computer Society, pages
294-303.
- Terry Coatta. Object-Oriented Configuration Management, Doctoral Thesis,
Department of Computer Science, University of British Columbia 1994.
- Terry Coatta and Gerald Neufeld. Distributed Configuration Management
Using Composite Objects and Constraints, Proceedings of the Second International
Workshop on Configurable Distributed Systems, Pittsburgh 1994, pages 112-122.
- Dave Finklestein, Don Acton, Terry Coatta, Norm Hutchinson, and Gerry
Neufeld. Object Properties in the Raven System. Proceedings of the 14th
International Conference on Distributed Computer Systems, Poznan, Poland,
1994, pages 502-509.
- Terry Coatta. Using Objects to Distribute Configuration Management Tasks,
Proceedings of the 1993 IBM CAS Conference, Toronto 1993, pages 537-547.
- Terry Coatta and Gerald Neufeld. Configuration Management via Constraint
Programming, Proceedings of the First International Workshop on Configurable
Distributed Systems, London 1992, pages 90-101.
- Terry Coatta. Queueing Networks with State-Dependent Service Rates,
Master's Thesis, Department of Computer Science, University of Toronto 1987.
Awards
- 1992-93: IBM CAS Fellowship
- 1991-92: Hughes Aircraft Company Fellowship
- 1985-91: National Sciences and Engineering Research Council Post Graduate
Scholarship
- 1983-85: University of British Columbia Scholarship
Professional Activities
- Chair of the ACM Membership Services Board since 2003.
- Member of the ACM Queue editorial board since 2002.
- Speaker for the SPC Seminar Series, October 18, 2000. "Enterprise
Java Beans: The Path to Web Applications"
- Speaker for the SPC Seminar Series, March 18, 1999. "CORBA: Distributed
Computing for the Enterprise"
- Invited speaker for the Annual Software Productivity Center Conference,
Vancouver B.C., 1997. "Object Architecture Using HTTP".
- Member of the Program Committee for the IEEE 3rd International Conference
on Configurable Distributed Systems (CDS-96) Annapolis, USA.
Interests
- Softball, soccer, ball hockey, hiking, guitar, gardening, photography.
References