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.
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. In September 2008, IONA Technologies was bought by Progress Software.
During my 15 years with IONA and Progress, my consultancy work was varied, and included architectural design, programming, code reviews, mentoring, low-level bug hunting and planning upgrades. I consulted with customers in many industries, including Finance, Telecommunications, Aerospace, Publishing, Manufacturing and Healthcare. During my time with IONA, I was promoted to the position of principal consultant.
Aside from consultancy, my job also involved writing and delivering training courses focussed on my employer’s products. I wrote six developer-oriented training courses that covered 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 pioneered techniques for writing modular material that could be reused in multiple courses. The resulting modularity and reusability of courseware material 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 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 was portable across Orbix, Orbacus, TAO and omniORB. Likewise, the Java exercise system was portable to the two Java products (Orbix and Orbacus) covered by the training courses.
I wrote the CORBA Explained Simply book to complement my employer’s training courses; and I wrote the CORBA Utilities, which is a collection of (mainly) C++ and Java classes 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 is still shipped as part of the Orbix product range. I 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 idlgen 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 worked as follows. By default, I worked in my home office on my own projects, such as writing books and training courses, but I was “on call” in case a customer wanted me. This flexible arrangement meant I continued to work in middleware, which I enjoyed, but I also had time to work on other enjoyable projects unrelated to my employer, such as the Skills You Need to Change the World training course.
All good things must come to an end. In September 2010, as the recession continued to hit my employer, I was laid off. Rather than seek another job immediately, I decided to take an unpaid career break so I could complete some of my work-in-progress projects and release them as open-source software. During this time, I released Config4*, and made significant progress on Canthology before I accepted a contracting assignment in July 2011. Ever since, I have been working as a contract programmer within the banking industry.
|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.
|BA(mod.) in Computer Science, Trinity College, Dublin.