Seems like only yesterday we were packing up and heading home from a successful third year of ScotlandPHP, it was great to see you there and we hope that you took a lot from the workshops and track day!

Friday 8th November 2019

BDD in Practice
Workshop by Ciaran McNulty in Track 1 (6 hour)

BDD best practices, applied in the PHP world. Behaviour Driven Development techniques help us to ensure that the code we're writing is solving real-world problems, and is software that matters. In this hands-on workshop we will understand a user's requirement; solve that problem with software; and validate its functionality using tools such as Behat, PHPUnit and PhpSpec.

PHP Internals Deep Dive
Workshop by Derick Rethans in Track 2 (3 hour)

In this tutorial we are going to dive deep into PHP's Internals. It is appropriate for people that know PHP as a language well, but are interested into finding out what goes inside in-depth. We will start by looking at how the language parser and scanner work, which convert scripts into an Abstract Syntax Tree. When then look at how PHP internal byte code is generated from this AST, and how the engine runs byte code. After the introduction, we will working together on extending the PHP core with a new feature. As a treat, we'll also have a look at the OPcache extension, and see which optimisations it does to generated byte code. Reasonable knowledge of C (or similar languages) is required to make the most of this tutorial.

Introduction to TimeSeries
Workshop by David McKay in Track 2 (3 hour)

TimeSeries is the fastest growing database category, rated by DBEngines, and has been for over 2 years; yet, most people don't know what a TimeSeries database is; do you? If you've ever monitored an application, infrastructure, or dabbled in measuring the humidity of your bedroom with a Raspberry Pi; you've probably done so with a time-series database. This talk will walk you through the underpinnings of a time-series database, before leading on to some practical examples of using time-series data for metrics, events, and alerting.

Saturday 9th November 2019

Taming Change
Keynote by Chris Holland in Track 1 (50 minutes)

Change is Software’s greatest threat, and its defining characteristic. Disagree? How’s that Agile Transformation going for you? We will explore this cognitively-dissonant statement as we investigate the challenges that we’ve faced, how we continue to fail to address them, and what we can do tame this raucous beast.

Xdebug 3.0
Talk by Derick Rethans in Track 1 (50 minutes)

This talk is for developers who want to know how to debug their code in a better way, through single step debugging, profiling, and simpler debugging tools. Xdebug is a PHP extension that implements many debugging aids and features. In this presentation we are going to look at this new version of Xdebug 3. The new version is a near total rewrite, and brings many improvements over its older releases. You will learn how to optimally use the new features and settings to make your development life easier.

Progressive Web Apps & Offline Development
Talk by Mike Oram in Track 2 (50 minutes)

There has been a lot of talk about Progressive Web Apps and what they can do, especially now the Apple has caught up. In this talk, we will briefly explore what a PWA is and how to build one. We will look at the benefits of PWA's and more importantly their limitations. We then look a bit deeper at the technologies behind PWA's such as Service Workers, in particular we will look at the mechanics behind Service Workers, and how they will affect your back-end builds. Finally, we will look at offline development, the offline first life-cycle and the tools and technologies needed to start building offline applications. Comparing offline storage mechanisms, and their limitations.

GraphQL API in PHP
Talk by Drishti Jain in Track 1 (50 minutes)

APIs are a trivial part of development. But there are number of challenges that come along right from data fetching to iterating over endpoints.Worry not GraphQL is here to the rescue. Come dive into the world of GraphQL and learn to develop efficient and easy to understand APIs!

Serverless PHP applications with Bref
Talk by Matthieu Napoli in Track 2 (50 minutes)

Running PHP used to be as simple as copying the files onto a shared host via FTP. What if we could get back to something that simple, but gain in security, performances and scalability as well? Let's see if serverless lives up to this promise! We will check out AWS Lambda and Bref, an open source solution for building serverless PHP applications.

12:25 Shipping Better Software Faster & Having Fun Doing It
Talk by Chris Holland in Track 1 (50 minutes)

A Journey toward sustained agility Imagine shipping software early and often, and sustaining the pace as it matures. Imagine harnessing "Change" as a catalyst for opportunity. Software Engineering can be extremely difficult and maddening. But it doesn't have to be. We'll take a look at the various challenges we face and explore practical ways to overcome them, to answer this question: Can we put ourselves in a position to ship code earlier and more often?

The Future of Authentication - WebAuthn with PHP
Talk by Arne Blankerts in Track 2 (50 minutes)

In March 2019 the W3C released the Level 1 of the recommendation for the new Web Authentication Standard "WebAuthn". Already supported by all major browser vendors, it strives to make passwords as well as phishing a thing of the past. Given that’s databases contain millions of stolen credentials, the switch away from passwords should happen rather sooner than later. Are you prepared to support the new means of authentication? Get ready for the future and learn what WebAuthn is about, how it works, and how to leverage its potential for your site today using PHP and JavaScript.

DevCorp: choose your own adventure
Talk by Pauline Vos in Track 1 (50 minutes)

You're a software development consultant called into DevCorp with a mission. What started as a hip, informal startup now has investor demands to meet. And they're counting on you to help them become a scale-up. How do you grow the existing team and maintain the codebase? This interactive talk, intended for any developer of any level, will give you some valuable technical and soft skills to take with you on your real-life professional journey. Using a voting system, the audience decides... and has to live with the consequences. Based on a mix of personal experience, agile methodology, and software design principles, this story has several possible endings. Will you help lift your team's performance or run DevCorp into the ground?

Legacy Code - Testing and Safe Refactoring
Talk by Katy Ereira in Track 2 (50 minutes)

The paradox: I can't test this code because it's legacy. I need to refractor the code to make it testable. How can I manage that, without breaking existing functionality? I'll need to write some tests, but... argh! We've all been there! In this talk we'll look at safe ways to refactor and test 'untestable' code - without breaking any existing functionality. Promise!

15:10 Contributing to PHP's Core
Talk by Gabriel Caruso in Track 1 (50 minutes)

Ever wanted to contribute to PHP's Core? This is your time! From tests to a new function, PHP is open for new contributors. Fixing bugs, document things, cleanups, refactoring, or even new small functions. In this talk, we're gonna see how the is_countable function was made, and what we can learn from that.

Imposter Syndrome: Am I Faking It?
Talk by Mark Bradley in Track 2 (50 minutes)

Do you feel like you're faking it? like you don't feel good enough to do your job? Feeling like you've blagged your way through your career? Then like me and hundreds of others, you might be suffering from imposter syndrome. During my talk I am going to discuss what imposter syndrome is and how it feels. Then I'm going to talk you through why people suffer from it and how people overcome it. This talk is based on both my personal experiences and those of others. By the end of it I hope you can identify if you are suffering from imposter syndrome and also create a team environment that helps to combat the feeling within your team mates.

16:15 Accessibility for Everyone
Talk by Beth Tucker Long in Track 1 (50 minutes)

It is important to reach every last customer, but there are a lot of customers out there for whom the web is not an easy quick-stop. Your target audience contains people who need visual or motor assistance whether they have a specific condition that affects them or are just part of the very large and aging Baby Boomer generation. Learn some tips for evaluating the accessibility of your site, and find out how to broaden your site's appeal while making the web a more accessible place for everyone.

Writing Effective PHP
Talk by Nuno Maduro in Track 2 (50 minutes)

PHP has evolved massively since its first days, and it's on the road to a full-featured language. However, at the same time, there is a lot of outdated information and libraries with poorly written code. This talk is about writing PHP Code that is: safe, robust, and maintainable. We are going to cover a set of rules, that if you follow them; they will get you on the habit of writing code well.

Thirteen Years in the Life of Elephpant
Keynote by Damien Seguy in Track 1 (50 minutes)

The last ones who told me I could learn from a plush toy were my daughters. Of course, I acknowledged. Yet, it dawned on me: After ten years of life, the PHP plush has achieved so much! It went to the White House and Antarctica; it spawned forty thousand offspring and a jet-set generation of collectors; it built bridges within and outside the community. The PHP elephpant is the living symbol of the PHP community, straight from the genius of Vincent Pontier. It is a whole character, running across the world and changing colors all the time. Everybody needs elephpant love!