Roger's Stuff

Links

Pages

About Me

I tend to use the title "software professional" because it's a general enough tag to encompass the range of things I do, and an indication that I take my work seriously.  My official job title has the word ‘Architect’ in it, but I’m still somewhat uncomfortable with that, and would prefer to think of myself simply as a senior member of the technical staff.

My early career was spent in commercial R&D environments with C and C++ on Unix workstations (Sun, HP), and working with the X Window System.  Happy days!  Like most folk, I eventually moved on to Microsoft technologies, initially C++ and COM, then C# and the CLR. Although I still consider C# and .NET as important technologies, I spend most of my time with Java and its associated technologies (e.g. Groovy).  The JVM is a wonderful platform, and I'm constantly looking at how we can build better solutions from the combination of languages and technologies it supports.

Most of my work centres on enterprise integration, so I'm interested in EIP in general and the options for implementing them efficiently and scalably using Java technology. Over the last two years or so I have been the lead-architect on healthcare informatics projects, so I’ve been working with HL7 and related standards, appreciating the difficulties in achieving true interoperability.

The topics which interest me most are these:

  1. Ontology-based information systems. I’m not a big fan of the term ’semantic web’, but I am very interested in what the associated technologies can do, particularly the application of RDF and OWL to building powerful, flexible information systems, based on triple-stores and ontologies.
  2. Building dependable software: using rigorous, formal (mathematical) methods to develop software which meets its specification.
  3. Building the right solution. Applying domain-driven design, use-cases, some UML and just enough process.
  4. Visual programming, so-called domain-specific languages (DSLs) and graphical tools to implement them.
  5. Message-based systems and event-driven architectures.

The first of these relates strongly to my academic interest in knowledge engineering. I like John Sowa’s definition of this term (from his book Knowledge Representation: Logical, Philosophical, and Computational Foundations, Brooks Cole Publishing Co., Pacific Grove, CA, ©2000):

… the application of logic and ontology to the task of building computable models of some domain, for some purpose. [Chapter 3, p.132]

All of these relate strongly to the practical problems of achieving semantic interoperability, a particularly serious issue in healthcare informatics.

When I’m not doing software stuff, I’m trying to learn jazz piano, hoping to start paragliding, a little digital photography, running the kids to and fro, and getting out occasionally on my bike or in running shoes. I want to build a replica C-type or D-type Jaguar.  And a GT40.  I just need to find the budget and the time....