Speakers
Workshop Tutors
Keynote Speakers
Speakers
Workshop Tutors
James Titcumb
James is a consultant, trainer and developer at Roave. He is a prolific contributor to various open source projects and is a Zend Certified Engineer. He also founded the UK based PHP Hampshire user group and PHP South Coast conference.
Best practices for Crafting High Quality PHP Apps
This prototype works, but it’s not pretty, and now it’s in production. That legacy application really needs some TLC. Where do we start? When creating long lived applications, it’s imperative to focus on good practices. The solution is to improve the whole development life cycle; from planning, better coding and testing, to automation, peer review and more. In this tutorial, we’ll take a deep dive into each of these areas, looking at how we can make positive, actionable change in our workflow.
This workshop intends to improve your skills in planning, documenting, some aspects of development, testing and delivery of software for both legacy and greenfield projects. The workshop is made up of multiple exercises, allowing dynamic exploration into the various aspects of the software development life cycle. In each practical exercise, we'll brainstorm and investigate solutions, ensuring they are future-proofed, well tested and lead to the ultimate goal of confidence in delivering stable software.
Phil Weir
Phil is director of Flax + Teal Limited, a web, data and open source consultancy, and part of the NI-based Avata Industries open source business group.
Phil has spoken on Kubernetes and his Kubernetes-based projects at the Open Data Science Conference 2017 (London), the NI Civil Service conference 2017, PHPBelfast and a number of Belfast-based events, and worked with the London-based Open Data Institute, among other clients, on these technologies as part of Project Lintol. Additionally, he delivers commercial training courses on Python for data science, numerics and research.
Introduction to PHP on Kubernetes
Microservice architectures and containerization are regularly talked about, but how do we put this all together in a container-focused infrastructure?
PHP systems need to stay up, running and be smoothly linked from developer to deployment. Kubernetes has risen to be the industry-leader in container orchestration, providing a consistent means of deploying, scaling, updating and interrogating your web-based systems. Being container-driven from the ground-up, it helps realize the gains containerization offers right through your lifecycle: reproducibility, cloud-independence, immutable environments, managed self-service access.
This tutorial will be framed as a stepped deployment using open source profiles for deploying a Laravel system, termed Buckram. This will involve:
- setting up a generic Kubernetes system
- deploying Laravel onto it using Helm charts (versionable infrastructure description), with Postgres, Redis and workers
- employing a Gitlab repository for CI/CD for building container images
- managing per-deployment configuration and environment variables
- process health, logging and scaling
- using the
artisan
CLI tool for scheduled and one-off jobs on the cluster (as time permits)
Chris Hartjes
Chris Hartjes has worked on web applications of all shapes and sizes since 1998, ranging from catalogs of CD compilations for professional DJs to portal pages for large US cable television providers. Chris gives back to the programming communities that have helped him by mentoring, speaking at conferences, and by organizing conferences. As the author of two books on writing testable PHP code and using testing tools, he believes testing and automation are secret weapons organizations can use to deliver high-quality applications quickly.
Monday to Thursday he works for Mozilla testing web services the Firefox browser talks to. On Fridays he works on expanding his Grumpy Learning info-product empire. In the evening he gets yelled at by his wife for playing with his phone too much.
He works from his basement office in the snowy wilds of Canada.
Learn To Test Like A Grumpy Programmer
What if you could learn how to write tests from someone who has been using them for a long time and also knows how to explain it in a way that cuts down on the fear and anxiety while teaching you what you need to go to get started immediately?
In this tutorial, Chris will teach the basics of writing tests using PHPUnit. Topics covered include:
- high-level discussion of the role of testing
- assertions
- the Arrange-Act-Assert pattern
- what a PHPUnit test file looks like and where to locate them
- test doubles and when to use them
- strategies for building test scenarios
Arne Blankerts
Arne Blankerts has created solutions far ahead of the times already years ago. He helps to create sustainable software and tailored infrastructures, and finds security issues with magic intuition. In his free time, he reads fantasy novels and likes to cook.
Efficient Domain-driven Design: Event Storming Workshop
Event Storming is an emerging group modeling technique using sticky notes and verbal communication that is not only extremely efficient, but also easy to learn, and fun to do. This workshop introduces you to Event Storming with a strong focus on process design. Rather than talking a lot of theory, we will quickly dive into a group exercise and start modeling a real-life business problem. We will not stop there, however, but also turn the model into working PHP code using Domain-driven Design techniques and patterns.
Keynote Speakers
Heather Burns
Heather Burns is a tech policy and regulation specialist from Glasgow. A former web designer, she is a core component maintainer on the WordPress.org core privacy team, helped to create the privacy notice tool shipped in WordPress 4.9.6, and has contributed to establishing a cross-project open source privacy coalition. She was recently named Smashing Magazine's "Person of the Week" for her prolific writing and speaking on data protection and GDPR. Outwith that, she blogs about Brexit and tech policy for fun.
Developing for privacy and user protection
The most important thing you will ever do as a developer is protect the people in your data. But beyond headlines, scaremongering, and scandals, what is privacy, and how do we develop for it? Before we can protect people from the harms that can result from the misuses of their data, we need to understand our own differing cultural and legal approaches to privacy, and then establish a common methodology to evaluate our work.
This talk will provide a overview of different views and approaches to privacy which exist within our globalised industry and even within our own projects. Then, it will provide attendees with a practical development toolkit which draws on best practice privacy standards, current and upcoming legal regulations, and robust development frameworks.
Attendees will be inspired to integrate a healthy, proactive, and accountable approach to privacy into everything they do.
John McCabe
John McCabe is one of the earliest contributors to the OpenFaaS project, and a staff engineer at Proofpoint Inc. He is passionate about open source, and enjoys attending conferences around the world.
Starting your Serverless journey with OpenFaaS
OpenFaaS is Serverless Functions Made Simple for Docker & Kubernetes. Avoid vendor lock-in by running functions in your datacenter or the cloud with your existing CI/CD and container ecosystem. Freeing you to run your functions on your own terms - anywhere, and in any language.
This talk introduces OpenFaaS, demonstrates how to build functions with PHP and then explores real-world examples of how and why people are leveraging a serverless architecture. You'll also see OpenFaaS Cloud in action which brings a stream-lined "git push" CI/CD workflow and a multi-user experience to your functions.
You can deploy OpenFaaS in 60 seconds anywhere with Docker or Kubernetes. The project focuses on ease of use through its UI and CLI which can be used to test and monitor functions in tandem with Prometheus integration enabling auto-scaling as demand increases.
OpenFaaS has won Best Cloud Computing Software 2018 from InfoWorld and has a thriving community with over 130 contributors, 3k commits and over 13k stars.
Speakers
Liam Wiltshire
Liam is a UK based developer and the CTO at Tebex a gCommerce company and game server monetization platform. From humble beginnings breaking things in Perl, Liam has tackled projects large and small, from brochure sites in WordPress to eCommerce sites in Magento and SaaS products in Laravel. Outside of CTO-ing, Liam is a maintainer for joind.in, and is trying to learn the secret to actually having some spare time.
We need a bigger boat - Introduction to application scaling
At one time or another, every developer comes across the same problem - their application starts getting slower, then starts falling over, then isn't available at all.
Often, this comes down to too many users, too much stored data - in other words a scaling problem.
Looking at a range of options, from horizontal and vertical scaling, to caching, sharding and optimisation, Liam will discuss approaches to scaling that can be used on new applications, and also some that can be retro-fitted to existing applications.
Matt Brunt
Matt Brunt is a Senior Software Engineer with Viva IT where he leads and mentors a team of developers, helping them to learn and grow into their full potential.
In his spare time, he's an organiser for the PHP East Midlands user group, and the PHP East Midlands yearly Unconference. When not tinkering with code he can be found reading comics, fighting monsters in dungeons and dragons, or drinking tea and eating jaffa-cakes.
Dungeons, Dragons & Developers
You enter the dungeon, as the echoes of your footsteps sound around you, something catches your eye - is that… oh, oh no.
You grab your trusty sword and with your fellow adventurers, you seek to overcome the mighty challenge that lays ahead of you: building software.
This talk is a look at some of the parallels between Dungeons and Dragons, and software development.
We’ll see how lessons learned through delving into dungeons and fighting monsters with a party of adventurers can help teams of developers when building software in the real world.
Are you ready to join me in a mighty quest for better software?
Kat Zien
Writing Go and PHP at Brightpearl. Working remotely from Bristol, UK or anywhere with wifi. Her main interests include automating #allthethings, sorting out legacy code and making things simpler and faster. She's co-organising and giving talks at PHPSW and Golang Bristol++. Kat loves travelling and keeping active, appreciates good coffee and is a big Lego fan. She cycles across Europe with TechBikers to raise money for Room To Read.
Get GOing with a new language
Learning more than one programming language is key to becoming a better developer. It is like adding a new tool to your toolbox. The more tools you have, the easier and quicker you’ll be able to tackle whatever job you need to do. You’ll also be able to use the right tool for the job, and who doesn’t like that?!
I picked up Go (golang) over a year ago as it was becoming more popular among developers. Coming from a PHP background, I had no idea what channels or goroutines were or how is concurrency different from parallelism. It was a whole new world, with concepts and ideas I did not come across before. I was hooked!
The goal of this talk is to give you a good idea of what Go is like and how it compares with PHP. We’ll look at the language itself as well as the tooling and communities around it. Even if you’re not sold on Go by the end of it, I hope you’ll leave inspired to go out there and learn whatever language you wanted to look into next!
Joop Lammerts
Joop Lammerts has been a webdeveloper since the beginning of web 2.0. After working in solitude for ages he now finds himself surrounded by enthusiastic colleagues. Developer and Scrum Master at Procurios, Formula One and music enthusiast at home.
Improve your team synergy w/The Attitude Model
Most of the time you’ll work in teams, but sometimes teammates don’t understand each other. Working on a piece of software becomes a drag. So why does this happen? Can you prevent this from happening?
During this talk we’ll introduce The Attitude Model. This model helps us to improve teamwork. It explains and predicts how teams argue, cooperate and excel. It helps us to understand what individuals need from their team and what they bring to the table. The Attitude Model allows us to move from storming to performing.
With The Attitude Model by your side you and your team will have fewer conflicts, work together more smoothly and have better meetings. You will have tools to divide your software design approach. So come join me in my journey on how I became the world champion with my team (and clients).
Mark Railton
Mark Railton currently works as a senior developer on the Synx platform at Transpoco and is a maintainer for the joind.in project. He is an advocate for raising mental health awareness in the technology sector, in particular the development community. He is also a volunteer with Open Sourcing Mental Illness (OSMI) to help fight the harmful stigma associated with mental health disorders.
Mark originally hails from Belfast, Northern Ireland and currently lives in Wicklow, Ireland with his wife and 2 children. When he has time, he occasionally blogs on topics such as development and mental health at MarkRailton.com
Looking after your Mental Health, a guide for software developers
Mental health issues are something that affects a staggeringly high number of people in the software community yet are a topic rarely spoken about due to the stigmas associated with them.
In this talk we will hear some of the things to look out for in others as well as in ourselves, and how it could be affecting us and those around us. Mark draws on his personal experiences of imposter syndrome, depression and anxiety to highlight how these have had a profound impact on his development career. Mark will also be highlighting some of the amazing resources available through Open Sourcing Mental Illness (OSMI) and showing how they can help with your own mental health as well as making your workplace somewhere that nurtures and supports mental wellness. Finally, we'll also be equipped with some resources on where you can go to get help should you be suffering from mental health issues yourself.
Amanda Folson
From humble beginnings as a PHP4 web developer in grade school, Amanda now works as a Developer Relations Manager at Nexmo where she gets to share her passion for technology and education with others. In addition to consuming APIs and IPAs, she currently serves as a co-host for the PHPTownHall podcast and is involved in Open Sourcing Mental Illness. In her spare time you’ll find her in a hammock with a guitar.
Open Source for Closed Source Companies
Just because you’re selling SaaS doesn’t mean you can’t adopt open source principles in your organization. We'll talk about how individuals and companies can open source their documentation, libraries, and ideas for the greater good of the community in a way that doesn’t mean giving it all away for free. Open source goes beyond software; it’s also an approach to the non-software aspects of your business. No matter what you’re shipping for profit, there are several aspects of your company that you can make public to increase transparency within your organization as well as outside of it.
Sebastian Heuer with Arne Blankerts
Sebastian Heuer plans and writes software for the web since the early 2000s. He focusses on clean software architectures and high-quality, easy to understand code. Apart from his position as Developer Advocate at kartenmacherei.de, he engages in several open-source projects (like https://phar.io) and helps teams to write solid and maintainable software.
Optimizing PHP-FPM for Production
PHP-FPM, the FastCGI process manager, evolved from being a 3rd party patch to the de-facto standard for running web applications with PHP. By default though, the configuration shipping with most distributions is designed for minimal resource usage. And while production servers can run with these settings even under relatively high load without problems for a while, getting the most out of FPM will require some tuning. Preparing the PHP stack for high load situations and monitoring the performance, optimizing the runtime for specific types of requests or hardening the security of your environment – there is much to consider.
Nils Adermann
Nils Adermann created Composer - the dependency manager for PHP - and founded Private Packagist - a package archive as a service - together with Jordi Boggiano. After contributing to numerous open-source projects and different businesses using PHP for over a decade, he learned first hand what problems PHP developers face. His projects are now mostly focused on improving the developer experience around PHP and providing businesses with the tools to use PHP more efficiently.
Composer Best Practices 2018
Not certain you're making full use of Composer's capabilities? Overwhelmed by the number of commands, options and configuration choices? Composer has become the standard tool for Dependency Management in PHP.
This session will cover details on version constraints, stabilities, semantic versioning, correct use of the lock file, helpful tips for everyday interaction with Composer, such as the right options to use during development, testing and deployment, or commands useful for debugging problems.
Pauline Vos
Pauline is a PHP developer currently employed by Werkspot in Amsterdam. She likes good, clean software design and being as efficient (lazy) as possible. Also cocktails, video games and animal memes. She lives in Amsterdam with her cat, Phife Cat, and about three plants.
Git Legit
Many Git users tend to use Git as a save point, like in a video game; chronologically making checkpoint commits as they go. This spreads out changes to the same areas in the code over several commits, necessitates merging and resolving conflicts, and generally just making an incomprehensible jumble of your history. This talk makes a case for atomic commits and how to use them while only minimally affecting your workflow.
You’ll learn how to properly interactively rebase, fix up, reset, bisect, and more. By the end of the talk, you’ll have seen how this Git flow will make your life easier and how it will affect your ability to cherry pick, drop unwanted commits, and most importantly: not spend hours resolving conflicts in rebase hell. A little change in habits can go a very long way!
Ian Littman
When he isn’t building, maintaining, or optimizing web applications (usually APIs) for a variety of contract clients or helping organize the AustinPHP meetup and Longhorn PHP Conference, Ian is probably at, or biking to or from, one of Austin, Texas’s 24-hour coffee shops, or opining on some aspect of transportation infrastructure.
Don't Wait, Generate!
Generators, which have been around since PHP 5.5 and got a lot better with PHP 7, take a lot of the angst out of asynchronous programming in PHP. In this talk I'll explain the basic concepts that you'll need to grok generators, then apply our new-found knowledge to turn an I/O-bottlenecked web app into a concurrent, performant one via the AMPHP family of libraries.
James Titcumb
James is a consultant, trainer and developer at Roave. He is a prolific contributor to various open source projects and is a Zend Certified Engineer. He also founded the UK based PHP Hampshire user group and PHP South Coast conference.
Climbing the Abstract Syntax Tree
The new Abstract Syntax Tree (AST) in PHP 7 means the way our PHP code is being executed has changed. Understanding this new fundamental compilation step is key to understanding how our code is being run.
To demonstrate, James will show how a basic compiler works and how introducing an AST simplifies this process. We’ll look into how these magical time-warp techniques* can also be used in your code to introspect, analyse and modify code in a way that was never possible before.
After seeing this talk, you'll have a great insight as to the wonders of an AST, and how it can be applied to both compilers and userland code.
(*actual magic or time-warp not guaranteed)
Rafael Dohms
Rafael Dohms is a community creator who accidentally writes code. Addicted to building communities, currently, he is to blame for AmsterdamPHP. Developer by career but teacher by vocation he travels the world sharing interest in quality code, innovation and building careers. In his free time you will likely find him gaming or contributing to open source projects.
Application Metrics (with Prometheus examples)
We all know not to poke at alien life forms in another planet, right? But what about metrics, do you know how to pick, measure and draw conclusions from them? In this talk we will cover various Site Reliability Engineering topics, such as SLIs and SLOs while we explore real life examples of defining and implementing metrics in a system with examples using Prometheus, an open-source system monitoring and alert platform, to demonstrate implementation. Let's get back to some real science.