William Thomas Payne
Productive, results-focussed quantitative developer & algorithms engineer combining a strong software engineering background with a keen interest in statistical pattern recognition & signal processing. Experience developing quantitative models (equities) as well as high-throughput, low-latency signal processing (machine vision) applications. I have a reputation for producing high quality code, and for delivering simple, effective solutions.
My primary languages are MATLAB and C. I also have some experience with C++, SQL, Java & Prolog. My most recent development experience has been predominantly MATLAB (7 years), arrived at from a background of embedded C (2-3 years) and C++ (1 year) development.
Employment
08/2010 – present
IT Support Officer for the British Consulate-General, New York
In this role, I provide first-line technical support to around 150 users.
05/2010 – 06/2010
Quantitative Developer for Fidelity International Limited (FIL)
In this role, the majority of my time was spent developing MATLAB applications, supporting the MATLAB development tool-chain and writing MATLAB libraries for graphing, statistics, high performance computing, data handling and reporting. I gained experience obtaining, cleaning & presenting financial data (predominantly FactSet). I built on my previous SQL experience, and gained exposure to PL/SQL stored procedure development.
I was responsible for promoting software engineering best practice within the equity quant team, and for the implementation of FIL configuration management; test; release and disaster recovery procedures. I also put in place structures for (successful) promotion of software reuse across teams.
05/2007 – 05/2010
Algorithms Engineer (Machine Vision) for Thales Optronics (UK) Plc.
In this role, I had a strong focus on implementation, rapidly developing prototype machine vision algorithms in a technical demonstrator programme. I acted as a bridge between different specialist disciplines to take algorithms rapidly from their theoretical foundations to working prototype implementation. In addition, I had a strong role in guiding the development of the project, proposing and implementing my own original algorithms to improve performance and satisfy customer requirements. I worked closely with others both within the organisation and within the customer community to gather requirements, improve my own understanding of the problem domain, and also to facilitate communication between third parties where needed. I have also acted as dev-lead when required, managing development in a team of 5+ algorithms engineers and 3+ test engineers.
My main focus is in implementing algorithms in MATLAB, Simulink and C/C++, using my software engineering background to understand how C/C++ code generated from Simulink models will perform on an embedded target, advising on algorithm ease of implementation and performance issues, and prioritising algorithm development based on a solid understanding of the problem domain.
Whilst in this role, I gained valuable experience taking a leading role in the development of a major machine vision product, developing tracking algorithms, signal processing and signal detection algorithms, robust statistical classification algorithms and 3D and geometric machine vision algorithms (amongst others).
I have built on my previous experience with C, C++ and MATLAB, learning to effectively use Simulink, Stateflow, Real Time Workshop & Real-Time Workshop Embedded Coder, Distributed Computing Toolbox, and SQL. I have also gained some exposure to Rhapsody (C++), VxWorks/Tornado and VHDL.
05/2006 – 05/2007
Software Engineer for SOPHOS Plc.
My role was in the Client Security for Windows team, working on the Sophos Anti-Virus for Windows client. Experience ranges from low-level development work on run-time code modification and analysis functionality to higher level work on configuration, upgrading & messaging systems, including developing multithreaded OO C++ code. Working in a large team on a complex and evolving software system, I gained experience using test-driven development & continuous integration techniques, carrying out code reviews & pair programming, writing unit tests & build scripts. Programming mainly in C++, I made use of STL, COM, ATL & XML technologies. My duties included taking part in design meetings, delivering / receiving code reviews & writing test scripts.
01/2006 – 05/2006
Consultant Machine Vision Engineer for SmartSensors Ltd.
Working under a short contract, my role was to help productise a novel Iris-recognition system by porting MATLAB image processing algorithms to C/C++ ready for licensing to third-party systems integrators. During this time, I gained experience developing image processing algorithms, translating complex mathematical and statistical concepts into code, writing optimisation & signal processing algorithms & developing embedded image processing code.
11/2003 – 11/2005
Staff Scientist for Cambridge Research Systems Ltd.
My primary role was to develop a large MATLAB toolbox for Visual Stimulus Generation, experimental control, data calibration, collection and analysis. In addition to these duties, I provided second and third-line technical support & customer training for a range of visual stimulators, eye-trackers and assorted related scientific products. I also developed data capture, analysis and visualisation applications in MATLAB and Java. During this time, I gained practical experience of experimental control and measurement; excellent MATLAB programming skills, an understanding of filtering, noise control, artefact detection and removal etc… I also gained some neuroscience background knowledge, primarily regarding oculomotor adaptive control systems & computational models of biological neural networks.
03/1997 - 10/2003
Assorted Temporary, Administrative & Project Management assistant roles.
Temporary office administration & general employment before, during and after undergraduate education. Although most time was spent performing office administration in the financial services industry (for Lloyds TSB), (20 months), I gained valuable project management experience whilst working as a project management assistant for the 2002 Commonwealth Games, and as a project management assistant for the Manchester public transport real-time passenger information project.
Training
• 03/2009. Comprehensive VHDL, Doulos.
• 09/2007. Simulink for System and Algorithm Modelling, Mathworks UK.
• 02/2007. Advanced C++, Sophos.
Education
09/1999 - 06/2003
BSc(Hons) (2:2) Artificial Intelligence, UMIST.
My final year project was a texture classification machine vision project, (segmenting out bundles of nerves in light microscopy sections of blowfly ganglia), utilising direction and spatial frequency sensitive filters, and a Bayesian classifier to inform the image segmentation algorithm. The Software was written in Java; designed and implemented using Object-Oriented techniques and methodology. Although I only obtained a 2:2 degree, I came top of my year (1:1) in my second year, and also scored highly (1:1) in my final year January exams.
09/1990 - 06/1997
Personal Details
I am enthusiastic, proactive, and have strong interpersonal and communications skills, enabling me to work closely and effectively with customers and colleagues alike.
.