Dave's speaker badges

As a seasoned conference speaker, I've shared my insights on code quality, testing and static analysis at events around the world. I aim for my talks to be informative and engaging, leaving audiences with practical takeaways they can apply immediately to their work.

See my speaking diary for every event I've spoken at.

Organising an event? See my speaker profile


PHP Generics Today (almost)

Many PHP developers would love generics. We might have to wait a while until they come along. This article shows how existing tools can give us the power of generics now (almost).

Practical Static Analysis

Static Analysis can drastically reduce the bug count in your codebase. This talk gives practical advice on integrating static analysis into your development workflow.

AssertTrue(isDecoupled("my tests"))

It's good practice to write decoupled code. That good practice should include minimising the coupling between your test code and the code under test. This talk examines why this is important and how to achieve it.

Effective Code Review

There are so many benefits from code review; lower development costs, increased code quality, quick up-skilling and on-boarding of team members. This talk shows you how to get the best out of code review.

The Test Suite Holy Trinity

This talk look at the properties of unit, integration and system tests in terms of what they test, how fast they run and how quick they are to write. Will look at how to get the most out of testing at each of these levels, how best to architect code for testing and where best to make comprises.

Don't be so primitive

A quick look at Value Objects, what they are, the benefits they offer and why sometimes they should be used instead of PHP's primitive types.

The Git Eureka moment

Let me share my git eureka moment with you. The moment when suddenly everything git related made sense. We'll delve just below the surface to understand what commits and branch really are. With these concepts cemented we'll look at some of git's more advanced features.

Decoupling with events

Decoupled code is easier to understand, test and extend. This talk looks at how you can use events for decoupling.

Design for testability

Testing code is difficult right? Not if you design your code with testability in mind. Learn how with this talk.

Code review and CI in your lunch break

Code review and CI are vital parts of the modern software development process. It also dead easy to set these up for your project. Find out why and how in this talk