OBJECTIVE
Contract work as a Python and Linux 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, Jython, Django, Twisted, C, C++, STL, Open Source
Software/OSS, Hardware interfacing, JavaScript, OOD/OOP, XML, Internet
Protocols, HTTP, HTML/DTML/AJAX/CSS/jQuery, TCP/IP, UDP, RPC, SNMP,
MIB, SMTP, IBM MQSeries/Websphere, Multi-Threaded, Scripting, Web
Servers, Internationalization/Localization (i8n/l8n/il8n), PyGTK.
Other Skills:
Satchmo, Lua, gstreamer, SWIG, SQLAlchemy, ORM, Apache, RPM Packaging,
SQL, Java, JNI, Perl, Tcl/Tk, Wish, Tnm, Tkinter, git, Rational
ClearCase, CVS, SVN, Trac, AIX, HP-UX, Solaris, other Unix,
Windows/NT/2000/XP, IDL, DCE, Encina, CORBA, CICS ISC, SNA LU6.2,
APPC, X.25, Emacs Lisp, RW Tools/Threads++, BMC Patrol, Assembler.
EMPLOYMENT HISTORY
Open Network Solutions Ltd (own limited company), London,
1994-present:
Senior contract roles on a number of Unix, Linux and Windows Python/C/C++
development projects. I also developed a number of Open Source
Software projects, the most significant of which was
pyMQI, a Python interface
to IBM's WebSphere MQ/MQSeries middleware.
Projects and clients have included:
September 2010-Jan 2012, Imagination, London. Architect, develop and deploy software for interactive experiential exhibition pieces at a Digital Agency. These included the control and infrastructure for an animated 3-D model for the inauguration of Shell's Pearl GTL plant in Qatar, and an automated multi-media capture, management and upload system for Ford's stand at the NAIAS in Detroit. All software was written in Python and used TCP & UDP networking, Twisted, event driven asynchronous programming techniques, DSLR/Video remote control & capture hardware interfacing, BrightSign scripting, libgphoto2, gstreamer and Django. The projects ran on Ubuntu Linux and Mac OS X. Software development was supported by git, Jenkins & Jira. My work resulted in the successful deployment & execution of innovative, stable and high quality award winning exhibits.
July 2010-July 2011, JPMorgan Chase, London.
While at JPMorgan Chase I worked on two separate Python development projects:
The first was a proof of concept system evaluating the replacement of
the current Java/Sybase equities & derivatives trade booking
system. Technologies used included Python, Jython, Java,
Objectivity object database,
Sybase, Twisted, metaclass programing, HTTP & TCP/IP networking. I designed
and developed various parts of the infrastructure to enable the data
model, high-throughput transaction processing and interoperation with
existing systems. Notable was the development of a bespoke ORM, using
metaclass techniques to implement a declarative pattern. The projects
were written mainly in Python/Jython and ran on Windows and Redhat
Linux.
The second project was for the FX business, to replace an existing
mainframe risk management system using the bank's Python based Athena
platform. I developed up-stream feeds for STP of trades to the
backend. This used Python, IBM Websphere MQ, XML and xpath. I
co-ordinated with several teams in different timezones to successfully
put the feeds into production.
May-June 2010, Texcel Technology PLC, Kent. Enhancements, testing and bug fixing of an embedded logging application written in Python. I was brought in on a short term basis to troubleshoot and complete the project at a critical time. I added new features, fixed long standing bugs and made several performance enhancements to the code. My work resulted in project completion and the product successfully entering customer acceptance testing. The project was written in Python and ran on custom hardware using embedded WinCE.
February 2009 - January 2010, Defuturo Ltd, Remote/Home based. Design, develop and deploy a consumer facing Python Django web site - www.eyespy247.com. This was a sophisticated Web 2.0 style site that provided on-line services for owners of IP webcam cameras for security monitoring of homes and businesses over the Internet. It allowed users to automatically upload, view, share and manage images and videos captured by their IP cameras, and to receive motion activated alert email/SMS messages. It included a Satchmo e-commerce shop with a PayPal interface. The site was written in Python and used Django, Satchmo, Javascript, jQuery, AJAX, Apache, MySQL, mod_wsgi, SMTP, postfix and ffmpeg. The system was developed on Redhat FC10 and deployed on CentOS 5. I was responsible for the architecture, back-end design, implementation, and the support of the live site. I was the technical lead of a distributed team of four.
September 2008 - January 2009, Gala Coral Group, Surrey. Development of client software for a gaming system for the Chinese and other international markets. This was a fully internationalized and localized standalone closed kiosk system with a display, touchscreen and scanner. The software ran on CentOS Linux and was written in Python, using PyGTK, Glade, TCP/IP sockets and XML. The design used the MVC pattern. I contributed a significant part of the design, implementation, documentation and testing of the product.
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 and PyGTK/glade. Metaclass programming techniques were also used. 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, Remote/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. The application was fully localized and internationalized (i8n/l8n).
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 Linux Redhat Fedora Core 5 embedded on custom hardware. 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 high-speed 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. It was implemented as a web server running on Solaris, written in Python, using metaclasses, 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.
November 2003 - May 2004, Halcyon Software, Remote/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, Remote/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.
1994-2002, Various, London. Numerous Unix/Linux/Windows Python/C/C++ developer contracts for a variety of clients in the IT, telecommunications, financial and banking industries, including Datastream, Lloyds TSB, JP Morgan Chase, IBM, Vodafone, Motorola and DEC. Projects included communications interfaces and gateways, client server, high throughput transaction processing, infrastructure, and systems software development.
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 used 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 an INMARSAT Mobile Marine Satellite Communications Terminal. The software ran on an array of Intel 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.