I'm an independent consultant software engineer, specializing in the development of safety and security-critical systems. I have particular interests in the application of formal verification in software development. I used to lead the design team behind the SPARK/Ada language and toolset at Praxis and Altran UK. Most recently, I've been working on the software implementation and verification of cryptographic algorithms and protocols. I'm a Fellow of both the BCS and IET and hold an honorary visiting chair in computer science at the University of York.