Andrew Haines is a Senior Software Engineer based in London with 15 years of experience designing and shipping resilient, cloud-native systems. He combines deep Ruby/Rails expertise—evidenced by meaningful open-source contributions to notable projects like Draper, Formtastic, JRuby and Simple Form—with platform and infrastructure leadership across Kubernetes, Terraform and GitHub Actions. At Zencargo he cut deployment and CI times dramatically, migrated services to Kubernetes, and rebuilt a granular authorization layer, and at Cerbos he now focuses on scalable, policy-driven authorization. Comfortable across full-stack and backend domains, he has a strong track record of improving observability, reliability and internationalisation in production systems. Unusually for an engineer of his seniority, his background includes academic research and teaching in physics, giving him a rigorous, analytical approach to complex engineering problems.
15 years of coding experience
20 years of employment as a software developer
Bachelor of Science (B.Sc.), Mathematics and Physics, First Class Honours, Bachelor of Science (B.Sc.), Mathematics and Physics, First Class Honours at University of Otago
Contributions summary:Andrew focused on refactoring and extending the Draper gem, which is a library for Rails applications. They corrected code names, included `ModelSupport` in `ActiveRecord::Base`, and passed options to decorate associations. The user also implemented and modified core features of the gem, including the handling of lazy queries and changes to configuration options for improved functionality.
Cerbos is the open core, language-agnostic, scalable authorization solution that makes user permissions and authorization simple to implement and manage by writing context-aware access control policies for your application resources.
Role in this project:
Back-end Developer
Contributions:324 reviews, 51 commits, 254 PRs in 7 months
Contributions summary:Andrew primarily contributed to the Cerbos project by adding new features and improving existing ones related to the internal conditions logic. They implemented a `now` function to retrieve the current timestamp and added camel case support for custom functions, enhancing the functionality of the authorization engine. Additionally, they addressed linting issues and made adjustments to ensure adherence to code standards and maintainability. These changes involved modifications to core files within the conditions package.
golangpolicycontext-awarescalableauthorization
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.
Request Free Trial
Andrew Haines - Senior Software Engineer at Cerbos