Pragmatism in the real world

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.

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.