Tom Crayford is a UK-based software engineer with 16 years of experience building secure, scalable back-end systems and is currently at PlanetScale after five years leading engineering teams at HashiCorp. He combines hands-on implementation with architectural thinking — notable open-source work includes adding SSL/TLS socket support with timeout handling to the widely used zendesk/ruby-kafka client and performance and error-handling improvements to the Riemann event stream processor. His career spans principal-level engineering at Salesforce and early-stage product work at Estately, underpinned by a BE in Computer Software Engineering from the University of Sheffield. Pragmatic and detail-oriented, he often tackles subtle cross-platform and edge-case problems (for example, fixing non-Windows mod loading and nuanced command behaviors) that improve reliability in production systems.
16 years of coding experience
15 years of employment as a software developer
Bachelor of Engineering - BE, Computer Software Engineering, Bachelor of Engineering - BE, Computer Software Engineering at The University of Sheffield
Contributions:11 commits, 7 PRs, 104 comments in 1 year 6 months
Contributions summary:Tom implemented SSL/TLS support for the Kafka client library, focusing on secure socket connections. They introduced the `SSLSocketWithTimeout` class, handling secure socket initialization, read, and write operations with timeout capabilities. Furthermore, they refactored the client and related components (connection, broker pool, and client) to leverage this new SSL implementation, enabling secure communication with Kafka brokers. They also added an example demonstrating the use of SSL in a producer.
A network event stream processing system, in Clojure.
Role in this project:
Back-end Developer
Contributions:12 commits, 4 PRs, 5 comments in 1 year 5 months
Contributions summary:Tom primarily contributed to the back-end functionality of the Riemann event stream processing system, as evidenced by code modifications in `riemann/streams.clj`, `riemann/index.clj`, and `riemann/common.clj`. Their work included implementing new features like coalescing splits, handling event transformations, and improving error handling. The user also focused on optimizing performance and adding instrumentation to the system. Significant testing improvements and enhancements to exception handling were also made.
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.