My Ph.D. thesis was in the area of fault tolerance, specifically looking at robust implementations of data structures. I continued to work in fault tolerance for my first years as a faculty member, focusing to a large extent on data-structure issues, but examining some other fault-tolerance issues as well.
Distributed-systems research had always been at least in the background. My Ph.D. supervisor was in the Computer Communications Networks Group and I joined that group as soon as I became a faculty member. Eventually, my research interests shifted so that distributed computing systems became the primary focus. In distributed systems, I concentrated on techniques and tools for debugging distributed applications. Our research group developed a good understanding of techniques for displaying execution histories of distributed (or parallel) applications and for applying abstraction to large histories so that currently irrelevant detail can be suppressed and relevant features more easily seen. Many of our theoretical ideas were implemented in a prototype tool known as POET (the Partial-Order Event Tracer). We also explored the application of our ideas concerning debugging to systems and application management in distributed systems.
Not long after I began doing significant work related to the debugging of distributed applications, the Director of the Centre for Advanced Studies (CAS) at the IBM Toronto Laboratory became interested in the work. That led to a sabbatical at CAS and a many-year collaboration with IBM. That collaboration provided research funding, opportunities for graduate students, and access to real-world problems. It also led to the inclusion of software developed in our research group in an IBM product (the Object-Level Trace facility in IBM Component Broker).
In retirement, I continue to participate as an observer in the Shoshin research group, now led by Prof. Bernard Wong. I am no longer doing my own research or supervising graduate students. My research activity is now limited to making occasional, I hope useful, comments on graduate-student presentations to the Shoshin group or the Systems and Networks group.
A close-to-complete list of my published papers can be found on
On recently taking a close look at my information in DBLP,
I discovered that some (seven, I think) of my papers are not included
in my entry, primarily because of the omission of my middle initial.
DBLP has a mechanism for getting papers moved from a
to their proper place, so I will try to get my DBLP entry tidied up.
I also hold one patent: David Taylor.
Method and apparatus for constructing displays of partially ordered data.
Canadian patent 2,129,190, issued August 17, 1999.
(Also U. S. Patent 5,640,500, issued June 17, 1997, with title
Computer program product for enabling a computer to construct displays
of partially ordered data.)
The patent application was funded by IBM and the patent was licensed to them.
The research described above took place in the Shoshin research group and received funding support from a variety of sources, principally the Natural Sciences and Engineering Research Council and IBM. My sabbatical at the University of Newcastle upon Tyne was partially funded by the Science and Engineering Research Council (now the Engineering and Physical Sciences Research Council).
I obtained an Honours B.Sc. in mathematics from the University of Saskatchewan and M.Math. and Ph.D. degrees in computer science from the University of Waterloo. On completing my Ph.D., I took a one-year faculty position at the University of Waterloo, to wait out a hiring freeze at Bell-Northern Research. And, 38 years later, I retired from U of W. During my career, I had five sabbatical leaves: the University of Newcastle upon Tyne (1983-1984), the IBM Toronto Laboratory (1991-1992 and 2007-2008), the IBM T. J. Watson Research Center (1999-2000), and a final tidy-up-my-career sabbatical during which I remained at U of W. I was a CAS Visiting Science at the Toronto Lab during the period between my two sabbaticals there (with a formal gap of one year for my sabbatical at T. J. Watson).
I was Associate Chair (Undergraduate) in the then-Department of Computer Science for three years (1987-1990) and then filled in for another year, to cover a leave in 1998-1999. I was Associate Dean (Undergraduate Studies) in the Faculty of Mathematics for seven years (2001-2007). I was appointed to the position just in time to be involved in the transition from our former student system to what is now called Quest, a particularly trying time for those involved in the undergraduate program. I was Director of the David R. Cheriton School of Computer Science for four years (2010-2014).
In Computer Science, I served on numerous committees. The following list is far from complete (an asterisk means that at some point I chaired that committee): Curriculum Committee* (later called Undergraduate Academic Plans Committee), Recruiting Committee* (later called Departmental Advisory Committee on Appointments, then School Advisory Committee on Appointments), Tenure and Promotion Committee*, Ph.D. Comprehensive Examination Committee* (I first served on this committee as the graduate-student representative), Graduate Committee, Undergraduate Admissions Committee, Committee on Committees* (committee to reorganize the structure of the Department).
I also served on numerous committees at the Faculty Level, including Standings and Promotions Committee*, Medals Committee*, Undergraduate Affairs Committee*, Student-Faculty Liaison Committee, Executive Committee of Faculty Council (later called Administrative Committee), Co-Op Enhancement/Review Committee*, Faculty Committee on Student Appeals*, Undergraduate Admissions Committee.
Finally, I served on committees and similar bodies beyond the Faculty Level, including Senate, Senate Undergraduate Council, Senate Executive, Senate Library Committee, Senate Long Range Planning Committee, Board of Governors, Board of Governors Executive, Co-op Review Overview Committee, Academic Board for Independent Studies.
I have not entirely escaped serving on University committees in retirement; see below.
I have had a variety of roles in conferences and journals. My major continuing activity was in the International Conference on Dependable Systems and Networks (Annual International Symposium on Fault-Tolerant Computing prior to 2000). I served as Publications Chair in 1991; Conference Coordinator in 2006 and 2010; Registration Chair in 2014, 2017, and 2019; and was a member of the Program Committee numerous times, beginning in 1988.
For the Symposium on Reliable Distributed Systems, I served as Program Chair in 1993, General Chair in 1996, and was a member of the Program Committee several times. I was a Program Vice-Chair for the International Conference on Distributed Computing Systems in 1995.
I was a member of the editorial board for IEEE Transactions on Knowledge and Data Engineering from 1997 to 2001. I was a member of the editorial board for IEEE Transactions on Dependable and Secure Computing from 2009 to 2013. From 1991 to 2002, I wrote reviews for Computing Reviews.
In retirement I have had more time for volunteer activities unrelated to computer science.
I am currently a member of the Board
University of Waterloo Retirees Association (UWRA).
My role on the Board is
Pension and Benefits Committee Liaison,
which means, among other responsibilities,
that I am a voting member of the University Pension and Benefits Committee.
I am on the Board
of the Grand Philharmonic Choir
and serve as treasurer of the Choir.
I am also on the Board of Canadian Baptists of Ontario and Quebec and serve as Policy Officer,
David R. Cheriton School of Computer Science University of Waterloo Waterloo, Ontario, Canada N2L 3G1
Office: DC 3511
Phone: +1 (519) 888-4567, ext. 34432