Pragmatism in the real world

Implementing Serverless PHPPresented at DPC Unconference, June 2017

Serverless applications have a number of benefits and JavaScript is the most common language to write serverless functions in. Why not PHP? In this talk, I will discuss how I implemented first class PHP support into the Apache OpenWhisk platform. I look at how OpenWhisk works, how the PHP support is implemented and then walk though an example PHP serverless Slack application.

5 features of a good APIPresented at PHPSC, June 2017

Everyone is writing APIs from micro-services through to full applications, but what makes a good one? In this session we’ll go back to the basics and look at what I consider to be five of the more important architectural features that you should think about when creating an API. These are the features that ensure that your API plays well with HTTP and, more importantly, make your API a delight to maintain and work with. I want you to ensure that your API is a good HTTP citizen, while also providing developer-friendly features like thoughtful error handling and documentation.

5 features of a good APIPresented at Lead Developer, June 2017

Everyone is writing APIs from micro-services through to full applications, but what makes a good one? In this session we’ll look at what I consider to be five of the more important architectural features that you should think about when creating an API. These are the features that ensure that your API plays well with HTTP and, more importantly, make your API a delight to maintain and work with. I want you to ensure that your API is a good HTTP citizen, while also providing developer-friendly features like thoughtful error handling and documentation.

Building APIs with Slim 3Presented at PHPSrbija, May 2017

Slim Framework builds on the PSR-7 HTTP message interfaces and provides useful features such as routing, and a DI container. It's lightweight and so is an ideal platform for building APIs. We'll look at how to use Slim as the basis for a fully featured API. We'll cover the key concepts around HTTP request-response resource APIs including handling content type and status codes, authentication and also returning errors appropriately. By the end of the session, you'll be able to build a Slim API.

Designing the M in MVCPresented at PHPKonf, May 2017

We all know that the M in MVC stands for model, but what does that actually mean? Domain-driven design helps us map our software to the business requirements of our clients, but it can be quite hard to understand. In this talk I explored the fundamentals of Domain Driven Design and showed how to apply it to the design and implementation of the business logic of your application.

Writing an API with Swift 3 on LinuxPresented at Functional Programming Meetup, Budapest, April 2017

Apple has open sourced Swift, their new programming language, so you can now use it on Linux servers. Swift's static typing, concise syntax and speed make it a good language for all types of server-side software including APIs. In this session you'll learn how to build an API in Swift 3. We'll cover the key concepts around HTTP request-response resource APIs, including accepting and generating the correct content type, routing, authentication and also returning errors appropriately.

Photo

Serverless APIs in SwiftPresented at Craft, Budapest, April 2017

Apple's new Swift programming language is open source, fast and great for APIs. It's a great modern language which emphasises consistency, developer productivity and safety. As such, it's a great fit for writing APIs deployed to Linux, including microservices and server-less architectures.

This session will show you how to build a simple Swift API for deployment to IBM's OpenWhisk server-less environment. In order to do this, I will also cover key features of the Swift language and why it is good for server-side applications. I will discuss the *HTTP protocol* and how APIs fit within it and we'll look at how to build APIs in Swift before moving on to server-less ones.

Secure your web application with two-factor authenticationPresented at PHPSW user group, April 2017

Protecting your users' data with just a username and password is no longer satisfactory. Two-factor authentication (2FA) is the primary method of countering the effects of stolen passwords and is easy to implement in your web application. In this session we will discuss what two-factor authentication is, how it works and the challenges associated with it. We will then look how to integrate two-factor authentication into your PHP application's login workflow. We'll consider both YubiKey and Google Authenticator implementations, so you can make your users' accounts more secure.

Protect Your API With OAuth2Presented at PHP Oxford user group, February 2017

OAuth 2 is the gold standard for authentication in APIs and in this talk we’ll take a deep dive into how it works and how to implement an OAuth 2 server in your API. There are a number of work flows in OAuth 2 for different scenarios including mobile apps and websites connecting via JavaScript, so I will discuss each one and show you how to implement it. We’ll also look how to use JWT which can provide performance improvements. By the end, you’ll be well equipped to add OAuth2 to your API.