David Halls is a seasoned software engineer based in Cambridge with 13 years of professional experience building secure, production-grade systems across kernel, cloud, and application stacks. He currently develops secure remote access solutions at HP, with hands-on work in device enrollment, digital signatures and a Windows kernel driver, and previously designed browser-to-VM isolation and authentication features at Bromium. A prolific open-source contributor, David has improved core projects like Node.js, the WebSocket library ws, PouchDB and the cloud OS OSv, often addressing low-level networking, streams and crypto correctness. His background in research and a Cambridge PhD inform a methodical approach to hard problems—he combines systems-level C/C++ expertise with Node.js ecosystem work and cryptographic fixes. Notably, he has implemented subtle compatibility fixes (syscalls, libc work) to get Node.js running on novel platforms and strengthened RSA and padding implementations in widely used crypto libraries.
13 years of coding experience
23 years of employment as a software developer
A Levels, Maths (A), Physics (A), English (C), A Levels, Maths (A), Physics (A), English (C) at Tideway Comprehensive School
BSc First Class Hons, Computer Science, BSc First Class Hons, Computer Science at University of Southampton
PhD, Computer Science, PhD, Computer Science at University of Cambridge
URSA - RSA public/private key OpenSSL bindings for Node.js
Role in this project:
Back-end Developer & Security Engineer
Contributions:19 commits, 6 PRs, 23 comments in 2 years 8 months
Contributions summary:David primarily contributed to the core functionality of the ursa library, focusing on adding and modifying cryptographic padding algorithms, specifically RSA-PSS and PKCS1. They implemented methods for adding and verifying PSS padding, aligning the library with industry standards like JOSE. Further improvements include refactoring and exception handling.
The pub/sub library for node backed by Redis, MongoDB, AMQP (RabbitMQ), ZeroMQ, MQTT (Mosquitto) or just plain node!
Role in this project:
Back-end Developer
Contributions:67 commits, 1 PR, 14 comments in 3 years
Contributions summary:David primarily focused on enhancing the core functionality of the pub/sub library. They implemented new features, such as allowing options for publish and subscribe methods, and refactored existing code. The user also introduced a new TrieAscoltatore and improved wildcard support. These changes demonstrate a commitment to improving the library's flexibility and overall performance.
redismosquittozeromqmessage-queuemqtt
Find and Hire Top DevelopersWe’ve analyzed the programming source code of over 60 million software developers on GitHub and scored them by 50,000 skills. Sign-up on Prog,AI to search for software developers.