OBJECTIVE
Contract work in London or Telework as a Unix/Linux Python/C/C++
developer.
EDUCATION
BSc Honors Physics (2ii), University
of Manchester, 1979.
SKILLS SUMMARY
Senior software developer with extensive experience of Unix, Linux,
Python, C/C++ and Open Source development projects.
COMPUTER EXPERIENCE
Key Skills:
Unix, Linux, Python, C, C++, STL, Open Source/OSS, JavaScript,
OOD/OOP, XML, Internet Protocols, HTTP, HTML/DTML/AJAX/CSS, TCP/IP,
UDP, RPC, SNMP, MIB, SMTP, Multi-Threaded Programming, Scripting, IBM
MQSeries, Web Servers.
Other Skills:
Lua, Django, Zope, SWIG, SQLAlchemy, ORM, Apache, RPM Packaging, SQL,
Java, Java JNI, Perl, Tcl/Tk, Wish, Tnm, Jython, Tkinter, Rational
ClearCase, CVS, SVN, AIX, HP-UX, Solaris, other Unix,
Windows/NT/2000/XP, XMLRPC, IDL, DCE, Encina, CORBA, CICS ISC, SNA
LU6.2, APPC, X.25, TOG XA Interface, Emacs Lisp, RW Tools/Threads++,
BMC Patrol, Embedded, Assembler, Real-time.
EMPLOYMENT HISTORY
Open Network Solutions Ltd (own limited company), London,
1994-present:
Senior contract roles on a number of Unix and Windows
Python/C/C++ systems software and networking development
projects:
September 2007 - July 2008, AEMS, London. Development of a test framework, infrastructure and tool set for the CONNECT trading platform. This enabled the automation of complex integration tests featuring highly asynchronous message handling as part of AEMS's development and QA process. I contributed to the development and optimisation of significant parts of the framework and tools. These were written in Python, and included a number of bespoke C/C++ Python extensions and SWIG modules that interfaced to various parts of the system. Python TCP/IP network and systems level programming were used extensively throughout, as was an SQLAlchemy Oracle 10 database interface. The tool set allowed developers to rapidly prototype and troubleshoot their projects. All software was developed and ran on Redhat Enterprise Linux EL3.
June-July 2007, Visto Corporation, London. Modifications to a dynamic content web server. The web server was used to to generate internationalization flexkits for embedded mobile 'phone applications and servers. It used Apache, mod_python, Python, MySQL, Javascript, HTML/DHTML/AJAX and ran on Windows/XP. My work resulted in the timely completion and successful deployment of the web server.
October 2006 - May 2007, Halcyon Software, Telework/Home based. Development of a system monitoring agent application that runs on Linux and AIX. This was a component of Halcyon's Enterprise Management product, which monitors server performance and resource usage, raising various alarms for abnormal conditions. The software was written in Python, making extensive use of XML, TCP/IP sockets, threads, system programming interfaces, RPM packaging and PyUnit.
April-September 2006, Cyberview Technology Ltd, London. Designed and developed prototype control software for a network of distributed gaming machines. This allowed a large estate of gaming devices to be centrally monitored and managed. The prototype was written in Python and ran on Linux Redhat Fedora Core 5. It used serial line RS-232 COMMA6 protocols, UDP, TCP, HTTP and threads. It also incorporated several security features such as DES3 and IPSEC. I also developed a Linux USB user-space device driver for a bespoke ticket printer.
February 2006, PIRC, London. Advised on Python internationalisation (i8n) issues for a legacy web server. Consultancy and design for a proposed Django based web server development.
September 2004 - July 2005, UBS, London. Development, deployment and maintenance of a web based workflow system. This allowed developers, managers and business analysts to track and report work items from requirements capture, through development, QA, deployment and post release issue tracking. The system was used globally by the bank's FIRC development teams. It was implemented as a web server running on Solaris, written in Python, using Apache, mod_python, HTML, DHTML, CSS, Javascript and Sybase SQL. I added several functional areas to the system, greatly enhancing its scope, usability and reliability. I was also responsible for its day-to-day maintenance and support, ensuring its availability at all times.
November 2003 - May 2004, Halcyon Software, Telework/Home based. Consulting on and development of the network layer service of an SNMP Manager product. This added SNMP manager functionality to the company's existing products, allowing them to interface to industry standard SNMP MIBs from various vendors. I was responsible for the architecture, design and implementation of the service. The product was written in C++ and Python and runs on Windows/2000 and Linux. It used SNMP++, UDP, TCP/IP, STL, multi-threading, XML/XSD, MSXML and Xerces XML.
March - October 2003, Lloyds TSB Group Plc, London. Porting a C++ web server from RogueWave Tools++ to STL. The server was written in multi-threaded C++ and ran on AIX 4.3, using the Netscape SuiteSpot/SunOne and DCE infrastructures. Red Hat Linux and Rational ClearCase were used in the development environment. The application provided a web browser interface to the bank's mainframe systems for data quality management purposes. My role was to port the server from RogueWave Tools++ to STL, to improve the quality of the C++, JavaScript and HTML code, and to mentor less experienced staff.
September - December 2002, Halcyon Software, Telework/Home based. Consulting on and development of SNMP MIB and Agent software that allowed the company's products to operate with standards based network management tools. I was responsible for the architecture and implementation of the product. The interface was written in C++ and Python, and runs on Windows/2000 and Linux. It used SNMP++ and Agent++, TCP/IP, STL and multi-threading.
January - April 2002, GlaxoSmithKline, Harlow. Consulting and development of web based application server middleware. This was written in Python and used XMLRPC, pymqi and IBM MQSeries. It ran on Windows/NT and RedHat Linux. My role was to design and code the client XMLRPC & MQ software, and to provide general consulting on Linux/Unix, Python and MQSeries.
September 2000 - August 2001, Vizzavi/Vodafone, London. Senior developer and technical lead on the development of an Alerts system for a web portal. This was bespoke middleware that provided a push interface between various information sources (e-mail, external feeds, special events, etc.) and mobile devices, using SMS text messaging. It provided scalable, reliable high-throughput real-time messaging. The system was developed in C++, Java, Perl and Python/Jython. It ran on Unix/Solaris 2.6, and made extensive use of RogueWave Tools++ and Threads++, multi-threading, TCP/IP sockets, SMTP and client-server. My role in the team was to complete the design and coding of the system, to bring the software quality up to production standard, and to integrate the various components with each-other and the remainder of the portal. I was technical lead for production support and enhancements for the European roll out. I also rewrote large parts of the Alerts system from C++ into Java.
1994-2000, Various, London. Numerous Unix C/C++ contracts for various clients in the IT, telecommunications, financial and banking industries, including Primark/Datastream, IBM, Motorola, James Capel, DEC, FDR, Transarc and Data Logic. Projects included developing SNMP Managers and Agents, call centre workflow systems and various communications interfaces and gateways. Technology used included various flavours of Unix, C, C++, TCP/IP, SNA, SNMP, CORBA and MQ Series.
Technical Specialist, Data Logic, London 1990-1994
Senior developer on a number of Unix networking projects, including
the development of the Intersystems Communication component of IBM's
CICS/Unix product.
Senior Software Engineer, GSTC, Freemont, CA, USA 1989
Functional specification and top level design of networked machine control software for semiconductor manufacturing equipment. This ran under Unix on custom designed 80386 hardware and uses TCP/IP socket level networking.
Principle Designer, Data Logic, London 1984-88
Designed software and led teams on a variety of Unix and real-time systems software projects, for both Data Logic and external customers. These projects included trading room systems , printer control units, real-time embedded operating systems development, device driver development and office automation software.
Designer, STC International Marine, London 1981-84
Design, code, test and support of hardware and software for a Mobile Marine Satellite Communications Terminal. The software ran on an array of 8085 and 8748 processors and was written in PLM80 and assembler. The software was developed on a PDP11 running Unix and an Intel MDS.
Junior Designer, British Aerospace, Bristol 1979-81
Hardware design of TTL and CMOS circuits for a mini-computer.
Science Student Assistant, UKAERE Harwell 1975-76
Development of ultrasonic instrumentation for a fuel reprocessing plant.