Hi. I’m Cory.
I’m a software engineer, a physics graduate, and an Australian/British dual citizen. Want to find out more? Pick a topic below and let’s get started.
If you’re concerned about data privacy when contacting me, here’s some useful information. I live and work in London, in the United Kingdom. My personal email accounts are currently managed by Google. My work email is managed by my employer, Apple. My websites are hosted by GitHub.
I was born in Sydney, Australia, but I moved to Melbourne when I was very young. I grew up in Melbourne, and spent my teenage years in Oxford, England. I went to university in St Andrews, Scotland. Now, as an adult, I’m a software engineer living in London.
Software engineering is my dream job and what I love to do. I’m currently a Senior Software Engineer at Apple in London. My job is fantastic, and I wouldn’t want to do anything else.
In addition to programming, I love reading, watching films and television, and sports. I’m a huge fan of a number of sports teams, including (for my sins) the Melbourne Demons.
If you feel like chatting (and I always do), you can find me on a number of social networks, and on IRC, where I’m
Employment / Open Source
I’m an active member of the Python open-source community, and have spent most of my career building open source Python HTTP software, which is my long-time passion.
I have a significant role in the following Open Source projects.
I’m a member of the Python Requests core development team, working with Kenneth Reitz and Ian Cordasco. I’ve been working in a core role on Requests since 2012 and am the all-time number two committer.
In addition, I manage several of the associated libraries, including the OAuth extension for Requests. I also develop my own extensions for Requests.
In addition to my work on Requests, I am a long-time core contributor to urllib3, the Python HTTP library that backs Requests. While on Requests the primary focus is user friendliness and API quality, on urllib3 the core focus is on supporting as many use-cases as possible. I’m extremely proud of my work on urllib3, which has included writing several complex and deep features.
I am the creator and lead maintainer of the Hyper project. This project is an umbrella project that contains a number of useful HTTP and HTTP/2 tools for Python. These include:
- hyper-h2, the best pure-Python HTTP/2 stack available.
- hyperframe, a HTTP/2 framing layer.
- hpack, a Python implementation of the HTTP/2 HPACK header compression algorithm.
- priority, an implementation of the HTTP/2 stream priority tree as laid out in RFC 7540.
- brotlipy, a CFFI-based wrapper of Google’s brotli compression algorithm implementation.
All of these projects were the first Python implementation in their space, and are widely-used. Hyper-h2, in particular, is the HTTP/2 stack for a number of important Python libraries and tools.
I’ve been added to the core maintenance team for the PyOpenSSL project. This is an important stewardship role: while PyOpenSSL is not gaining substantial new features, it remains an incredibly important project in the Python community and requires a substantial amount of active maintenance. My role here is primarily to lessen the burden on the core maintainer by providing extra feedback on changes and bug reports.
I was one of the earliest developers working on Project Calico, a highly scalable virtual networking solution for data centers. This project involved building an entire software product from the ground up using open source technologies and development methodologies, as well as evangelising this solution to the wider cloud ecosystem.
I’m an experienced conference speaker. You can find a number of my talks below:
- Requests Under The Hood, PyCon 2017
- Why /dev/random is a horrible idea, PyCon UK 2016
- If Only Everything Was Radioactive: Randomness and Computing, PyCon UK 2016
- Building Protocol Libraries The Right Way, PyCon 2016
- Hyperactive: HTTP/2 And Python, PyCon 2015
- You Don’t Care About Efficiency: Synchronous Code Is Dying, Kiwi PyCon 2015
- Simplicity Is A Feature, PyCon UK 2015
- Security Vulnerabilities: A Story About Panic, DjangoCon EU 2015
- HTTP/2: Because The Web Was Too Easy, PyCon UK 2014
Though they aren’t recorded, I’ve also spoken at:
- FOSDEM 2015
- PyCon SK 2016
Additionally, I’ve spoken at a number of user groups and internal conferences.
Interested in having me speak at your conference? Get in touch: my contact details are below.
I am an active participant in the IETF’s HTTPBis Working Group, working on HTTP and related specifications. I was involved throughout the HTTP/2 specification process, providing assistance by adding an additional HTTP/2 implementation in the form of the Python Hyper project. This allowed me to provide feedback into both the specification process and the development of other HTTP/2 implementations, including finding and diagnosing bugs in both Google and Twitter’s early HTTP/2 implementations.
Alternatively, if you want a more secure method of contacting me, you can find me on keybase.io.