Pragmatism in the real world

GraphQL, REST or RPC? Making the choice!Presented at SymfonyCon, December 2024

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.

An introduction to DDDPresented at PHP Sussex UG, November, 2024

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 build and architect software that meets the needs of its users. This talk will concentrate on the on the strategic considerations in DDD, particularly the importance of communication at all levels of the project and then turn to the tactical patterns, so that by the end of this session you will be better positioned to create excellent, maintainable applications that are fit for purpose.

GraphQL, REST or RPC? Making the choice!Presented at Platform Summit 2023, October, 2024

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.

The How and Why of OpenAPI (Workshop)Presented at Web Summer Camp, July 2024

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 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.

DDD Strategic ConceptsPresented at Laravel Live UK, June 2024

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 build and architect software that meets the needs of its users. This talk will concentrate on the on the strategic considerations in DDD, particularly the importance of communication at all levels of the project so that by the end of this session you will be better positioned to create excellent, maintainable applications that are fit for purpose.

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.