Curriculum Vitae

James Casey

I am a software developer with over ten years experience of creating web based software using a wide range of languages, tools and environments.

I believe in providing solutions that satisfies the needs of users while remaining easy to support and maintain. To achieve this aim, I advocate the use of modern "agile" software development techniques that allow a development team to trust in the reliability of their code, and facilitate the rapid redeployment of components into production systems.

I enjoy challenging architectural and technical problems and working in a team with fun, committed and stimulating colleagues.

       Address: 1 Chemin des Bossons
         01210 FERNEY-VOLTAIRE
         France
       Date of Birth: 18 April 1973
       Nationality: British
          
       Personal email: james [ at ] jamesc.net
       Work email: james.casey [ at ] cern.ch

Skills

Summary Deep Expertise in Java Server-side programming, using different application servers, databases, communication technologies, protocols and frameworks and operating systems. Deep Expertise in building testing and deployment frameworks to support teams working within "Agile" methodologies. Deep Expertise in debugging and tuning large scale service deployments. Expertise in other programming languages and strong interests in principles of programming languages.

Programming Languages: Java (6 years), Perl (6 years), C++ (3 years), C (3 years), Dylan (1 year), Lisp (< 1 year
Java tools, APIs, libraries: Servlet 2.2/2.3 (5 years), JUnit (4 years), Ant (4 years), Xerces (4 years), Xalan (3 years), JDBC (3 years), RMI (3 years), concurrent-utils (3 years), log4J (3 years), JNI (3 years), Castor (2 years), Axis SOAP (2 years), EJB (< 1 year), JDO (1 year)
XML: XSLT (3 years), XSL/FO (1 year), SAX (4 years), DOM (1 year), DTD (10 years), SGML (4 years), XML Schema (4 years)
Web protocols: HTML, HTTP, URI, CSS (10 years)
Communication protocols: HTTP (10 years), SOAP (3 years), CORBA (2 years)

Databases: MySQL (4 years), Oracle 9i (2 years), PostgreSQL (2 years), ObjectStore (2 years)
Application Servers: Tomcat 3/4 (6 years), Oracle 9iAS (2 years), BEA Weblogic (< 1 year)
Operating Systems: Linux (6 years), Unix (SunOS/ Solaris) (4 years), Windows NT / 2000 (2 years)
IDEs: IntelliJ IDEA (1 year), Netbeans (2 years)
Methodologies: Extreme Programing, Agile Methodologies, UML, Design Patterns, Object Orientation (10 years)

Professional Experience

LCG Fellow CERN (May 2004-Present)

Staff Member, Grid Deployment Group, CERN (European Laboratory for Particle Physics), Switzerland
As a Staff Member within the Grid Deployment, I act as a co-ordinator for the rollout of the Worldwide LHC Computing Grid Service. In particular, I have run a series of 'Service Challenges' which involve the deployment of Petabyte scale storage systems at 10 worldwide sites, and the development of tools to transfer data to those sites at rates in excess of 2GB/s. I was responsible for the design and development of the prototype data transfer system, and the creation of best practices for the required storage and network configurations. This led to the team meeting the milestones for transfer rates during the Service Challenges.

I have also developed core grid services in the area of data management; I was a core developer on a grid file catalog, and acted as co-architect for a disk-only grid storage system. I also worked on the automation of service management for these services with the CERN Computing Centre management system. This involved creating configuration profiles, monitoring tools and alarms along with the corresponding operational procedure. This led to a total system that could satisfy it's 99% uptime requirements.

I currently work on debugging and tuning the systems involved and development of monitoring tools to aid the operations teams, as well as managing daily operations meetings.

LCG Fellow CERN (July 2002-April 2004)

LCG Fellow, Database Group, CERN, Switzerland
While a Fellow at CERN, I spent 15 months as a Java Software Developer in the European DataGrid (EDG) Project, and 6 months providing operational support for Oracle based production services using the code produced by the EDG project.

As a Java Software Developer I was involved in providing components for the LHC Computing Grid (LCG) project. This involved taking research prototypes from the EDG project, and creating production quality solutions for the LCG project.

  • Designed and implemented a Java based Web Services architecture for the core data replication components.
  • Designed and implemented an automatic build and release management system for all the components produced by the developers in the Data Management work package.
  • Co-Designed a Grid File Access Library, which was a POSIX compatible interface to Grid accessible files, including those in tape-based Mass Storage Systems.
  • Within the Data Management work package, I filled the role of internal expert on Java based production-quality software development techniques.
  • Acted in supervisory roles to students working within the Database Group.
  • Responsible for the creation of bundled distributions of the Oracle Database and Application Server software for distribution to world-wide High Energy Physics laboratories.
  • Co-ordinated the world-wide deployment of Oracle based applications for the LCG project.
  • Designed procedures for first level support staff, and provided second-level operational support (Application Server expert) for 24x7 production systems.

Principal Developer Escape Velocity Ltd (April 2000- July 2002)

Principal Developer, Core Framework Group, London, UK
Escape Velocity developed personalisation systems for the telecommunications, online retail and marketing sectors. I worked in the Core Framework group, designing the personalisation engine underlying the products.
  • Developed a Java based application server framework for multi-channel content delivery. This work focused on the design and development of an abstract markup language that could be translated to WAP, SMS and web-based output, as well as interfacing the system to multiple containers such as Servlets, EJB and Web Services.
  • Designed and implemented a Behavioural Personalisation prediction framework for web services. This was implemented in multiple languages (Java, C++, PHP). I was responsible for the Java based implementation of the framework.
  • Prototyped products using behavioural personalisation and machine learning techniques in the area of music selection, document summarisation and customer action prediction.
  • Designed and developed a build, distribution and release system using Jakarta Ant.

Freelance Lighting Designer London, UK (1997-2000)

Based in London, worked as a lighting designer and moving light programmer in the Corporate and Entertainment Event industry.
  • Completed a M.Sc. in the Built Environment: Light and Lighting at the Bartlett School of Architecture, London.
  • Participated in all stages of a production process, from the initial client meeting to the installation of the equipment and the actual running of the event.

Software Developer / Information Systems Support Harlequin Ltd. (1995-1997)

Software Developer, EP2000 Architecture group, Edinburgh, UK
Worked in the group responsible for middleware related aspects of the EP2000 product, a distributed pre-press printing application running on multiple platforms. Designed and authored a set of operating system abstraction libraries that gave a common C++ interface to system functionality across different platforms.

Software Developer, Web Products Group, Menlo Park, CA
Worked on the architectural aspects of a prototype web-based printing application. This involved writing sample front-ends in Java that interfaced with a C++ based server.

Software Developer, Harlequin Information Systems, Cambridge, UK
Worked on the Spring project, to develop internal information systems using Lotus Notes as the document store & transport layer. This involved interfacing Lotus Notes with internal source code control systems, Mail, News and the Web. Performed front-line information system support and training for 150 internal users.

CERN - European Laboratory for Particle Physics (1994)

Summer Student, Programming Techniques Group, Geneva, Switzerland
While at CERN in 1994 I co-designed and implemented WebLinker, a server side mechanism for improving consistency of links in the World Wide Web. Harlequin subsequently purchased this along with the companion product WebMaker, an automated documentation system for the World Wide Web.
I authored and presented a paper on WebLinker at the 2nd International Web Conference in Chicago, which was later selected for publication in a review journal of the conference.

Ieunet Ltd. (1992-1994)

System Programmer & System Administrator, Dublin, Ireland
As a member of the Network Operation Centre, had responsibility for the day to day running of production servers. Duties also included administering network services, setup of new customer accounts and telephone support.

Education

Bartlett School of Architecture, University College, London (1997-1998)

M.Sc. in the Built Environment: Light & Lighting

Courses taken:
1997-8: Lighting Fundamentals, Lighting Sources, Lighting: Current Research Issues, Advanced Integrated Lighting Design, Lighting Practice, Lighting: Applied Calculations

Dissertation:
"Three-dimensional Illuminance - A tool for lighting design?"
This thesis examined a theoretical three-dimensional illumination system, which allows the lighting designer to look at the flow of light in all three dimensions of an architectural space. It compares this with more traditional computer graphics techniques such as ray tracing and radiosity, and gives some suggestions on a possible structure for a future lighting simulation and modelling system.

Trinity College, Dublin (1991-1995)

B.A. (Hons) II.1 in Mathematics

Courses Taken:
1994-5: Cryptography, Computer Aided Design, Linear Operators, Database Systems and Artificial Intelligence
1993-4: Microprocessor systems, System Software, Algorithms, Coding Theory, Wavelets, Computer Aided Design and Abstract Algebra
1992-3: Modern Algebra, Analysis, Topology, Mathematical Methods, Numerical Analysis and Further Pascal Programming
1991-2: Algebra, Analysis, Mathematical Methods, Mechanics, Statistics and Pascal Programming

Language Skills

English mother tongue, Basic French, Basic German