Consulting Toolsmiths

Matt Doar

m d o a r @ p o b o x . c o m

A minimal homepage designed for contact purposes. I'm a consultant working with software tools such as version control (CVS, Subversion), build systems (make, SCons) and bug trackers (Bugzilla, JIRA).
Most of my clients are smaller startups in Silicon Valley. I'm also the author of O'Reilly's "Practical Development Environments".

Cover image from Practical Development Environments Graph showing first years rankings of Practical Development Environments on Amazon Graph showing progress over time of Practical Development Environments
NEW! Using Python and SOAP to create a CLI for JIRA, Python Magazine, February 2008


Practical Development Environments
The O'Reilly book reached bookshops in early October 2005. There is a page of links to reviews, and a page of errata. It's in Safari, and it's even been added to Google Books.
The press release is titled A Guide for Toolsmiths - The Unsung Heroes of Software Development. My current favorite quote from it is:
    "building an effective development environment is not only not sexy; it's not easy either."
So toolsmiths are not only unsung heroes, but also not sexy! Here's a more technical description, taken from the O'Reilly website for the book:
"This book doesn't tell you how to write faster code, or how to write code with fewer memory leaks, or even how to debug code at all. What it does tell you is how to build your product in better ways, how to keep track of the code that you write, and how to track the bugs in your code. Plus some more things you'll wish you had known before starting a project.
Practical Development Environments is a guide, a collection of advice about real development environments for small to medium-sized projects and groups. Each of the chapters considers a different kind of tool - tools for tracking versions of files, build tools, testing tools, bug-tracking tools, tools for creating documentation, and tools for creating packaged releases. Each chapter discusses what you should look for in that kind of tool and what to avoid, and also describes some good ideas, bad ideas, and annoying experiences for each area. Specific instances of each type of tool are described in enough detail so that you can decide which ones you want to investigate further.
Developers want to write code, not maintain makefiles. Writers want to write content instead of manage templates. IT provides machines, but doesn't have time to maintain all the different tools. Managers want the product to move smoothly from development to release, and are interested in tools to help this happen more often. Whether as a full-time position or just because they are helpful, all projects have toolsmiths: making choices about tools, installing them, and then maintaining the tools that everyone else depends upon. This book is especially for everyone who ends up being a toolsmith for his or her group. "
JDiff ( is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared. This is very useful for describing exactly what has changed between two releases of a product. Only the API (Application Programming Interface) of each version is compared. It does not compare what the source code does when executed.
Tiers (tiers1.2.tgz) is a random network topology generator, for creating networks which resemble real-life computer networks. Thanks to DongWoo Lee for adding the automake support. Note: Tiers is no longer supported, but feel free to use the C++ code for ideas.


  1. Multicast in the Asynchronous Transfer Mode, J. M. S. Doar, Ph.D. Thesis, University of Cambridge Computer Laboratory, April 1993. Abstract, Download, also available in PDF (1.4MB) and PS (2.1MB)
  2. A Slotted Ring Copy Fabric for a Multicast Fast Packet Switch, P. Newman and M. Doar, Proceedings of International Switching Symposium 1990, Stockholm. Abstract , Download
  3. Multicast in ATM Networks, M. Doar and N.G. Bean, Thirtieth Annual Allerton Conference, Illinois, 1992. Abstract
  4. How Bad is Naive Multicast Routing?, M. Doar and I.M. Leslie, Infocom 1993, San Francisco. Abstract , Download, also available here
  5. Design and Performance of a Slotted Ring Multicast Fabric, M. Doar and N.G. Bean, U.K. Performance Engineering Workshop, 1992. Abstract
  6. Designing for LAN Emulation in ATM Switches, M. Doar, Digital Communications Design Conference, Santa Clara, February 1995.
  7. Design of Real Networks with LAN Emulation, M. Doar and G. Marshall, Networld + Interop 1995 Engineer Conference, Las Vegas, March 1995.
  8. Designing for LAN Emulation in ATM Switches, M. Doar, by invitation in HP Design Symposium 1995, Japan, June 1995.
  9. A Better Model for Generating Test Networks, M. Doar, IEEE Global Telecommunications Conference/GLOBECOM'96, London, November 1996. Abstract, Download Source code for the TIERS random network topology generator is available from here
  10. Modeling Internet Topology, K. Calvert, M.B. Doar, E.W. Zegura, IEEE Communications Magazine, June 1997. Abstract , Download
  11. Implementation of IP Autoconfiguration for IP over ATM, M.B. Doar, Proceedings of Third Annual Technical Conference on Telecommunications R&D in Massachusetts, November 1997. Abstract , Download
  12. The Domainserver Hierarchy for Multicast Routing in ATM Networks, S. Komandur, D. Mosse, M.B. Doar, Proceedings of IEEE ATM '98 Workshop, May 1998. Abstract , Download
  13. JDiff - What Really Changed? Java Developers Journal, March 2002. Download Source code for JDiff is available from


A photograph from just after my US citizenship ceremony in 2002.
Picture of Matt Doar

[Back To Geocities]