Résumé

Personal details

Name: Ciaran McHale
Nationality, age, status:     Irish, 41 years old, married with no children
Location: Reading, England
Work email: Ciaran.McHale@progress.com
Personal email: ciaran_mchale@yahoo.co.uk
Mobile/cell phone:     +44-(0)-7866-416-134
Fax: +44-(0)-118-954-6767

Primary talent

The details in the Work Experience section of this résumé list various technical skills. However, my primary talent is the ability to digest complex ideas and re-explain them in simpler ways. When I get frustrated at unnecessary complexity in computer-related technologies, I often respond by writing utility software, documentation or training material that cuts through the unnecessary complexity.

Work experience

After completing my Ph.D. thesis in 1994, I spent 9 months as a research assistant in university. Then, in September 1995, I joined IONA Technologies, which was a company specializing in standards-based middleware, such as CORBA and Web Services. I am a principal consultant. In September 2008, IONA Technologies was bought by Progress Software.

During my 14 years with IONA and Progress, my consultancy work has been varied, and has included architectural design, programming, code reviews, mentoring, low-level bug hunting and planning upgrades. I have consulted with customers in many industries, including Finance, Telecommunications, Aerospace, Publishing, Manufacturing and Healthcare.

Aside from consultancy, my job also involves writing and delivering training courses focussed on my employer’s products. I have written six developer-oriented training courses that cover C++ and Java versions of both Orbix and Orbacus (two CORBA product families from my employer), and also TAO and omniORB (open-source CORBA implementations). In addition, I wrote an Orbix administration training course, thus making 7 courses in total. In writing so many training courses, I have pioneered techniques for writing modular material that can be reused in multiple courses. The resulting modularity and reusability of courseware material has increased course quality and decreased the time—and hence the cost—required to write and maintain training courses.

My experience with so many CORBA products has enabled me to develop simple-yet-effective techniques for writing code that is portable across multiple CORBA products. For example, the C++ exercise system used in the CORBA courses is portable across Orbix, Orbacus, TAO and omniORB. Likewise, the Java exercise system is portable to the two Java products (Orbix and Orbacus) covered by the training courses.

I have written a book about CORBA called CORBA Explained Simply and also the CORBA Utilities, which is a collection of (mainly) C++ and Java utilities that simplify the development and deployment of CORBA applications. Both of these are available free-of-charge by following the links from the main page of my web site.

Soon after joining IONA, I realized that many CORBA applications contain a lot of repetitive code. This lead me to design and implement the Orbix Code Generation Toolkit (also known as idlgen), which my employer ships as part of the Orbix product range. I have routinely used this toolkit on many customer- and company-internal projects to help me generate varied types of code, including starting point code for new applications, data-type conversion functions, correctness test suites, performance test suites, load-balancers and gateways. I have used it to generate as little as a few hundred lines of code, and as much as half a million lines of code.

Computer technologies I am experienced with include CORBA (Orbix, Orbacus, TAO and omniORB), multi-threading, fault tolerance, load balancing C++, Java, Tcl, UNIX/Linux and Windows.

In 2007 I switched to a part-time employment contract that works as follows. I work for my employer 25 days per quarter, and I spend the rest of my time in my home office working on my own projects, such as writing books and training courses. I don’t mind which days or weeks I get to work on my own projects, so I can be constantly “on call”. If one of our customers wants some consultancy or training then I stop working on my own projects, visit the customer and afterwards resume work on my own projects. In addition, the “25 days per quarter” is flexible. If there is little demand for me to provide consultancy or training in one quarter then we carry forward the unused days into the budget for the next quarter. Conversely, if one quarter is very busy then we borrow some days from the next quarter. So far, this arrangement has worked out really well. I get to continue my work in middleware, which I enjoy, but I also have time to work on other enjoyable projects that are unrelated to my employer, such as the Skills You Need to Change the World training course.

Education

1989–1994: Ph.D. in Computer Science, Trinity College, Dublin.
Title: Synchronisation in Concurrent, Object-oriented Programming Languages: Expressive Power, Genericity and Inheritance. My web site provides an abstract and a downloadable PDF version of my thesis.
 
1985–1989:    BA(mod.) in Computer Science, Trinity College, Dublin.