PHP Yorkshire is a one day event coming to York for the first time in April 2017.

Saturday 8th April 2017

Registration in Bytemark Track (1 hour)

Come down and get registered and settled in - tea and coffee is available, so don't be afraid to be here from 8am onwards, we're expecting you!

Welcome! in Bytemark Track (30 minutes)

Opening remarks, plan for the day, and a few words from our lovely sponsors

A Developer's Survival Handbook
Talk by Ciaran McNulty in Bytemark Track (50 minutes)

When stranded in a hostile situation, it’s important to prioritise your needs. Do you seek out shelter, sustenance, or fire first? This is the challenge a developer can find themselves facing in a new company - when the glow of the successful interview process fades and is replaced with harsh reality, how do you endure? In this talk we’ll see what’s really important for survival, what a developer’s hierarchy of needs looks like, and how they can go about making a development organisation a hospitable place to live.

Beyond PSR-7: Design Your Own Middleware Using The Instruction Bus
Talk by Stuart Herbert in Track 2 (50 minutes)

PSR-7 Middleware gives us a standard for writing modules that deal with HTTP requests. Using something like Slim or Zend Expressive, you can quickly and easily chain these modules together to save you time and effort. That’s all well and good, but what happens when you’re not working with HTTP requests? What if you’re working with message queues? Or data going to and from a database? Or pretty much anything that isn’t a HTTP request? Wouldn’t it be great if we could take the concept of building pluggable pipelines, and apply it to any kind of situation that we have? In this talk, Stuart will introduce you to the Instruction Bus - what it is, how to install it, and how to use it to create the pipelines that you need for your application. He’ll show you how to make it type-safe (a long-standing criticism of PSR-7), and how to go about testing and debugging code that runs inside these pipelines. By the end of the talk, you’ll have a worked example that you can download and start using straight away: an open-source library that encrypts and signs messages for messaging systems such as Amazon SQS.

Git's Guts
Talk by Sam Burns in Bytemark Track (50 minutes)

These days almost all developers use Git on a daily basis. Many of us learnt a few relevant commands by rote, but a deep understanding of what it is actually doing seems to be a rarity. Git’s man pages frequently lie about what is really going on, and the majority of third-party documentation is similarly misleading. This isn’t a "how to" talk on Git. I won’t give you a list of commands to learn. There won’t be any advice on merging vs. rebasing, or on continuous integration. The goal of this talk is to give a clear, factual insight into what the various Git commands actually do, and what is actually being stored in the commit graph. Afterwards, you may be able to make sense of a Git problem more easily, but I’ll be focusing on understanding the tool, not on the best way to use it.

What's in a name?
Talk by Nicola Aitken in Track 2 (50 minutes)

We all know that naming functions, variables, classes and services correctly makes for a much more readable codebase, but it’s often a struggle to come up a good name that encapsulates what you’re doing without being AnObnoxiouslyLongAndBoringNameToType. So why is naming things in computer science so difficult and what can we do to get better at it? Maybe the answer lies in exploring the English language. In this talk, I will delve into the world of grammar and linguistics to find some answers these two questions.

The Why’s And The How’s of Asking Users Who They Are
Talk by Chad in Bytemark Track (50 minutes)

We ask our users to give us a lot of personal data in order to provide rich experiences. People are complex and it is very easy to make assumptions about the most basic questions. This talk will look at how to ask people about data in a way that is inclusive, helpful while still providing value. Using gender as an example, we will learn what the stress cases are and what other things we need to consider when we ask our users to trust us with their identity.

Protect your API with OAuth2
Talk by Rob Allen in Track 2 (50 minutes)

OAuth 2 is the gold standard for authentication in APIs and in this talk we’ll take a deep dive into how it works and how to implement an OAuth 2 server in your API. There are a number of work flows in OAuth 2 for different scenarios including mobile apps and websites connecting via JavaScript, so I will discuss each one and show you how to implement it. We’ll also look how to use JWT which can provide performance improvements. By the end, you’ll be well equipped to add OAuth2 to your API.

Flipping Out with Feature Flags and Toggles
Talk by Michael Cullum in Bytemark Track (50 minutes)

Quite often it can be useful to enable new functionality for only certain users on your site, or perhaps to only enable it on a test version of your application. One method of doing this, with a single shared codebase, is feature flags, and is the method used by huge organisations with monolithic repositories like Flickr, but can also be used on much smaller scales when you want to test out new functionality in production or perform A/B testing. This talk will guide you through why feature flags can be helpful to your development workflow, and how you can use them whilst avoiding too much added complexity to your application.

A Drupal 101, but more than just the code...
Talk by Rachel Lawson in Track 2 (50 minutes)

I’m sure many PHP developers are aware that the Drupal content management framework has undergone a huge rewrite over the last few years, along with many of the non-code aspects of working in Drupal. I’d like to take a look at a few of the things that might help a new person just coming in to using Drupal that will allow them to know the basics of how things actually work, how to best go about finding out how to do things when they are stuck and what are the general community structures, characters and expectations that will help them deliver a good result.

Talk by Dave Stokes in Bytemark Track (50 minutes)

MySQL 8 is now ready for your evaluation, not quite ready for production. This presentation covers the new features such as a true data dictionary that will allow atomic schema changes via DDL, Common Table Expressions, Roles, and much more. This is your guided tour of the latest from MySQL and you will want to know the new features before you have to upgrade.

HTML5 APIs You've Never Heard Of
Talk by Drew McLellan in Track 2 (50 minutes)

The modern web browser is a powerful and flexible platform that is far more capable that you might think. Many advanced features can get lost in the gap between front-end and back-end development skill sets. Find out about the HTML5 APIs you’ve never heard of, from audio to video to physical sensors, and interaction methods for mobile users. Learn where they are supported and how you can start work with these APIs in your next project!

16:10 Expect the un-expected: How to handle errors gracefully
Talk by Bastian Hofmann in Bytemark Track (50 minutes)

Even though you tested your application perfectly errors and bugs will still happen in production, especially if other services or databases go down or are under high load. Thus it is very important to see errors happing and to be able to react to them quickly. In this talk I’ll introduce you to efficient ways for monitoring and logging for errors and show how you can handle them if they happen, covering deployment strategies, using intelligent circuit breakers and gracefully reducing functionality.

How to effectively grow a development team
Talk by Jeroen v.d. Gulik in Track 2 (50 minutes)

Developers come in all forms and sizes but putting them together doesn’t automatically transform them into a team. One of the keys to creating a successful team of developers in my opinion is a great developer culture. In this talk I will try to explain why developer culture is so important and share how we grew a developer culture for one of the biggest airports in Europe.

17:10 “Writing code that lasts” … or writing code you won’t hate tomorrow.
Keynote by Rafael Dohms in Bytemark Track (50 minutes)

As developers we write code everyday, only to frown at it a week after that. Why do we have such a hard time with code written by others and ourselves, this raging desire to rewrite everything we see? Writing code that survives the test of time and self judgment is a matter of clarity and simplicity. Let’s talk about growing, learning and improving our code with calisthenics, readability and good design.

Mad Hatter's Tea Party in Bytemark Track (2 hours, 30 minutes)

Hang around with us for cake and tea - we've also got the (cash) bar open