Pragmatism in the real world

Automate all the things with CI/CD in GitHub ActionsPresented at phpday, May 2024

We have many tools to help us build an application consistently with high quality from code formatting, through static analysis and testing. We can run them locally, but that's too easy to forget, so they really come into their own when we run them automatically within GitHub, and that's what we'll cover in this talk. I'll show you how to set up workflows in GitHub actions to check for all the common and not-so-common items that will make it easier to accept changes into the project and then follow on from there to show how we can also create releases and deploy automatically too. By the end of this session you'll be able to create your own workflows that will automate the your tooling.

Automate all the things with CI/CD in GitHub ActionsPresented at PHPSW UG, April 2024

We have many tools to help us build an application consistently with high quality from code formatting, through static analysis and testing. We can run them locally, but that's too easy to forget, so they really come into their own when we run them automatically within GitHub, and that's what we'll cover in this talk. I'll show you how to set up workflows in GitHub actions to check for all the common and not-so-common items that will make it easier to accept changes into the project and then follow on from there to show how we can also create releases and deploy automatically too. By the end of this session you'll be able to create your own workflows that will automate the your tooling.

An introduction to DDDPresented at PHPUK, February 2024

How are you supposed to organise your models in an MVC application? What goes where? What is a service class, a mapper or an entity? Domain Driven Design focusses on modelling the domain logic and helps us to map the business requirements to our software. We'll discuss the terminology and take a look at what Domain Driven Design is and see how you use it to provide the model logic for your application decoupling it from your controllers. By the end of this session you will be equipped to create excellent, maintainable models in your application.

An introduction to DDDPresented at PHPSW UG, January 2024

How are you supposed to organise your models in an MVC application? What goes where? What is a service class, a mapper or an entity? Domain Driven Design focusses on modelling the domain logic and helps us to map the business requirements to our software. We'll discuss the terminology and take a look at what Domain Driven Design is and see how you use it to provide the model logic for your application decoupling it from your controllers. By the end of this session you will be equipped to create excellent, maintainable models in your application.

Key Features Of A Great Web APIPresented at Platform Summit 2023, October, 2023

It’s easy to write an API, but what makes a great one? In this session I’ll take you on a tour of the most important features that you should think about when creating an HTTP web 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. Give your API a competitive edge so developers will want to work with it.

GraphQL, REST or RPC? Making the choice!Presented at AppDevCon/EndpointCon, May 2023

When you've been tasked with creating an HTTP API, the fundamental decision you need to make is which architecture to choose. Should your API be RESTful? What about GraphQL? or RPC? In this session, I'll explain the choices and how each works. We'll then look at their strengths and weaknesses in order to help guide your decision. By the end of this talk, you'll be well-placed to choose the right API architecture for your project.

GraphQL, REST or RPC? Making the choice!Presented at PHP UK, February 2023

When you've been tasked with creating an HTTP API, the fundamental decision you need to make is which architcture to choose. Should your API be RESTful? What about GraphQL? or (g)RPC? In this session, I'll explain the choices and how each works. We'll then look at their strengths and weaknesses in order to help guide your decision. By the end of this talk, you'll be well-placed to choose the right API architecture for your project.

Improve Your API with OpenAPIPresented at Longhorn PHP, November 2022

OpenAPI is the standard way to describe your HTTP API, adopted by most modern APIs. With the spec at the centre of your workflow, you can improve the quality of your API and development practices, and make integrations painless. With standardisation comes tooling and in this session, I will show you to leverage this to your advantage. We'll cover what OpenAPI is, why it's interesting and then how to use it. We will also look at how the OpenAPI specification enables you to create documentation, use mock servers and improve the robustness of our API with validation. This session is ideal for anyone who wants to write an API specification once and use it everywhere.

The Right API for the JobPresented at phpday, May 2022

When you've been tasked with creating an HTTP API, there's many things that you need to consider and I'm here to help you navigate your journey. We start with the fundamental decision of architecture: should your API be RESTful? What about GraphQL? or RPC? We'll look at the choices and their strengths and weaknesses to guide your decision. We'll also take a hard look at the other, vital components of an API from how it works with HTTP, through validation, payload formats and error handling. An API makes its mark when it is used, so we'll also consider developer experience to ensure that your API is best it can be. By the end of this talk, you'll be well-placed to design and deliver a great API that's fit for purpose.