Summary
Experienced Professional Programmer with Strong Mathematical Background
Skills
- Over 25 years professional programming experience with software
systems of all types
- Extensive experience with state-of-the-art languages, environments
and methodologies, in particular Agile development on the JVM
- Programming Languages: Golang, Java, Clojure, C, C++, Python, Perl, Tcl,
Octave, R
- Strong academic background
- Long history of contribution to
free software
Education
Imperial College London
1997
PhD, Computer Science
Trinity College Dublin
1989
MSc, Computer Science
Trinity College Dublin
1987
BA/BAI, Computer Engineering
Recent Professional Experience
May 2024–Present
Fractional Contract Engineer
Soft Telecom Ltd.
Dublin, Ireland
- Maintenance and extension of a Management System for a Telecom customer
- Worked on both Frontend and Backend
- Technologies used Java8, Spring Framework, Hibernate, MySQL, GWT, Sencha GXT
Nov 2022–May 2023
Contract Senior Engineer
Mastercard Inc.
Dublin, Ireland
- Worked on a REST interface to a Big-Data cluster for analysis of fraudulent transactions
- Technologies used involved Java8, Spring Boot, JPA, Postgres, Spring Batch
Sep 2020–May 2022
Contract Senior Engineer
Truata Ltd.
Dublin, Ireland
- Helped with the design and implementation of Calibrate: a Web interface to a Big-Data cluster
- Worked on the REST Backend for an Angular UI which communicated with the cluster via RabbitMQ messaging
- The Backend interface was specified in OpenAPI and RMQ messages in Avro
- Designed and implemented a lightweight schema migration framework for Spring-Data-MongoDB
- Other technologies used involved Java8, Spring Boot, MongoDB, Azure Datalake, Hashicorp Vault, S3, JDBC Databases, Docker, Maven
Oct 2017–Aug 2020
Contract Senior Engineer
Engage / EcoOnline
Dublin, Ireland
- Helped with ongoing development of Engage EHS, a SAAS platform for Health and Safety Management
- Worked on lightweight back-end services for login, and management of users and permissions, among others
- Worked on bulk data importers for customer on-boarding
- Technologies used include Golang (and Goland), MySQL, PostgreSQL, Memcached, SAML
Nov 2015–Jun 2017
Contract Senior Engineer
S3 Connected Health
Dublin, Ireland
- Guided the implementation of Affinial, a Patient Engagement
and Support Platform
- Microservice architecture: Spring Boot, Docker, Java8, MongoDB,
Kafka, Avro, Swagger
- Designed Failure Model around stateless services and a stateful
persistence layer
- Prototyped use of Kafka Streams and Kafka Connect for de-identified
data export
- Implemented efficient event-driven adherence-calculation component
- Drove runtime support for fluent Drools extensions
- Implemented multi-module Maven build system
July 2015–Oct 2015
Contract Senior Engineer
Groupon
Dublin, Ireland
- Implemented back-end for internal CRM webapp
- Technologies: Spring Boot, Java8, PostgreSQL, S3
- Communication with AngularJS front-end over REST and JSON
Oct 2014–Dec 2014
Java Consultant
Cleverbug
Dublin, Ireland
- Implemented Promotions' Engine and Shopping Cart for CleverCards
- Deployed to Google App Engine
May 2013–Jul 2015
Part-time Consultant
Soft
Telecom
Dublin, Ireland
- Built and maintain the data acquisition service for
Enterprise Cost
Analytics product
- During this time pursued further education online (see below)
June 2012–Apr 2013
Senior Consultant
Cayova
Dublin, Ireland
- Design and Implementation of storage service for use in large-scale
distributed system (social network)
- Technologies included AWS S3 (Eucalyptus) and Datomic
- Built ad-hoc ORM for Datomic in Groovy to persist user-related
resources (implemented as a forest of Red-Black Trees)
Jan 2010–Apr 2011
Principal Engineer
Newbay Software
Dublin, Ireland
- Technical Lead for development of SAL, a storage back-end used
throughout Newbay products
- High-performance, highly-available networked service
- Storage abstraction implementable on different underlying
technologies (e.g., Cassandra, EMC Atmos, NetApp)
Oct 2008–Dec 2009
Java Consultant
Newbay Software
Dublin, Ireland
- Helped design and build Digital Vault, a personal cloud-storage
system
- Out of this effort emerged a generic storage abstraction SAL, see
above
July 2008–Sept 2008
Java Consultant
CTEP
Dublin, Ireland
- Helped with initial design and implementation of webapp
managing online Clinical Trials
- Technologies: Java Server Faces, Hibernate, OracleDB
June 2007–July 2008
Java Consultant
Friends
First
Dublin, Ireland
- Built a webapp allowing online loan applications
- Technologies included Spring (MVC and Webflow), Hibernate,
FitNesse, Weblogic
- Set-up and administered its development and deployment servers, Weblogic 10 on RHEL
Jan 2007–May 2007
Java Consultant
Rococo Software
Dublin, Ireland
- Implemented updates for Java APIs for Bluetooth (JSR-82)
- Produced proof-of-concept implementation on D-Bus on Linux
Apr 2006–Oct 2006
Senior Engineer
Zuehlke
London, UK
- Developed a regression-testing framework for XML web-services
- Technologies included Java, XSLT, jpcap, jUnit
Jan 2006–Apr 2006
J2EE Consultant
Friends
First
Dublin, Ireland
- Reimplemented legacy internal system (VB/C++) as webapp
- Integrated it into wider J2EE-based intranet
- Technologies included Struts, Tiles, Tomcat, Axis
Aug 2001–Oct 2005
Senior and Principal Engineer
Rococo Software
Dublin, Ireland
- Helped JSR-82 committee to produce Java APIs for Bluetooth
- Worked on Rococo's implementation, Impronto
- Cowrote JSR-82 simulator, providing JSR-82 APIs in JavaSE
- Implemented OBEX package for Impronto in pure JavaME
- Ported Impronto to Ericsson stack and Sun's KVM
- Ported Impronto to BlueZ stack on Linux
- Maintainer of BlueZ-SDP package,
contributed
many bug-fixes and improvements to BlueZ
- Designed and implemented lightweight RMI mechanism for J2ME
- Implemented OBEX over IrDA for Linux and Windows
Selected Online Courses
Jun 2015
M101J: MongoDB for Java Developers
MongoDB University
Aug 2015
CS190.1x: Scalable Machine Learning
edX
Mar 2015
Mining Massive Datasets
Coursera
May 2014
6.041x: Introduction to Probability
edX
Oct 2013
Algorithms: Design and Analysis, Part 2
Coursera
Aug 2013
Algorithms: Design and Analysis, Part 1
Coursera
Jul 2013
Machine Learning
Coursera