Speakers

Adam Englander

Adam Englander

LaunchKey

Bio:
Adam Englander is a seasoned developer with over thirty years of experience building scalable, manageable, and reliable systems. For the past ten years, he has been doing that with PHP. Adam is vocal advocate for utilizing Behavioral Driven Development as the driver for building great applications. His dedication to the PHP community is well known as the founder of Vegas PHP. In the past few years, Adam has been building IoT apps and has been researching ways to make this accessible in PHP.
Tutorial
Beginner
BDD with Behat for Beginners
Learn the basics of Behavioral Driven Development (BDD) with Behat to build quality applications. Behat utilizes natural language syntax to define feature test scenarios. In this tutorial you will learn how to write integration tests for web applications. This will include utilizing Selenium WebDriver for real world multi-browser testing including introductions to Selenium Grid and Sauce Labs. Learn a better way to perform integration testing today!
Room: Matterhorn
When: Tutorial Day: May 24th, 2:00p - 5:30p
Adam Harvey

Adam Harvey

Bio:
Adam is a software developer who has worked on a number of interesting and occasionally even useful things in his near two decade career. These include prototyping the worst mesh network of all times (based on Android phones), discovering how to reliably lock up a Windows computer by writing an in-browser video editor, and (most usefully) removing the original mysql_* API from PHP. Today he works on PHP, a variety of half finished web sites and attempting to drink every beer Vancouver produces.
Session
Advanced
RIP TSRMLS_CC: Porting Extensions to PHP 7
While PHP 7 largely managed the delicate juggling act of maintaining backward compatibility for userland developers, extension developers will find that many of the APIs they have relied on since PHP 4 have either changed significantly or have been replaced entirely in PHP 7. In this talk, I will discuss porting PHP 5 extensions to PHP 7, techniques for maintaining compatibility between both versions, and the best ways to test across a matrix of PHP versions.
Room: Alpine 1
When: Conference Day 2: May 26th, 3:30p - 4:30p
Session
Intermediate
phpdbg for Fun and Profit
phpdbg has been bundled with PHP since version 5.6, and it provides first-class runtime debugging for PHP without needing to install an extension. It is easier to get up and running than XDebug, and it provides a usable command line interface without requiring IDE integration (although that exists too!). In this talk, I will walk through examples showing how to use phpdbg to find and track problems with web pages, CLI scripts, and PHPUnit test suites.
Room: Versailles Ballroom
When: Conference Day 3: May 27th, 10:30a - 11:30a
Andrew Cassell

Andrew Cassell

Marine Spill Response Corporation

Bio:
Andy Cassell is a full-stack web application developer in Herndon, Virginia who designs and builds user experiences that are delightful on any device. Andy is an employee of the non-profit Marine Spill Response Corporation, the largest dedicated oil spill and emergency response organization. He works on their website and internal web applications.
Session
Intermediate
Domain-driven Design Deconstructed
Once you try domain-driven design (DDD), you will never design software in the same way again. We will avoid silly buzzwords and break DDD down into easy-to-understand components. We will start by discussing what it means to use a ubiquitous language, encapsulate logic in value objects, and use bounded contexts, entities, and aggregate roots to manage state and protect invariants. We will also cover more-advanced topics in the DDD world, such as event sourcing and command query responsibility segregation.
Room: Zurich
When: Conference Day 2: May 26th, 10:30a - 11:30a
Short Talk
Beginner
Virtual Reality and Augmented Reality Web Apps
Virtual reality and augmented reality will revolutionize the Web as we know it. In this talk, we will build and demo a web application in virtual reality (WebVR) using PHP, React.js, A-frame, and an Oculus Rift.
Room: Matterhorn
When: Conference Day 1: May 25th, noon - 12:30p
Anna Filina

Anna Filina

FooLab Inc.

Bio:
Anna is a web developer, mentor, speaker and conference organizer. She enjoys realizing seemingly impossible things.
Session
Beginner
ERD, Flowcharts, and Other Documentation
Documentation is much more than just commenting on code. It can be a lot more fun, too. Learn what types of documentation are useful, when it is appropriate to use documentation, and how to write it. Through real-world examples, I will teach you how to create meaningful, helpful documentation not only for posterity but also to guide you in your development efforts.
Room: Matterhorn
When: Conference Day 1: May 25th, 10:30a - 11:30a
Session
Beginner
Unit Testing by Example
Everyone says you need to test. You know the theory, but you do not know where to begin. What should you test? What cases should you write? Using realistic, pragmatic examples, this presentation will take you away from var_dump and ease you into the testing business until you are ready to do TDD without losing sight of tight deadlines.
Room: Versailles Ballroom
When: Conference Day 1: May 25th, 2:00p - 3:00p
Cal Evans

Cal Evans

Zend Technologies

Bio:
For the past 15 years Cal has worked with PHP and MySQL on Linux, OSX, and Windows. He has built a variety of projects ranging in size from simple web pages to multi-million dollar web applications. When not banging his head on his monitor, attempting a blood sacrifice to get a particular piece of code working, he enjoys building and managing development teams using his widely imitated but never patented management style of "management by wandering around". These days, when not working with PHP, Cal can be found working on a variety of projects like Nomad PHP. He speaks at conferences around the world on topics ranging from technical talks to motivational talks for developers. If you happen to meet him at a conference, don't be afraid to buy him a shot of Bourbon.
Keynote
Uncle Cal's Career Advice for Developers
So you want to be a developer? You've got the mad skillz that you think can pay the billz. Great! But it takes more than that. You have to manage your career. You and you alone are responsible for your success. Come listen as Uncle Cal gathers everyone around and shares the career secrets he has learned. Hear as he shares the hard-earned wisdom of 35 years as a developer. C'mon, it's only 30 minutes and there's a raffle at the end.
Room: Versailles Ballroom
When: Conference Day 3: May 27th, noon - 12:30p
Chris Cornutt

Chris Cornutt

Salesforce, Inc.

Bio:
For the last 10+ years, Chris has been involved in the PHP community in one way or another. These days he's the Senior Editor of PHPDeveloper.org and lead author for Websec.io, a site dedicated to teaching developers about security and the Securing PHP ebook series. He's written for several PHP publications and has spoken at conferences in both the U.S. and Europe. He's also an organizer of the DallasPHP User Group and the Lone Star PHP Conference and works as an Application Security Engineer at Salesforce.
Training
Beginner
Web Security Training
A full day crash course in Web & PHP Security practices that teaches you everything you need to know to begin protecting yourself from malicious users. This class covers the top web security attacks, how to detect them, how to protect yourself from them, and how to recover if you are breached. It also covers PHP specific security topics such as best practices for protecting user sessions and handling user logins & passwords. (Lunch will be provided)
Room: Zurich
When: Training Day: May 23rd, 9:00a - 5:30p
Christopher Pitt

Christopher Pitt

SilverStripe

Bio:
I am a developer and writer, working at SilverStripe. I usually work on application architecture, though sometimes I build compilers or robots.
Session
Intermediate
M-M-M-Monads!
Many developers get lost in the hype of object-oriented design. They miss how expressive and succinct their code could be if they tried functional programming. Take Monads, for instance. Many developers have not even heard the name, much less have the ability to describe what Monads are and how they can be useful in every-day code. In this talk, we will gain a clear, simple understanding of what Monads are and how they can help us refactor our code to be clear and concise.
Room: Zurich
When: Conference Day 3: May 27th, 9:00a - 10:00a
Short Talk
Breaking the Enigma
Many years ago, the world was at war. The very best minds were focused on outsmarting the "other side," all without the aid of our modern computational tools. The key was communication, and the Nazis devised a simple, effective way to relay orders to the front lines. They used one of the most famous forms of electronic encryption: the enigma. In this talk, we will learn how the enigma worked and how it was broken—all in live code!
Room: Versailles Ballroom
When: Conference Day 1: May 25th, noon - 12:30p
Short Talk
Beginner
Zombies and Binary
You may not use PHP bitwise operators, but every conditional you create involves binary logic. These Boolean comparisons underpin every-day programming, and they can also be modeled in Minecraft. Minecraft is also a great place to model the internals of many common electronic components!
Room: Zurich
When: Conference Day 2: May 26th, noon - 12:30p
Colin O’Dell

Colin O’Dell

Unleashed Technologies

Bio:
Colin O'Dell is the Lead Web Developer at Unleashed Technologies, a web and hosting firm based in Maryland. He began programming at age 8, co-founded a local web shop at 15, and has over 10 years of professional experience with PHP. He's the author of the PHP 7 Upgrade Guide e-book and active member of the PHP League, where he maintains the league/commonmark and league/html-to-markdown projects. Colin is also a Symfony Certified Developer (Expert) and Magento Certified Developer.
Session
Beginner
Hacking Your Way to Better Security
This talk educates developers on common security vulnerabilities, how they are exploited, and how to protect against them. We will explore several of the OWASP top 10 attack vectors, such as SQL injection, XSS, CSRF, and session hijacking. Each topic will be approached from the perspective of an attacker to learn how these vulnerabilities are detected and exploited using several realistic examples. We will then apply this knowledge to learn how web applications can be secured against such vulnerabilities.
Room: Versailles Ballroom
When: Conference Day 2: May 26th, 10:30a - 11:30a
Short Talk
Intermediate
CommonMark: Markdown Done Right
Markdown is one of the most popular markup languages on the Web. Unfortunately, with no standard specification, every implementation works differently, producing varying results across different platforms. The CommonMark specification fixes this by providing an unambiguous syntax specification and a comprehensive suite of tests. Attendees will learn about this standard and how to integrate the league/commonmark parser into their applications. We will also cover how to add new custom features.
Room: Alpine 1
When: Conference Day 1: May 25th, noon - 12:30p
Damien Seguy

Damien Seguy

Exakat

Bio:
Damien Seguy is CTO at Exakat Ltd., a company specializing in PHP code quality solutions for the industry. He leads the development of the exakat static auditing, that review code for migration, security and clear code. Over the last 15 years Damien has contributed to the PHP, as documentation author, elephpant raisers, User group animator on several continents. He also enjoys gremlin, 狮子头 and camembert.
Session
Advanced
Machine Learning with PHP
Machine learning involves teaching a computer how to learn by itself. It is easy to do, especially when you have a small data set and a good level of expertise in your field. Predicting who will buy something or spotting comments in code is achieved with grassy algorithms such as neural networks, genetic algorithms, or ant herding. PHP is in a good position to use such teachings and take advantage of related technologies such as fann. By the end of the session, you'll know how to try it.
Room: Alpine 1
When: Conference Day 1: May 25th, 10:30a - 11:30a
Tutorial
Intermediate
PHP 7 Compliance Workshop
When migrating, we often need to review old code and target only interesting issues. This session will connect the backward incompatibilities and new features to actual location in the code, relying on static analysis to process a large code base quickly. Based on the accumulated experience of the tools, we will review the issues, diagnose criticality, select the best fixes, and prioritize tasks. All tools used will be open source, and you can try them at home for more validation.
Room: Zurich
When: Tutorial Day: May 24th, 9:00a - 12:30p
Dave Stokes

Dave Stokes

oracle

Bio:
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.
Session
Intermediate
MySQL's JSON Data Type
MySQL 5.7 features native JSON data types so you can store valid JSON docs in your MySQL instances. The bad news is that there are many functions for creating, searching, modifying, and testing all this JSON data. Plus, you need to learn about generated columns to efficiently use JSON data in SQL indexes for fast searches. This presentation covers what a PHP code developer NEEDS to know to effectively use JSON with MySQL and to understand when JSON may not be optimal.
Room: Matterhorn
When: Conference Day 3: May 27th, 10:30a - 11:30a
Short Talk
Beginner
MySQL Replication
MySQL Replication is a proven technology to copy data from one database server to another. It is simple, easy, and reliable. But recent advances have greatly complicated things. Semi-sync versus async, multisource as opposed to multimaster, group replication, and a collection of new tools and options can prove daunting. Come learn how to set up basic replication, highly available farms with automatic fail over, and configuration tips to provide you a robust database topology.
Room: Alpine 1
When: Conference Day 2: May 26th, noon - 12:30p
David Laietta

David Laietta

Dinosaur Iceberg

Bio:
David Laietta is an organizer of WordPress Orlando and WordCamp Orlando. He has been using WordPress for nearly eight years now, and builds custom themes and plugins for clients. David is a co-founder of Dinosaur Iceberg, a creative agency based in Orlando. In addition to WordPress, David is passionate about open source software, online freedoms, internet culture, and constantly learning about the world. He looks forward to chatting with you at php[tek] or on Twitter @davidlaietta.
Session
Beginner
Self-employed through the Web
In this session, we will look at ways to improve your workflow, automate common tasks, and offload things you do not want to do to focus on the things you chose to do in the first place. I have run a web development company for the past seven years. For most of that time I was self-employed, but I have also worked for others, in teams, hired contractors, and been a contractor. There are pros and cons to each of these, and I will discuss my experiences and teach you how to get the best out of each of these situations.
Room: Matterhorn
When: Conference Day 2: May 26th, 2:00p - 3:00p
Short Talk
Beginner
Designing for Those Who Matter: Your Users
We often forget that there are actual users on the other side of the screen. Whether through ability, age, or cultural differences, we can inadvertently alienate users in a lot of ways. We are making websites for our clients and customers, not for ourselves. I will give a brief rundown of things you should consider to make your website effective to the widest range of users possible. Accessibility, internationalization, and UX and UI changes will be covered.
Room: Zurich
When: Conference Day 1: May 25th, noon - 12:30p
Doris Chen

Doris Chen

Microsoft

Bio:
Dr. Doris Chen is a Senior Technology Evangelist at Microsoft of the United States, specialized in web technologies (HTML5, jQuery, JavaScript, frameworks, Ajax, and Java). She speaks at numerous international conferences including O’Reilly OSCON, Fluent, Dev Nexus, HTML5Dev, JavaOne, and worldwide User Groups. Doris received her Ph.D. from the University of California at Los Angeles (UCLA) in computer engineering, specializing in medical informatics.
Session
Intermediate
Angular or Backbone: Go Mobile!
Angular or Backbone: which one will you use in your mobile app? How can you develop a mobile app across iOS, Android, or Windows devices? This talk will provide an in-depth look at Angular and Backbone to explore their differences. We will show how Apache Cordova opens up the world of mobile app development to web developers. We will compare the frameworks as used in the world of mobile app development. Along the way, you will also learn when to make the switch from web apps to mobile apps.
Room: Zurich
When: Conference Day 1: May 25th, 2:00p - 3:00p
Eric Mann

Eric Mann

10up

Bio:
Eric Mann is a seasoned web developer with experience in languages from JavaScript to Ruby to C#. He has been building websites of all shapes and sizes for the better part of a decade and continues to experiment with new technologies and techniques. Eric is a Lead Web Engineer at 10up (http://10up.com) where he focuses on developing high-end web solutions powered by WordPress.
Session
Beginner
JavaScript for PHP Developers
JavaScript and PHP look fairly similar, but they run in entirely different ways and environments. Writing JavaScript as you would PHP or vice versa is a recipe for disaster. As JS makes its way deeper into our stack, it has become an important tool that all PHP engineers should understand and be comfortable with. Attendees will learn the basic differences between these languages and gain a better understanding of how to think in a "JavaScript world," both in the browser and on the server.
Room: Alpine 1
When: Conference Day 1: May 25th, 5:00p - 6:00p
Tutorial
Intermediate
I Promise() to Teach You Asynchronous PHP
Asynchronous code sets JavaScript-powered projects apart from PHP. Thanks to some newer libraries, PHP can do the same tricks as Node on the server. This workshop will walk through the fundamentals of synchronous versus asynchronous execution. We will cover event loops in PHP and work through actual implementations of promises and co-routines. Finally, we will work through the steps required to convert an old-school synchronous application into a newfangled asynchronous beast!
Room: Zurich
When: Tutorial Day: May 24th, 2:00p - 5:30p
Ian Littman

Ian Littman

Cloudy Hills

Bio:
When Ian isn't building, maintaining, optimizing or complaining about APIs of the companies he works with, or playing video games poorly, he's enjoying the Austin, TX countryside and reverse-heckling the likes of Keith Casey in his hometown.
Session
Intermediate
Yielding Higher-performance PHP
Need to wring more performance our of your app? Have high-quality code? You may want to run it as a long-running web service. Under normal circumstances, you would end up in a callback pyramid of doom, but through the clever use of generator systems, such as AMPHP and Icicle, you can make building asynchronous code (the backbone of a long-running PHP web server) reasonably sane. We will learn how these systems use generators and how to build logic on top of these packages to build blindingly fast, maintainable apps.
Room: Matterhorn
When: Conference Day 2: May 26th, 5:00p - 6:00p
Session
Intermediate
Beware Mutants: Testing Your Tests
When building a test suite, it is easy to forget that tests are code. Therefore, tests can have bugs and uncaught edge cases, just like normal code...even with 100% line code coverage. The solution: a test to test your tests, warping your code to try to make your tests fail. I will guide you through the ideas behind this so-called mutation testing, including tools to perform the tests and enhancements to testing tools to catch when "100%" code coverage does not cut it.
Room: Matterhorn
When: Conference Day 1: May 25th, 5:00p - 6:00p
James Titcumb

James Titcumb

Roave, LLC

Bio:
James is the founder of the UK based PHP Hampshire user group and the PHP South Coast Conference. He’s also a Zend Certified Engineer and consultant at Roave. During his downtime, he continues to run the PHP Hampshire user group and the conference, and keeps up with active contributions to various open source projects.
Session
Advanced
Diving into HHVM Extensions
HHVM is quickly gaining popularity, and it is a pretty exciting time for PHP runtimes. Have you ever wondered what is going on beneath this slick, super-speedy engine? I wondered that myself, so I dived into the internals of HHVM, discovering a treasure trove of awesome stuff. In this talk, I will show you how HHVM works and how it all pieces together through a guided tour of the codebase. I will also show you a couple of ways to write your own incredible HHVM extensions.
Room: Alpine 1
When: Conference Day 1: May 25th, 2:00p - 3:00p
Tutorial
Beginner
Introducing Practical RabbitMQ
In this tutorial, I will introduce RabbitMQ as a solution to scalable, interoperable, flexible applications. This tutorial is perfect for those who want to dive deep into RabbitMQ with little or no pre-existing knowledge about message queuing systems. Once you have finished the tutorial, you will know how to set up basic publish/subscribe message queues, control the flow of messages using various exchanges, and understand various features of RabbitMQ, such as RPC, TTL, and DLX.
Room: Alpine 1
When: Tutorial Day: May 24th, 9:00a - 12:30p
Jeff Geerling

Jeff Geerling

Acquia

Bio:
Web developer and infrastructure wrangler from St. Louis, MO. I've built distributed PHP applications for IoT devices as well as some of the most trafficked websites in the world. I have many years of experience with Drupal and PHP, and wrote Ansible for DevOps, a book on infrastructure automation.
Session
Intermediate
Highly-available Drupal on a Raspberry Pi Cluster
Many people complain that the Raspberry Pi is an underpowered, potentially unreliable computer unsuitable for hosting websites or doing any "real" server-like tasks. I beg to differ! I will guide you through setting up the Dramble—a cluster of five Raspberry Pis with a load balancer, two webservers, and a master/slave database configuration—and show you how I use Ansible to deploy PHP applications.
Room: Alpine 1
When: Conference Day 1: May 25th, 3:30p - 4:30p
Short Talk
ProTips for Staying Sane while Working from Home
More employees are working remotely, but many have issues staying productive, maintaining a good work/life balance, or maintaining positive relationships with coworkers. This session will go through some of my experiences as a remote employee with three different companies and provide tips for staying sane and setting yourself up for success!
Room: Matterhorn
When: Conference Day 2: May 26th, noon - 12:30p
Jeremy Mikola

Jeremy Mikola

MongoDB

Bio:
Jeremy Mikola is a software engineer at MongoDB's NYC office. As a member of the driver and evangelism team, he helps develop the PHP driver and contributes to various OSS projects, such as Doctrine ODM and React PHP. Jeremy lives in Hoboken, NJ and is known to enjoy a good sandwich.
Keynote
I'm Just Here for the ElePHPants
There's so much more to experience as a PHP developer than filling the lines between some <?php ?> tags. From plush elephants to game shows to camping and cruises, Jeremy will celebrate $n wonderful experiences in and around the PHP community that have built friendships lasting long after folks have moved on to other programming languages, countries, or careers.
Room: Versailles Ballroom
When: Conference Day 1: May 25th, 9:00a - 10:00a
Joe Ferguson

Joe Ferguson

Vector Media Group

Bio:
PHP Developer, system administrator, community builder, conference organizer, conference speaker, maker, hacker, tinkerer, husband, and owned by cats
Training
Intermediate
Laravel from the Ground Up
Ready to jump into Laravel and start building applications and more? Ready to explore more than just Adventures in Laravel 5? Come learn the best practices for local development, building real world applications, and deploying your applications to production. Join us and learn how to leverage modern development practices so build powerful and robust applications. We will also cover how to test your application's functionality so you can be more confident in deployments and upgrades. Laravel 5.1 will be the framework's first "LTS" (Long term support) version so you can be certain there will be community and support for the life of your application. (Lunch will be provided)
Room: Matterhorn
When: Training Day: May 23rd, 9:00a - 5:30p
Session
Beginner
So You Just Inherited a $Legacy Application...
You were just handed the keys to a new repo. Your first glance over the code base causes the fearful "LEGACY" word to ring in your head. HAVE NO FEAR! I'll share the techniques I've learned after working on several legacy codebases to help update that old code to the current PHP generation. We'll cover triaging the old code base, writing tests to make sure you don't break anything, and how to modernize your old code base!
Room: Zurich
When: Conference Day 2: May 26th, 5:00p - 6:00p
Joe McGill

Joe McGill

Washington University in St. Louis

Bio:
Joe McGill lives in St. Louis, MO, where he spends his days working as the Director of Web Development for Public Affairs at Washington University. Joe is a core contributor of WordPress, and was a lead developer in the Responsive Issues Community Group effort to bring responsive image support into WordPress version 4.4. Find him online on Twitter (@joemcgill) or via his blog at joemcgill.net.
Session
Intermediate
Shipping Responsive Images to 25% of the Web
In this talk, I will provide an overview of how WordPress implemented responsive images in version 4.4 by automatically adding `srcset` attributes to images, which led to the global usage of `srcset` with `w` descriptors increasing 5x in a month. Attendees will also get a better understanding of the responsive image attributes `srcset` and `sizes`, which are supported by nearly every browser on the market, and learn why they are important.
Room: Alpine 1
When: Conference Day 2: May 26th, 10:30a - 11:30a
Joseph Maxwell

Joseph Maxwell

SwiftOtter Studios

Bio:
Joseph Maxwell is the lead developer for his Kansas-based company, SwiftOtter Studios. He’s been programming for 15 years. He combines his love of code with his creative flair for design. Joseph is passionate about helping others write beautiful code, and he’s active in his local PHP user group. Although Joseph has a wide variety of skills, he specializes in the Magento platform. He has several Magento certifications, including Magento's MCD+. In addition, Joseph is a Zend Certified Engineer.
Session
Beginner
Mastering the Basics of OAuth2
Do you need to interface with Google, Facebook, or GitHub, but Open Authentication Version 2 (OAuth2) sounds like too much to implement? In this important session geared towards newcomers to OAuth2, I will delve into OAuth2 by going through a live example of connecting to Google Drive. You will see how easy OAuth2 is! I will begin with running simple HTTP commands and then will look at the available frameworks. Join me to become comfortable with adding OAuth2 to your application.
Room: Zurich
When: Conference Day 2: May 26th, 2:00p - 3:00p
Session
Beginner
Writing Better Code with the New PHP 7
PHP 7 is an exciting release in the world of PHP. In addition to major performance enhancements, PHP 7 provides many features that make writing code faster and protect from pesky software defects. These include the spaceship operator, the null coalesce operator, and an all-new order of execution. I will discuss pre-PHP 7 code and teach you how to take advantage of PHP 7. I will also share information on breaking changes to help you avoid headaches down the road.
Room: Versailles Ballroom
When: Conference Day 1: May 25th, 3:30p - 4:30p
Josh Deckard

Josh Deckard

Answers Corp

Bio:
I am a full stack software engineer at Answers and a masters student at Washington University in St. Louis studying mathematics and statistics. At Answers, I focus on platform engineering, software optimization, emerging tech, data systems, services, core software, and APIs. I also enjoy public speaking and mentoring at hackathons, college recruiting events, and tech conferences. I have worked in PHP the majority of my career and really enjoy doing it at Answers because of our scale.
Session
Intermediate
On the Road towards PHP 7
Last year, Answers completed a migration of almost every bare-metal and virtual server to PHP 5.5. This year, we are starting down the path toward PHP 7. This talk starts with the challenges we faced with the 5.5 upgrade and ends with where we are with PHP 7 adoption. We also talk about how we have been benchmarking 7 and HHVM, which we will choose moving forward, and the state of PHP module compatibility.
Room: Zurich
When: Conference Day 3: May 27th, 10:30a - 11:30a
Junade Ali

Junade Ali

CloudFlare

Bio:
I have used PHP throughout my career, from my apprenticeship, to building advanced cryptography solutions for large scale companies and being Lead Developer at one of the UK's largest digital agencies. Nowadays I work to use PHP to build highly resilient architectures to work with roadside embedded systems vital for monitoring and improving traffic flow. I am also currently writing a book on PHP Design Patterns for Packt Publishing and doing academic research in Computer Science.
Session
Intermediate
Better Security Delivered Faster: TLS with HTTP2
Despite its flaws, transport layer security, the successor to SSL, provides a useful cryptographic layer to secure communications. However, it is often configured badly. In this talk, I will demonstrate to developers and IT professionals how to implement HTTPS securely with HSTS and HPKP while yielding the performance benefits of HTTP2. By the end of this talk, listeners will be familiar with implementing secure communications with Apache and Nginx.
Room: Zurich
When: Conference Day 1: May 25th, 3:30p - 4:30p
Tutorial
Intermediate
Reducing Technical Debt with Design Patterns
Software design patterns provide developers ways to avoid common recurring issues in code structure, but far too often, PHP developers avoid them. Too many developers cobble their code together with too much technical debt. In this tutorial session, I will introduce developers to core design patterns and discuss how they can be used to reduce technical debt alongside future proofing code by lowering the occurrence of anti-patterns.
Room: Matterhorn
When: Tutorial Day: May 24th, 9:00a - 12:30p
Katie McLaughlin

Katie McLaughlin

Ambiata / Linux Australia

Bio:
Katie has worn many different hats over the years. She has previously been a software developer for many languages, systems administrator for multiple operating systems, and speaker on many different topics. When she's not changing the world, she enjoys making tapestries, cooking, and yelling at JavaScript and its attempt at global variables.
Session
Beginner
JavaScript is Awe-ful
JavaScript: The language developers love to hate. It is full of "bugs," "whats," "why would you do thats," and other annoyances; however, it is the most-used language in the world in browsers and on servers. If it's so powerful, why do developers hate it so? We will discuss some of its eccentricities, the power JavaScript can give, and how to wield it responsibly.
Room: Matterhorn
When: Conference Day 2: May 26th, 10:30a - 11:30a
Session
Beginner
Build a Better Hat Rack: All Contributions Welcome
By default, we view an open-source contributor as a person that contributes code. But what about all the other tasks in the software development lifecycle, such as documentation, code review, marketing, and support? So much work happens without proper acknowledgement. Discover how every little bit helps and learn how to find and acknowledge these contributions.
Room: Versailles Ballroom
When: Conference Day 1: May 25th, 10:30a - 11:30a
Kirsten Hunter

Kirsten Hunter

Akamai Technologies, Inc.

Bio:
Kirsten Hunter is an unapologetic hacker and passionate advocate for the development community. Her technical interests range from graph databases to cloud services, and her experience supporting and evangelizing REST APIs has given her a unique perspective on developer success. In her copious free time she’s a gamer, fantasy reader, and all around rabble-rouser. Code samples, recipes, and philosophical musings can be found at http://www.princesspolymath.com
Session
Intermediate
Becoming a Polyglot
In this session, I will demonstrate a simple backend API with a javascript front end in Ruby, Node, Python, and PHP. I will use appropriate languages and idioms in each of the languages to teach attendees how to parse what is happening in code they see.
Room: Matterhorn
When: Conference Day 1: May 25th, 3:30p - 4:30p
Session
Beginner
Irresistible APIs
Web APIs (such as REST) are relatively simple to implement, which has led to many ill-conceived APIs out in the world. Creating APIs that make developers jump for joy is a goal we should all have. This session outlines a process for API development that will result in a better-designed product that is much more likely to succeed.
Room: Versailles Ballroom
When: Conference Day 2: May 26th, 3:30p - 4:30p
Marcus Bointon

Marcus Bointon

Synchromedia Ltd, Radically Open Security

Bio:
I work on smartmessages.net, support 1CRM, maintain PHPMailer and write for Radically Open Security. I'm a committer for the Less CSS meta-language, contribute to many other OSS projects. I'm a Linux sysadmin and MySQL DBA. I've spoken at technical conferences in London, Barcelona and Amsterdam. I live in the French alps with my wife, kids, skis and bikes!
Session
Intermediate
Deploying IPv6
Many developers are stuck in the world of old-school IPv4 because it is an easy, comfortable place to be! However, IPv4 is not long for this world. Major network allocations have already run dry, and broadband and 4G mobile networks are steadily expanding the availablility of native IPv6 connectivity. This talk covers the basics of understanding IPv6, what you need to do to get your services working on IPv6, and the changes you need to make in your PHP apps and related services to accomodate IPv6.
Room: Alpine 1
When: Conference Day 3: May 27th, 10:30a - 11:30a
Short Talk
Data Protection: US vs EU
Since Edward Snowden's revelations about U.S. security agencies, data protection and privacy regulations in the EU have come under scrutiny. The collapse of the safe harbour agreement caused major upset, and further EU judgments are likely. Some are campaigning for more access for security services, while others want greater protection for civil rights. What does this mean for developers? What should U.S. companies do to ensure compliance with EU regulations and your users' rights?
Room: Versailles Ballroom
When: Conference Day 2: May 26th, noon - 12:30p
Matthew Turland

Matthew Turland

When I Work

Bio:
Matthew Turland has been working with PHP since 2002. He has been both an author and technical editor for php|architect Magazine, spoken at multiple conferences, and contributed to numerous PHP projects. He holds the PHP 5 and Zend Framework ZCE certifications and is the author of "php|architect's Guide to Web Scraping with PHP" and co-author of SitePoint's "PHP Master: Write Cutting-Edge Code." In his spare time, he likes to bend PHP to his will to scrape web pages and run IRC bots.
Session
What Makes a Great Developer?
Regardless of our technical specialization, level of seniority, or current job, we all want to be the best developers we can be. But how do we know if we're improving or even what we need to improve? In this talk, we'll discuss the crucial knowledge, values, skills, goals, and challenges you should consider pursuing on your own path to being a great developer.
Room: Versailles Ballroom
When: Conference Day 3: May 27th, 9:00a - 10:00a
Session
Intermediate
Effective Redis for PHP Developers
Redis is a key-value store that has carved out a role for itself as a data structure server. If you use it only to cache simple values, you are tapping into a mere fraction of its power. This presentation provides an introduction to Redis, the Predis client library, and the related data structures Redis supports and discusses when it is best to use them. No computer science background is necessary; data structures are presented in understandable terms with practical examples.
Room: Matterhorn
When: Conference Day 2: May 26th, 3:30p - 4:30p
Michael Heap

Michael Heap

DataSift

Bio:
Michael is a fixer, working mainly with with PHP/Go/MySQL and doing bits of server administration on the side, he goes where things need working on. Currently, he's a member of the platform team at Datasift, working as part of a team that processes and augments various incoming data sources (including the Facebook firehose) before redistributing it to customers.
Session
Beginner
Code Archaeology: Becoming Indiana Jones
Code archaeology is one of the most important skills you will ever learn as a developer. How many times have you been thrown into legacy projects with no environment setup, no documentation, and little support from coworkers? The ability to hit the ground running on new applications is a sought-after skill for many employers. In this talk, we will take an open-source project that we have never seen before and work through the steps required to get it up and running so we can start contributing today.
Room: Matterhorn
When: Conference Day 3: May 27th, 9:00a - 10:00a
Session
Intermediate
Logging: Your New Best Friend
Logs are not just used when things go wrong. They also help you keep track of what is going on within your app. We will look at how you can add helpful messages throughout your codebase and leave them there, even in production! We will cover common logging strategies, log aggregation, and how to efficiently work with your logs to get the data back out. We will also look at Graphite, which can help work out what actually happened by correlating logs with peaks/drops in other systems.
Room: Matterhorn
When: Conference Day 1: May 25th, 2:00p - 3:00p
Session
Intermediate
Profiling Your PHP Application
Making an application scale is generally seen as something that only the most magical of developers can do, but it is easy once you have the correct tools. Fortunately for us, these tools are freely available online! In this talk, we will look at a few available options to learn what our applications are actually doing, help identify bottlenecks, and fix them so we can move on to the most important part of any project: delivering features.
Room: Versailles Ballroom
When: Conference Day 2: May 26th, 2:00p - 3:00p
Samantha Quiñones

Samantha Quiñones

AOL, Inc

Bio:
Samantha Quiñones is a polyglot hacker and systems architecture expert. Over the course of her 17-year career, she has built software and led teams for some of the largest names in financial services and digital media and is currently a Principal Software Engineer on the content platform team at AOL. Samantha is an accomplished writer and frequent speaker at technology conferences, a participant in the White House Data Jam on STEM Workforce Quality, Flow, and Diversity and has been recognized by the Huffington Post as one of the top Latinas in American Media.
Keynote
The New Revolution
In 1969, researchers at Stanford and UCLA collaborated to transmit the first message over what would become the Internet. In just five decades, the repercussions of that moment have echoed through every atom of society. The world is evolving at a pace unprecedented in human history as we use technology to change how we think, learn, communicate, and even how we understand ourselves. Let’s take an inside look at how the fusion of media and technology is reinventing human interaction and the role that we, as engineers and technologists, must play in this important process.
Room: Versailles Ballroom
When: Conference Day 2: May 26th, 9:00a - 10:00a
Sandy Smith

Sandy Smith

php[architect]

Bio:
Sandy Smith lives in the Washington, DC area, and has been a web developer for an eternity in the web world: 15 years. He’s spent all but a year of that time consulting, usually for nonprofits and government, working both in-house and in an agency. He’s worked with a hundred or so organizations in various capacities, from basic development to strategic advice to multi-tier applications. He’s the leader of the DCPHP User Group, a member of the php[architect] team, and really committed to helping new developers get up and running in PHP effectively.
Training
Beginner
PHP Essentials (2 days)
Ready to learn PHP? Beginning down the path of becoming a PHP developer whether brand new to programming or moving over from another langauge? This two-day long course will teach you all the basics and get you writing your very first PHP program, accelerating your learning of PHP. It will cover: Basic PHP Structure, Strings, Arithmetic, Variables, Conditional Statements, Loops, Functions, Cookies, Sessions, HTML Forms, MySQL Database usage, and the Basics of Object Oriented Programming. (Lunch will be provided)
Room: Lugano
When: Training Day: May 23rd, 9:00a - 5:30p
Shaunak Kashyap

Shaunak Kashyap

Elastic

Bio:
Shaunak Kashyap has been working as a backend developer in the Internet software industry for over a decade. Some of his more interesting past gigs include building a poker search and analytics engine; a system for tracking and analyzing the jail population in Louisville, Kentucky; and ground software to command and control earth-imaging satellites. Today, Shaunak works as a Developer Advocate at Elastic, the makers of Elasticsearch, Logstash and Kibana.
Tutorial
Beginner
Hands on Elasticsearch
You know the modern paradigm for finding information is searching. You want your users to have the power to search your web site. How do you achieve this? Enter Elasticsearch. In this workshop, we will start by learning basic terminology and concepts relevant to Elastisearch and searching in general. Armed with that knowledge, we will get our hands dirty by setting up an Elasticsearch cluster and performing various types of search queries on it. We will also cover aggregations and other relevant topics.
Room: Alpine 1
When: Tutorial Day: May 24th, 2:00p - 5:30p
Steve Grunwell

Steve Grunwell

10up

Bio:
Steve Grunwell is an Engineering Manager at 10up, a World-class web design + development consultancy. Specializing in WordPress and application development he has worked with brands and organizations including TED, Microsoft, Xylem, Elmer’s, and Experience Columbus. When he’s not writing software he enjoys hiking, music, coffee roasting, and writing about writing software on his blog.
Session
Professional Development, Professional Developers
The best and worst part about our chosen vocation is that there's an endless amount of stuff to see, learn, and try but not enough time in which to do so. In an industry in which "the new hotness" changes every week, what hope does a developer have of keeping up? How do we continue to grow as professionals without getting totally overwhelmed with information? We'll touch on the topics of stress, education, humility, and more.
Room: Alpine 1
When: Conference Day 2: May 26th, 5:00p - 6:00p
Session
Intermediate
Building for the PHP Command Line Interface
Executing PHP from the command line enables us to interact with our applications in new and interesting ways, from performing site maintenance to scaffolding new projects. CLI tools such as WP-CLI, Artisan, and Drush make it easy to interface with our code without ever opening a browser. We will discuss characteristics of good CLI scripts, strong use cases for writing custom commands, and write several CLI programs across different platforms.
Room: Alpine 1
When: Conference Day 3: May 27th, 9:00a - 10:00a
Stéphane Boisvert

Stéphane Boisvert

Automattic

Bio:
Stéphane works for Automattic, the company behind WordPress.com as a VIP Engineer, working as a team lead for WordPress.com VIP he helps some of the world largest sites stay secure and optimized. He was formerly a senior adviser for the Canadian Federal Liberal party for 4 years leading the party growth in online data acquisitions and donations. He's been working with PHP since 2003.
Session
Intermediate
WordPress Code Performance
Tired of listicles about how to optimize your WordPress site that suggest a caching plugin and a CDN? This talk will dive into the internal WordPress structure to discuss what is slow, why it is slow, and how you can write good WordPress code that performs well enough to handle billions of pageviews.
Room: Zurich
When: Conference Day 1: May 25th, 10:30a - 11:30a
Terrence Ryan

Terrence Ryan

Google

Bio:
Terry Ryan is a Developer Advocate for the Google Cloud Platform team. He has 15 years of experience working with the web - both front end and back. He wants to bring web developers to the Google Cloud Platform. Before Google, he worked for Adobe and the Wharton School of Business. He also wrote Driving Technical Change for Pragmatic Bookshelf, a book that arms technology professionals with the tools to convince reluctant co-workers to adopt new tools and technology.
Session
Advanced
Containing Chaos with Kubernetes
You have made the move to containers and you can now write Dockerfiles for everything. How do you manage all those containers? Have you found that you traded managing individual machines for managing individual containers? Kubernetes, an open-source container orchestration engine, could be the answer to your problem. We will explore Kubernetes and learn how to use it to run massive collections of containers that fix their own problems and allow you to move your setup wherever you need to be.
Room: Alpine 1
When: Conference Day 2: May 26th, 2:00p - 3:00p
Tim Lytle

Tim Lytle

Nexmo & timlytle.net

Bio:
Tim has been a contract developer for the past 10 years, and now is a Developer Evangelist at Nexmo. Having worked on API integration and custom applications, Tim enjoys the Zend Framework, Doctrine2, and well-documented APIs. He’s also the organizer of the Lehigh Valley PHP Meetup.
Session
Intermediate
Robust Second-factor Authentication with PHP
Single-use codes delivered by email and SMS, mobile phone verification using automated phone calls and installed applications, or standalone physical devices—there's more than one way to perform second-factor authentication (2FA). There are benefits—and downsides—to each. Learn how each one works and what is best for you and your users. Avoid some common mistakes when rolling out 2FA and learn how you can add one or many of these methods to your application's login flow.
Room: Zurich
When: Conference Day 1: May 25th, 5:00p - 6:00p
Todd Ross

Todd Ross

Answers Corp

Bio:
Over 10 years leading QA and release engineering in large scale php environments. Conquering difficult problems of how to move quickly without affecting our users and company revenue. I also enjoy spending my free time cleaning up years of tech debt in php code.
Session
Intermediate
Deploying Large-scale PHP
How do we release twice a day without affecting our 6 million daily visitors? This talk will walk you through our twice-daily deployments, including slow rolls, rollbacks, and fast rolls. We also use an extensive amount of automation and monitoring to make sure releases do not affect key indicators like revenue. The talk will discuss close with a discussion of the continuous integration and deployment techniques and technologies we have adopted, such as Jenkins.
Room: Zurich
When: Conference Day 2: May 26th, 3:30p - 4:30p