Systems Architect
Greater Boston Area
Systems Architect
Greater Boston Area
I have worked in the software industry since graduating from Cambridge in 1982. From 1990 to 2000 I worked as an independent consultant - initially as a C++ developer and later as a Systems Architect - for major investment banks. In 2000 I moved from the U.K. to the U.S. and have since worked as a consultant with Abraxas Technologies at companies in networking and financial services - both well-established multi-nationals and startups.
During this time I have gained much experience in defining and implementing large scale distributed software systems for my client companies.
My work includes: Guiding implementation teams through technology choices. Ensuring that issues such as scale, performance, availability and risk are addressed at all stages of a project. Providing hands-on development expertise as appropriate. Assessing existing architectures. Liaising with exernal and internal groups and individuals.
Technology analysis and recommendation, standards liaison, customer liaison, team building, tool selection, functional specification, system design and implementation, object oriented design, architecture definition, relational modeling, object modeling, information modeling, service oriented architectures, messaging, web services, GUI design and implementation, Java, C++, XML, HTML, Unix, Windows, weblogic, websphere, tomcat, jetty, axis, eclipse, rose, together/J, sybase, oracle etc.
(Public Company; 1001-5000 employees; IDCO; Information Services industry)
April 2006 — Present (3 years 4 months)
Responsible for the software architecture of a multi-tier system to support the evaluation of illiquid bonds. Including component specification, deployment specification, scaling, development methodologies, technology analysis and mentoring.
(Public Company; Computer Software industry)
September 2000 — April 2006 (5 years 8 months)
Providing architectural and development services to clients including Cisco Systems Inc, UBS, TAZZ Networks and the Capital Group. The single core to these efforts has been the formal definition of appropriate information models, the specification of interaction mechanisms between distributed components, implementation of frameworks and applications in Java and C++ (with all the usual suspects such as XML, web services, messaging etc.), analysis of existing in house projects and external applications and multi-functional liaison.
Details on these positions below:
(Privately Held; 5001-10,000 employees; Investment Management industry)
September 2005 — April 2006 (8 months)
Capital Group is a leading investment management company. As a consultant I work on the development of a sales and intermediary tracking system. The legacy application consists of a Swing GUI with a J2EE middle tier (WebLogic 8.1) and an Oracle RDBMS plus various interfaces with third-party and legacy systems. The project is currently implementing major new functionality using a combination of Session Beans hosted by WebLogic 8.1 and Hibernate 3.1 in the middle tier interfacing to a .NET client written in C# using document-wrapped encoded Web Services.
My responsibilities include:
· Setting architectural direction
· Designing and integrating new Java functionality in all tiers
· Coding the middle tier business logic, persistence layer, Web Service interface and the necessary Web Service codecs
· Assisting with data model design and implementation
· Establishing a development, build and unit testing environment utilizing continuous integration
· Mentoring junior developers
(Privately Held; 51-200 employees; Internet industry)
July 2004 — August 2005 (1 year 2 months)
TAZZ Networks develops policy driven networking middleware for use in large network carrier environments.
As a consultant I provided general architectural guidance to engineering, documented existing architecture, developed use-case driven future systems architecture, lead the design of a set of scalable communications adapters using patterns from the POSA series of books, provided guidance on improving current system architecture to meet performance and functional criteria, and assisted in product roadmap planning.
I also acted as the main technical liaison with the principal contractor on a large project, presented jointly with them to the customer and translated customer requirements into functional and design specifications.
Technologies: Java, C++, XML, Postgres, Together/J, Rose, UML, Solaris
(Public Company; 10,001 or more employees; Investment Banking industry)
August 2003 — July 2004 (1 year)
As a consultant I acted as a Principal Architect in the software infrastructure team. In this role I:
Audited a bank-wide project to deploy a third party instant messaging platform.
Researched, authored and presented an Instant Messaging strategy for the UBS IM Steering Committee including the integration of text, voice, video and multi-media, standards development and vendor positioning.
Performed a code review of a large distributed application consisting of over 12,000 Java classes.
Acted as Principal Architect on a bank-wide software build, stage, distribute and deploy system targeting globally dispersed systems.
Authored several Java 'best-practices' guides.
Developed a plugin for WebSphere to integrate it with the banks RBAC system.
Technologies: Java, SQL, Together/J, Headway, Rose, UML, IBM WebSphere, XP, Solaris, Clearcase
(Public Company; 10,001 or more employees; Internet industry)
April 2002 — July 2003 (1 year 4 months)
Contracted to Cisco Systems Inc. I was a technical lead on Ciscos next generation subscriber services product. The product includes on-router and off-router components. My specific responsibilities included: Specifying and designing a distributed application information model and execution semantics for use both on and off-router. Providing a Java binding of that model for use in off-router applications. Defining the protocol used between off-router and on-router components. Analyzing and selecting technology and standards.
I also continued work on the subscriber edge services web application that I had worked on previously at Cisco. In particular I enhanced the JMX management components and designed and developed a suite of UI components including taglibs and Dreamweaver extensions.
Technologies: UML, Java, WSDL, XML, SOAP, BEEP, SAML, XACML, SASL, Together/J, ant, Axis, Tomcat, Solaris, Clearcase
(Public Company; 10,001 or more employees; Internet industry)
September 2000 — September 2001 (1 year 1 month)
I was the technical architect for a subscriber edge services management application. A web application that provides end-users with control over subscription services offered by service providers. It integrates direct control over Cisco edge devices with a service providers policy enforcement mechanisms.
I coordinated the design efforts of a strong technical team. Provided a robust layered design allowing configuration at many levels whilst adhering to existing standards, resulting in an easily deployed and manageable system. Provided strong guidance on how to meet performance and availability requirements and contributed to the overall coding effort.
Technologies: Java 2, JSP and other J2EE APIs, XML, RADIUS, LDAP, Jetty App. Server, Macromedia Ultradev, NDS, iPlanet, Windows 2000, Solaris, Clearcase
(Public Company; 5001-10,000 employees; Investment Banking industry)
January 2000 — August 2000 (8 months)
I was responsible for educating a C++ based development team about Java development and subsequently provided recommendations on the selection of a suitable application framework. I implemented a trade lifecycle management system that accepted trades in XML over JMS, persisted them using EJBs and maintained their integrity in the face of trade corrections and amendments and business events such as option exercising and rate refixes. I also implemented an access control system using LDAP and CORBA to control access to the companys external ASP systems.
Technologies: EJB, JMS, JNDI, LDAP, XML, XPath, Java 2, CORBA, Weblogic 5.1.0, VisiBroker, Xerces, Xalan, Sybase, NT, Solaris, Clearcase
(Public Company; 1001-5000 employees; Investment Banking industry)
July 1994 — January 2000 (5 years 7 months)
As part of the HOODINI project my work here evolved from OO Designer and Mentor through Systems Architect, Java Application Architect and XML evangelist. I came into the project at its inception, stayed through its delivery and moved on to become involved in the gradual adoption of what was then a nascent set of technologies based on the internet to implement versions of the now ubiquitous company intranet.
My work involved providing technology guidance, functional specifications, design, coding, team leadership, project management and technology evaluation and reporting.
Technologies: Servlets, JSPs, HTML, CSS, JavaScript, SMTP, NNTP, Websphere, LotusXSL, XML4J, Java 1 and 2, Swing/JFC, RMI, CORBA, EJB, JSDK, JDBC, JNDI, OrbixWeb, Apache, Netscape SuiteSpot, OptimizeIt, Windows NT, Solaris, C++, Booch, Relational databases, OO databases, X-Windows, Messaging, SparcWorks, Rational Rose, Clearcase, Sybase, TIBCO Information Bus, Orbix, Motif, UIM/X, Tools.h++
(Public Company; 10,001 or more employees; Investment Banking industry)
March 1993 — June 1994 (1 year 4 months)
Development of a bond analysis tool, modification of a finance desk trade capture application, modification of the Sybase database used by the system, writing/modifying Sybase stored procedures. Writing/modifying communications to the company accounting systems. Adapting existing C++ class hierarchies
(Privately Held; 10,001 or more employees; Investment Banking industry)
September 1992 — March 1993 (7 months)
Development of a fund management and reporting system running on Sun workstations. Responsibilities included specification and production of development environment and programming tools and libraries. Providing mentoring on algorithm design, C++ programming techniques and OOD. Specific development tasks included the specification/implementation of C++ interface libraries for Sybase and Motif and the specification/implementation of general-purpose C++ classes for date and number manipulation.
(Public Company; 10,001 or more employees; Telecommunications industry)
September 1991 — June 1992 (10 months)
Specification, design and implementation of modules for a large network management project based on the ISO Forum protocols. Specific areas included the specification, design and implementation of Configuration Management applications especially Bandwidth Management and a general interface to Forum Actions and the conversion of large static C++ libraries to shared libraries.
(Public Company; 10,001 or more employees; Media Production industry)
October 1990 — August 1991 (11 months)
Development of a highly configurable application suite to test digital information presentation systems by providing both page and logical data in real time, simulating a variety of possible conditions.Preparation of documentation including system design, system administration, configuration, test and installation documents for a dealing room system (Effix) for Reuters Ltd
(Privately Held; 1-10 employees; Computer Software industry)
August 1989 — July 1990 (1 year)
Technical responsibilities included software design and development. Specifically of parts of TCP/IP for DOS, including telnet, rlogin and VT100 terminal emulation applications. Development was in C under DOS. Writing and production of end-user documentation.
(Privately Held; 11-50 employees; Computer Software industry)
January 1988 — August 1989 (1 year 8 months)
Product design and conception, project management, application development. Specifically of an X based UNIX workstation, X window systems for Sun 3, 4 and 386i workstations and an icon based UNIX front end using the X window system. Included the writing of frame buffer devices, porting the X server, applications and interface libraries (X11r3) and assisting in the porting of a proprietary Icon driven Unix shell to X using the X-Toolkit.
(Public Company; 10,001 or more employees; Computer Hardware industry)
March 1987 — January 1988 (11 months)
Software design and project management of messaging systems based on X.400 and other CCITT and ISO standards including the production of an ASN.1 compiler, directory services, network management and protocol translators.
(Privately Held; 11-50 employees; Computer Hardware industry)
June 1982 — March 1987 (4 years 10 months)
Development Manager for the User Interfaces Group. Main project consisted of the design and development of a complete Graphical User Interface and windowing system for a UNIX workstation from the lowest graphics primitives (line drawing, curve drawing, bitmap handling etc.) to the highest user interface abstractions (such as interface toolkits and an iconic shell). My responsibilities included overall project concept and design, software development and project management. Development was in C and 68000 assembler under UNIX V.2Prior to that position I was a programmer of low level device drivers for operating system disk and network interfaces.
BA , Computer Science and Natural Sciences , October 1979 — May 1982
I am a project administrator for Lejos (http://sourceforge.net/projects/lejos/), an open-source Java VM for the Lego Robotics Invention System. The VM, written in C, runs in 32K of RAM and implements almost all of the Java language apart from garbage collection. I wrote the real-time scheduler, the thread monitor functions and the heap manager. I also wrote various Java robotics classes, modified some of the fundamental math routines and enhanced the firmware comms stack. This brings together my interests in OO, robotics and machine intelligence.
BA, MA, CEng, MBCS