Profile

Cover photo
William Payne
Works at Continental AG
Attended UMIST
239,892 views
AboutPostsPhotosVideos

Stream

William Payne

Shared publicly  - 
Thomas Piketty's theory about income inequality has taken a triple hit from an MIT graduate student.
1
Add a comment...

William Payne

Shared publicly  - 
 
"...there are 300 HMRC employees investigating tax evasion of over £70bn, and 3,250 Department of Work and Pensions bods chasing down £1.2bn of benefit fraud."

http://www.theguardian.com/commentisfree/2015/feb/13/britain-tax-code-17000-pages-long-dog-whistle-very-rich

- 233 million per employee for tax evasion.
- 0.4 million per employee for benefit fraud.
- Benefit fraud is treated almost 600 times more seriously than tax evasion.
I asked people who legally avoid tax why the tax system is long, complex and inaccessible. They told me not to be naive
1
Add a comment...

William Payne

Shared publicly  - 
((The comic is a flowchart. In order to explain this in text, follow the line numbers. Options follow on new lines without numbers.)) How to write good code. ((10.)) Start Project. ((Go to 20.)) ((20.)) Do things right or do them fast? Fast ((Go to 30.)) Right ((Go to 40.)) ((30.)) Code fast.
2
1
Alex Kamovitch's profile photo
Add a comment...

William Payne

Shared publicly  - 
1
Add a comment...

William Payne

Shared publicly  - 
 
Like everything Brett Victor does ... awesomeness itself.

http://vimeo.com/115154289
1
Add a comment...

William Payne

Shared publicly  - 
The issue will not go away. But at last the reflexes seem to be fading. The silly reflex - for example - to demand that we solve information age problems by shutting down info flows.  By standing in front of the data tsunami ...
1
Add a comment...

William Payne

Shared publicly  - 
 
Comment on this article discussing different programming cultures:
http://www.americanscientist.org/issues/pub/2015/1/cultures-of-code/99999

I disagree with the sentiment of the article. Computation is a tool with near-universal applicability. We should no more worry about the fragmentation of computational thought than we should worry about the fragmentation of writing styles into legalistic, journalistic, business-technical and so on. Indeed, given the technical and utilitarian nature of so much of the computational arts, fragmentation into sub-disciplines is a prerequisite for it's maturation into a reliably useful set of tools for the furthering of humanities technological development. We need a broad set of tools (and cultures), where each has sufficient specificity to be useful and productive. Building bridges between these evolving cultural and technological silos will always be required, but is less of a burning issue than the need to formulate and recognise specialisms within the computational arts themselves, and to evolve the rules and norms of those specialisms to maximise success and minimise cost in each of their stated aims and objectives. This is partly a matter of culture, partly a matter of procedure and standardisation, and partly (mostly) a matter of developing the right tools, libraries and APIs.
1
Add a comment...

William Payne

Shared publicly  - 
 
http://www.ranum.com/security/computer_security/editorials/dumb/index.html

...

Now replace all references to exploits with "bugs" or "safety flaws" and you have a pretty decent article arguing for good, thoughtful engineering. It seems to me that good design always starts at the system level, but that good design and engineering is always broken by social problems (noise, communication).
The Six Dumbest Ideas in Computer Security. There's lots of innovation going on in security - we're inundated with a steady stream of new stuff and it all sounds like it works just great. Every couple of months I'm invited to a new computer security conference, or I'm asked to write a foreword ...
1
Add a comment...

William Payne

Shared publicly  - 
 
Most datasets that we encounter in the real-world are sampled from distributions that are long-tailed and dominated by outliers. (This is increasingly true as we attempt to work with ever more complex and higher-dimensional datasets, in which almost every sample is in some sense an outlier).

"Long-tailed non-gaussian distributions inevitably result in multiple local extrema which can only be located by explicit search (e.g. Hough transform) or numerical optimisation (e.g. gradient descent)." Closed-form analytic solutions for modelling the underlying distribution are simply not available.

Paraphrased from: http://www.tina-vision.net/docs/memos/2002-005.pdf
1
Add a comment...

William Payne

Shared publicly  - 
 
Somebody else who "gets it" vis-a-vis the appropriate usage of FP & OO.

http://christopherhunt-software.blogspot.co.uk/2014/12/where-fp-meets-oo.html
1
Add a comment...
Work
Occupation
Test (Development Automation) Group Leader
Skills
Machine Vision, Machine Learning, Algorithms, MATLAB, Python, C, C++, Bash, Simulink, Linux, Distributed Systems, Embedded Systems, QPID, MongoDB, Oracle, MySQL
Employment
  • Continental AG
    Test Group Leader, 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
Gender
Male
Relationship
Married
Story
Tagline
Software Development, Machine Learning and Human Factors
Introduction
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.
Education
  • UMIST
    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