Keynote Speakers

Picture of Rasmus Lerdorf

Rasmus Lerdorf

Rasmus Lerdorf is known for having gotten the PHP project off the ground in 1995 and has contributed to a number of other open source projects over the years.

He was an infrastructure architect at Yahoo! for more than 7 years and joined Etsy in 2012.

He was born in Greenland, grew up in Denmark and Canada and has a Systems Design engineering degree from the University of Waterloo. You can follow @rasmus on Twitter.

DEPLOYING PHP 7

PHP 7 is here and it brings drastic performance improvements along with a number of cool new features.

Learn how PHP 7 is likely to impact your application and how to identify potential backward compatibility breaks.

Now would also be a good time to revisit your deploy strategy to make sure it is safe, efficient and atomic and makes use of the latest features of PHP 7.


Picture of Jessica Rose

Jessica Rose

Jessica Rose is a self taught technologist obsessed with fostering more open access to technical education and digital spaces.

She's currently heading up developer relations for DreamFactory, helping more developers access their open source product.

She's also founded the Open Code meetup series, co-founded Trans*Code and works with adult learners looking to enter the technology industry. She's always excited to hear about new projects, so find her to tell her about what you're working on.

Tech communities as fandoms

How is Django like Doctor Who? They’re both projects supported by an incredibly motivated community.

This talk will look at the ways in which open source communities parallel fandoms as they form, grow, break off into factions and interact with their supporters and critics.

As we learn more about our own communities by looking at our equally-obsessed geeky peers we’ll hopefully discover ways that we can help make our communities (and maybe even fandoms!) more equitable, accessible and open.

Session Speakers

Picture of Michael Bodnarchuk

Michael Bodnarchuk

Michael is a passionate PHP/Ruby/JS web developer from Kyiv, Ukraine.

By wanting to make his products stable he started to use automated testing in his projects but couldn't get along with any of testing framework so he developed his own PHP testing framework - Codeception.

Now Michael maintains various popular opensource projects and aims to popularize testing. "Testing should be fun" - is his motto.

Beyond testing

Yes, you know, you should have written that test! But what If you already do writing tests, but you don't see the result of your actions. Tests run slow, they are fragile, hard to read and maintain. Fixing a test is harder than disabling it.

Don't blame yourself. It's not about you, it's about some points you should have taken into account while your testing codebase grew. In this talk I will tell you about

  • What are best practices for tests (with code samples)
  • Do we need acceptance tests and what framework to choose: Behat, Codeception, Selenium, PhantomJS
  • How data should be managed? (Dumps, Fixtures, FactoryMuffin)
  • How to test APIs (Codeception, php-vcr)
  • Creating test environments with Docker containers
  • Setting up parallel testing with Docker

Picture of Andy Gaskell

Andy Gaskell

As a developer with 25 years of writing code from of all flavours I've been mainly work in back-end PHP for the last 10 years.

Specialising in Joomla and API development leveraging and contributing to Open Source systems, and taking a holistic approach that encompasses the system end-to-end, from UI to dev-ops.

Based in Aberdeen, but Glasgow, Sydney, Edinburgh and London before that.

The secret life of APIs

The secret life of APIs delves into a API development, from conception, architecture, evolution, re-work and life-cycle.

Based on practical experiences of the last two years developing PHP back-ends for a school App app-factory, this will bring real world experiences together with practical examples. It approaches the subject holistically, from a high level, diving into relevant technical detail where it can provide useful insight to the audience.

This mainly covers RESTful PHP json API development.

The talk will cover...

  • API architecture
  • Planning for the future, anticipating issues
  • API versioning
  • Managing differential output for API and client versions
  • Functional testing
  • Performance testing
  • Regression testing, of functionality and performance
  • Scale out and dev-ops
  • Optimisation
  • Life cycle management
  • Authentication
  • Elegantly retiring legacy functionality

Picture of Michael Heap

Michael Heap

Michael is a polyglot software engineer, committed to reducing complexity in systems and making them more predictable. Working with a variety of languages and tools, he shares his technical expertise with audiences all around the world at user groups and conferences.

Day to day, Michael is a fixer. He works on whatever needs an extra pair of hands both at his day job and in open source projects. When not immersed in technology, you'll find him either playing various board games or hiking through the countryside.

Automation Automation Automation

A good rule of thumb to have as a developer is that if you have to do something three times or more, you should automate it.

Imagine that a task takes you a minute to do, twice a day. Now imagine that you could write something that does it for you, but it would take an hour. Initially, you'll have lost an hour, but after the first month you'll be breaking even, as you've saved those two minutes per day. Then after the second month, you've essentially gained a free hour.

Automation is a developer's best friend. Some things are easier to automate than others, but almost anything can be automated. In this talk, we'll take a look at what can be automated, what tools are available to help us and crucially, if we should automate it. Surprisingly, sometimes the answer to the question "should we?" is "no".


Picture of Bastian Hofmann

Bastian Hofmann

Bastian works as a Software Engineer at ResearchGate, the social network for researchers and scientists. There, he is mainly responsible for designing the web frontend's software architecture and caring about performance, monitoring and developer productivity.

Before that he created the games and application platform and the APIs of the VZ-networks.

When he is not developing stuff, he frequently speaks at international conferences on software architecture, scaling web applications and open standards and protocols.

The road to continuous deployment

Deploying code changes continuously to your production environment has many benefits.

New features get to your users much faster which enables very short and quick iterations on them. And due to the small change sets you tend to encounter less bugs and regressions.

In this talk I’ll present what Continuous Deployment means, and what you have to do, step-by-step, to make it work successfully for your project.

We will cover topics like trunk based development, feature flags, partial roll outs, continuous integration, deployment automation and application monitoring.

Picture of Andy Kirkham

Andy Kirkham

Originally qualified as an electrical engineer I began my career more than 30 years ago designing hardware and firmware solutions to the embedded industry. In the late 1990s after many years soldering joints and writing bugs my interest in the evolving Internet saw me switch full time to middleware development, initially in Perl and C, then along came PHP.

In those years I have contributed to both FOSS operating systems such as FreeBSD and Linux and to many open PHP projects. To this day, I don't regret the career change, although I still do own and use a lot of hardware kit like Arduinos, MBeds, PIs, etc, which I enjoy dabbling with occasionally.

Distributed Services: Why, When & How?

We've all built websites, that's why you're attending a PHP conference. There's the standard way, get a LAMP, do some dev and you're there. Your client is happy, modern websites are a no brainer to build in the modern era.

But as your career progresses and things start to get more complex what other solutions are available to you, the developer, to increase performance, increase load capacity, improve your applications and broaden your skillset?

This talk sets out to demonstrate, using a practical worked example, how to distribute workloads using various architectures and technologies available to you the developer.


Picture of Rick Kuipers

Rick Kuipers

I'm a developer at Enrise, meetup organizer for PHPAmersfoort and international speaker who's eager to learn from others. Ever since my first conference I've been hooked on getting involved with the community. I love meeting people that inspire me and I'm fuelled by challenges along the way.

"If you can't explain it simply, you don't understand it well enough." – Albert Einstein

The stateful elephpant

State machines and the state pattern seem to be pretty underestimated in the PHP world. Most examples found are of doors and other objects that have no application in most of our projects. Starting the talk I will be explaining what the state pattern is and how it's used in a game. Then we'll be discovering what this can do for us in the world of web applications. Following that we're taking a brief look at the state machine, how it's different from the pattern and why it's useful to us.

Instead of simply presenting you these concepts I prefer showing practical examples so you can see theory put to practice. You will be walking away from this talk with a solid understanding of the state pattern/state machine and the knowledge on when you should apply these concepts.


Picture of Tim Lytle

Tim Lytle

A developer evangelist at Nexmo, Tim's also a lover APIs, hates the top reply, and tweets sporadically from @tjlytle.

As a seasoned contract developer he's built applications utilizing numerous APIs, created custom APIs for internal consumption, and now helps other developers energize their projects with Nexmo's powerful global communications API.

The API toolbox

If you're building and consuming APIs, there are some tools you should know about. HTTP tunnels make it easy to point callbacks and webhooks to your local development server. Proxy services can help capture, debug, and replay API traffic. External monitors can track uptime for the APIs you use - or provide - and verify expected responses. Learn how tools like Runscope, ngrok, ForwardHQ, and more can make you more effective at integrating and releasing APIs, save time and simplify debugging.


Picture of Ciaran McNulty

Ciaran McNulty

Ciaran helps teams at all levels of ability improve via training and coaching. He has been a PHP professional since the late 90s and is passionate about TDD, BDD and Agile methodologies. He is lead maintainer of PhpSpec.

Conscious coupling

By using a comprehensive feature-filled framework we can build software fast. On the other hand, by decoupling our applications we can build sofware that is independent of our framework and infrastructure choices, and therefore longer lasting.

We can't do both, is one approach always right?

In this talk we'll look at different decoupling techniques, what problems they solve, and when they make sense. We will learn some concrete techniques to discover where we should be investing in decoupling, and when we should let the framework maintainers do the work for us.


Picture of Eryn O'Neil

Eryn O'Neil

Eryn O’Neil is a freelance PHP developer and tech lead in the agency world. She has worked on everything from e-commerce and online promotions to building a proprietary framework and CMS. Her philosophy is to build software by placing humans first: both the people who will use it and the developers who will build it with you (and maintain it afterward).

Based in Minneapolis, Minnesota, Eryn spends most of her free time blues dancing, flying on a trapeze, and wishing it weren’t snowing.

You Can UX Too: Avoiding the Programmer's User Interface

Programmers have a bad reputation when it comes to UX, but it's time to set the record straight: It isn't because we don't care! It's because we fall in the trap of thinking we can design a user interface and write it at the same time when, the truth is, these processes require different kinds of thinking. But learning how to unlock that part of your brain is worth it—and you'll be surprised at what you already know. From one developer to another, this talk will discuss why you should think critically about the interfaces you write and give you some strategies you can start applying right away, whether you're implementing on your own or working with a UX professional.


Picture of Chris Riley

Chris Riley

Chris is a freelance consultant based in York, Uk with experience working in the public sector, small and large companies throughout North Yorkshire. Chris has over 10 years experience with PHP and has a keen focus on both software architecture and none functional requirements such as security, performance and maintainability. In his free time, Chris can often be found producing or playing with experimental libraries and contributing to Zend framework.

Micro-services vs. the Distributed Monolith

When faced with a challenging legacy code base, tightly coupled and void of discernible structure: a big ball of mud, it is common to decide to refactor this monolith to a microservice architecture to separate concerns and split the codebase up, however without any clear boundaries you are in danger of creating a distributed big ball of mud.

You may recognise the symptoms of a distributed ball of mud: a large unfocused 'common' library shared between multiple services; performance issues as your front end makes calls to multiple back end API's to serve a single request; dependency hell on deployments as you have to release multiple code bases simultaneously and uptime issues as a single microservice going down brings down your entire application.

In this talk I'm going to cover some of the common pitfalls you might encounter when building a microservice architecture and show you how to use an event driven architecture to build truly scalable microservices.


Picture of Michiel Rook

Michiel Rook

Michiel Rook is a PHP/Java/Scala contractor from the Netherlands and holds a Master's degree in Computer Science. He loves coaching teams to develop better software. He's been working with PHP for over fifteen years and is one of the people behind the build tool Phing. He is an Army reservist and enjoys music, cars, sports and movies.

CQRS & EventSourcing in the Wild

CQRS & event sourcing are currently very popular topics in the PHP community. However, most blogs and talks focus on the theory, simple applications or introductions to one of the CQRS / event sourcing frameworks currently available for PHP, not necessarily the challenges of a production deployment.

In this session we will try to bridge that gap and look at some of the issues that popped up during a real-world deployment of an event sourced application. We’ll discuss a few strategies to deal with these issues and how they would apply to current PHP event sourcing frameworks.

Prior experience with or knowledge of event sourcing is beneficial, but not required.


Picture of Dave Stokes

Dave Stokes

Dave Stokes is a MySQL Community Manager for Oracle. Previously he was the MySQL Certification Manager for MySQL AB and SUN. He has worked for companies ranging alphabetically from the American Heart Association to Xerox and work ranging from Anti-submarine warfare to web developer. And he really wonders how many people really, really read these conference biographies.

MySQLs JSON Data Type

MySQL 5.7 features a native JSON data type. Now you can store a JSON document in a column of a table in a MySQL database. This session covers how the data is optimized, the various supporting functions for the JSON data, how to use generated columns from extracted JSON documents to create index for fast SQL searches, and best use cases for JSON data. Lots of coding examples in PHP plus coverage of the new X DevAPI to allow MySQL to act as a document store. You will walk out of this session with the information you need to store JSON data in your MySQL instance.