Cover photo
William Payne
Works at Continental AG
Attended UMIST


William Payne

Shared publicly  -

This editor shows a really interesting semi-automatic code generation concept. In this case it appears to be relatively brute-force in nature, but I'm wondering if some sort of statistical model couldn't be used to guide and prioritise that search - something I'd like to work on very much.

Add a comment...

William Payne

Shared publicly  - 
reads "the reality of autonomous car technology is that the easy parts of have yet to be proven safe, and the hard parts have yet to be proven possible", and agrees.
View original post
Add a comment...

William Payne

Shared publicly  - 
You’ve never seen a camera that looks like this. Its flat black visage is like the face of some terrible spider. It’s called the Light L16, and it may not look the part of photographic tool, but it hopes to accomplish the impossible: professional quality in an (almost) pocket-sized device.
Add a comment...
Software Development, Machine Learning and Human Factors
I am a sometime Algorithms Engineer, Quantitative Developer and Data Science Engineer.

I work with academics & domain experts to bring quantitative algorithms into production, often acting as a bridge between academic subject matter experts and engineering teams.

I am particularly interested in all the forgotten, mundane "Software Engineering" aspects of quantitative and statistical software development that make it different from normal software development.

How do you test a regression or a classification algorithm for which you cannot (easily) write a specification? How do you test software intended to operate on petabytes of data? How do you test a system where the cost of building a separate test or QA environment is prohibitive? or where even the cost of obtaining representative test data is prohibitive?

I am also interested in the application of robust statistics to image processing and machine vision.
    Artificial Intelligence, 1999 - 2003
    Image Processing and Machine Vision, Machine Learning, Neural Networks, Computational Linguistics, Formal Logic, Software Analysis & Design, Project Management, Prolog Programming, Java Programming
Test (Development Automation) Group Leader
Machine Vision, Machine Learning, Algorithms, MATLAB, Python, C, C++, Bash, Simulink, Linux, Distributed Systems, Embedded Systems, QPID, MongoDB, Oracle, MySQL
  • Continental AG
    Senior Software Engineer, 2014 - present
    I support the development of machine vision algorithms for automotive surround view systems. My main focus is to build confidence across the business unit and to accelerate algorithm development by providing highly-automated test systems to the algorithm and software development teams. These systems are intended to provide continuous visibility of development progress and system performance to stakeholders across the organisation; and to provide continuous integration, continuous testing, classifier training, and algorithm parameter tuning functionality to the research and development teams. This responsibility extends to the collection, storage, analysis and exploitation of extremely large quantities of representative video data, gathered across a wide variety of environmental conditions; vehicle dynamics; platform and scene geometries, as well as the support of a range of "real-world" testing and performance evaluation activities.
  • Continental AG
    Research Engineer, 2013 - 2014
    I work on machine vision systems for advanced driver assistance and automated driving products; splitting my time between work on collision warning related algorithms and our cross-platform automated build & test systems. My machine vision software is written in C++ and MATLAB. My build-system is written in Python; Bash and CMake. Our version control and configuration management is done with Git. Continuous integration and code review are implemented using Jenkins and Gerritt. I use GCC; CppCheck; CCCC & PC-Lint for static analysis; Valgrind; GDB & DDD for debugging & profiling. As with most of my past roles, I wear the software engineering hat in a multidisciplinary research team, providing help and support with issues involving Git, GCC, profiling & static analysis.
  • EveryScreen Media
    Senior Data Engineer, 2011 - 2013
    I developed ESM's Data Science Systems, bridging the gap between ESM's academic advisers and the engineering team. I turned prototype data science concepts (MATLAB) into working products, implemented statistical and graph processing algorithms and scaled the data science systems to handle > 1 billion requests per day. I implemented data cleaning, monitoring and reporting tools. I also supported the development of ESM core production systems. It was a hands-on role, with most development done in Python, occasionally pitching in to support C++ and PHP development where required. Most of our data science systems sit on top of Linux/QPID/MongoDB/Python infrastructure.
  • Foreign & Commonwealth Office
    IT Support Officer, 2011 - 2011
    In this temporary role, I provided first line technical support to approximately 150 users.
  • Fidelity International
    Quantitative Developer, 2010 - 2011
    In this role, I provided MATLAB expertise to the “Equity Applied Research” (Quant.) team; promoting software development best practice through periodic “brown bag” sessions; writing MATLAB libraries for data handling & cleaning, statistics, distributed computing, graphing, report generation, testing, deployment, logging & fault reporting. I managed the team's production environment, as well as the development automation tool-chain, from source & configuration management through continuous integration, test & deployment automation. I implemented stock screens and charts; data quality screens and exception reports. I worked closely with quantitative analysts and gained a reputation for code quality, reliability and trustworthiness.
  • Thales Optronics
    Algorithms Engineer, 2007 - 2010
    In this role, I acted as a technical lead in a technical demonstrator programme: researching, proposing, securing funding for and implementing original machine vision (IRST) and image enhancement algorithms. I built relationships with experts from the customer community, obtained feedback and gathered requirements, carried out data analysis, proposed, designed & implemented original target detection, tracking, classification and image enhancement algorithms, whilst effecting change in the development process, successfully introducing iterative development, continuous integration and testing/performance evaluation using large scale video libraries. I gained an excellent reputation for enthusiastic engagement with problems, for effecting organisational change to improve our development processes, and for a pragmatic approach: identifying conceptually simple and computationally feasible algorithms, and driving development to get the job done. I implemented algorithms in MATLAB, Simulink, C and C++, using my software engineering background to understand how C code generated from Simulink models performed 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 experience designing and implementing novel signal processing; target detection; tracking; image enhancement; navigation and machine vision algorithms. I also designed & implemented automated test & performance measurement systems, video ground-truth mark-up & ROI selection tools. I also consistently achieved the highest possible rating in all performance reviews undertaken.
  • Sophos Plc
    Software Engineer, 2006 - 2007
    In this role, I worked on Sophos Anti-Virus 7 Windows client program as part of a large development team. I carried out low-level development work on run-time code modification and analysis functionality as well as higher level work on configuration, upgrading & messaging systems, including the development of multi-threaded 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.
  • SmartSensors Ltd
    Consultant Machine Vision Engineer, 2006 - 2006
    In this role, I productised a prototype iris recognition system, developing iris image extraction and image quality estimation algorithms. I worked closely with researchers and the customer to reimplement MATLAB prototypes in C, proposing novel alternative algorithms where required to meet run-time performance and robustness guarantees. 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 and developing portable embedded C code.
  • Cambridge Research Systems Ltd
    Staff Scientist, 2003 - 2005
    In this role, I developed a large MATLAB toolbox for Visual Stimulus Generation, experimental control, data calibration, collection and analysis. I built relationships with members of the customer community, providing demonstration code, advice, training and technical support for a range of visual stimulators, eye-trackers and assorted related scientific products. I developed data capture, analysis and visualisation applications in MATLAB, C and Java, as well as a CRT saccade contingent display, as part of a PhD researching adaptive control of saccades. I built up an understanding of the practicalities of experimental control and measurement in vision science, psychophysics and neuroscience; excellent MATLAB programming skills, an understanding of filtering, noise control, artefact detection and removal.
Basic Information