The Northeast PHP Conference is a community conference intended for networking and collaboration in the developer community. While grounded in PHP, the conference is not just about PHP. Talks on web technology, user experience, and IT management help PHP developers broaden their skill sets. We are entirely non-profit. Our organizers and and speakers volunteer their time to create a community event experience on par with the big technology conferences. We value the participation of each member of the PHP community, so follow @NEPHP on Twitter for updates and don’t miss out!

Wednesday 9th August 2017

Containers, Kubernetes, and OpenShift Workshop
Workshop by Grant Shipley in Development (6 hour)

In this lab, we'll prepare web and application developers to build applications using containers, Kubernetes, and OpenShift. We’ll start with a short introduction to containers and Kubernetes, which are the foundation of OpenShift. Using hands-on exercises, we'll walk you through a variety of applications and uses cases for OpenShift. How about seeing how easy it can be to deploy your pre-built containers? And how health checks to OpenShift can heal your application? We'll dig in to build containers just using a git repository. Want to see easy application scaling? No problem. Wish you could do A/B deployment? Your wish is our command. And finally, we'll show you a complete microservice application with database and polyglot back-end services. You bring your curiosity and willingness to code, and we'll teach you all you need to go home and start building pure awesomeness on OpenShift.

Thursday 10th August 2017

Opening Keynote
Keynote by Samantha Quinones in Soft skills (50 minutes)


Cloud-First Development with AWS and PHP
Talk by Jonathan Eskew in Agile (50 minutes)

When writing prototypes and testing new ideas, it's tough to strike the right balance between relying on hosted services and running them yourself. Cloud-based services like S3 and SQS can help your application scale and keep costs down, but the instant feedback you get from running all your own dependencies can speed up testing and development. In this talk, we'll explore how to avoid that trade-off by building for the cloud without giving up the rapid feedback loop that comes from running everything on your laptop. In particular, we'll look at how to build a web app that uses battle-hardened and scalable AWS services like S3, SQS, Amazon Aurora, Cognito, and Lambda while keeping a local-only environment for experimentation and rapid development. We'll achieve this using some popular abstraction libraries like FlySystem, Eloquent, and Laravel's authentication and queueing components, but we'll also address using alternatives or writing your own. You should walk out of the room with examples and strategies for building for scale without compromising the rapid feedback loop of PHP development.

Containing Quality
Talk by Adam Culp in Testing (50 minutes)

Static analysis, unit testing, compatibility, and coding standards are all important metrics to monitor and perform regularly. However, the time to set up the various tools takes time and patience to set up and run...until now. We'll see how using pre-configured Docker images make it easy to have PHP code quality tools at our fingertips, ready to run or automate on a moments notice. Then will share tips to run the various tools, and/or create automation around running them regularly.

Browser Serving Your Web Application Security
Talk by Philippe Gamache in Security (50 minutes)

One important concept in web application security is defense in depth. You protect your server, your network, your database and your application, but what about the user browser? Can it be done? Yes! Several new technologies and protocols to assist security has been added to the browsers. Several should be added, activated and configure from your web server or web page. In this presentation we will explore these technologies and learn how to use them. You’ll learn about the Robots meta tags (for crawlers indexing), Browsing Compatibility, XSS and Clickjaking Protection, SSL/TLS Control, and Content Security Policy.

Building, deploying, and scaling with Docker and Source-To-Image Projects
Talk by Grant Shipley in Development (50 minutes)

So, you want to use Docker and Kubernetes for your PHP development but don’t want to spend your days writing Dockerfiles and running Docker builds? In this talk you will learn how to deploy and manage applications using docker, kubernetes, and the open source OpenShift projects to truly simplify your development flow. Diving a bit deeper, we will learn how to use the Source 2 Image project to automatically build and deploy docker images straight from source code. After that, we will take it up a notch by learning how to add databases and scale the application to achieve fast response times for your users. At the conclusion of this talk, we will have built a geo-spatial application backed with a MongoDB database as well and understand the workflow to build, deploy, scale and manage applications deployed using Docker, Kubernetes, and OpenShift. And just for giggles, we will also learn how to do A/B and Blue / Green deployments.

The Road to PHP 7.1
Talk by Michelangelo van Dam in Development (50 minutes)

In December 2015 PHP 7.0 was released, marking a new milestone for PHP and web application developers. Looking at the changelog and removed functions we thought all was going to be easy to migrate to PHP 7.0. Unfortunately many of the extensions and tools we use weren't ready yet. In December 2016 PHP 7.1 was released and the urgency to update became real as PHP 5.6 was nearing end-of-life. In this talk I describe the analysis and the challenges we faced migrating towards PHP 7.1 so you can learn how to defeat those challenges if you plan to migrate too.

My journey to the center of PHP
Talk by Sammy Kaye Powers in Soft skills (50 minutes)

"I don't know C!", is probably one of the most common excuses that us PHP nerds give for not contributing to PHP source. And top it off with all the overly-publicized drama surrounding the PHP internals mailing list, most user-land PHP developers don't want to touch PHP source with a ten foot pole. In this talk I tell my story of how a plain-old user-land PHP nerd who, "doesn't know C," found himself drawn to PHP internals like a bug to a light. I was meet with a lovely helpful community of individuals who mentored me the whole way to making PHP better. This talk will encourage and inspire you to join me on an epic journey to the center of PHP.

13:30 Advanced Debugging Techniques
Talk by Patrick Allaert in Other (50 minutes)

Step-by-step debugging with Xdebug is no secret for you? Perfect then, because we won’t talk about it. We will rather see tools that let you know what’s really happening in your PHP code, like the phpdbg debugger, process tracing tools like: strace, ltrace, the Linux inotify mechanism, tcpdump/wireshark for network analysis or MySQL Proxy for real time SQL debugging and monitoring!

Basic PHP Database Programming
Talk by Dave Stokes in Database (50 minutes)

Database are persistent stores of information but often the syntax of PHP combines with oddities of database to confuse the heck out of novice developers. This presentation will take novice PHP developers through the steps need to store and retrieve data into a database. MySQL will be used for examples but the core knowledge will apply to other databases. Then this foundation will be used to cover efficient use of a database, avoiding the N+1 problem, and how to avoid SQL injection.

14:30 What Rails Can Teach PHP About Building APIs
Talk by Phil Sturgeon in API (50 minutes)

As somebody who's built APIs with PHP since 2009, and built APIs with Rails for the last two years, the contrast in some of the tooling available is mind-blowing. When it comes to factories for generating test data, spec-driven testing with tools like RSpec, mutation testing, simplistic state machines, serialization and deserialization in JSON-API, REPL debugging with breakpoints, file upload handlers, etc., Ruby (and Rails) very often has a strong lead in maturity of the tooling. PHP does have a few of these tools, but due to years of fractured development as people build framework-specific alternatives, they are not as mature as they could be. Other tools are just entirely missing in PHP land. Now that PHP has got past building framework-specific SF Bundles, Laravel Bundles, CI Sparks, ZF2 Modules, etc, and is moving to Composer-based framework agnostic code, these tools are starting to crop up and mature. While PHP is learning how to work together on powerful, agnostic, shared code, let's look at some of the tooling available in Ruby, to see what inspiration we can draw from their experiences. There is a lot of great Ruby code built for developing and testing APIs, which PHP-land can learn a lot from!

Emotional Intelligence for IT
Talk by Wendy MacIntyre in Soft skills (50 minutes)

"Social" or "emotionally engaged" are not always terms that first spring to mind when thinking of information technology professionals. But what if you have to work in a team, want to step into a management position, or just want to make connections with others? Developing Emotional Intelligence is possible and may turn the key to new opportunities and professional growth. In this session, you will learn what emotional intelligence is, how it can work for you in the workplace, and how you can develop it. Using the EQ-i 2.0 model of Emotional Intelligence has helped individuals and teams in understanding one's self and others, leading to improved trust, communication and productivity overall. Wendy is a Chartered Professional in Human Resources with more than 15 years experience in HR, and is certified in the EQ-i 2.0(trademark symbol to be inserted) assessment and coaching. She is the owner of resolveHR, located on PEI. Let's face it, IT people are not stereotyped as being the most social people in the workplace. And that is very okay! But what if you have to work in a team, want to step into a management position, or just want to make connections with others? Developing Emotional Intelligence is possible and may turn the key to new opportunities and professional growth. In this session, you will learn what emotional intelligence is, how it can work for you in the workplace, and how you can develop it. Using the EQ-i 2.0 model of Emotional Intelligence has helped individuals and teams in understanding one's self and others, leading to improved trust, communication and productivity overall.

Learning Machine Learning
Talk by Joel Lord in Other (50 minutes)

From chatbots to your home thermostat, it seems like machine learning algorithms are everywhere nowadays. How about understanding how this works now? In this talk, you will learn about the basics of machine learning through various basic examples, without the need for a PhD or deep knowledge of assembly. At the end of this talk, you will know what the Naive Bayes classifiers, sentiment analysis and basic genetic algorithms are and how they work. You will also see how to create your own implementations.

Turn your house into a giant robot using web services!
Talk by Jon Schwartz in Other (50 minutes)

Turning your house into a smart home is easier than ever these days. There are tons of off the shelf solutions to get even a novice up and running into the future we were promised from Star Trek. However, as tinkerers, we desire more granular control of our domain. In this talk, I will go over how to set up devices, interface with them using REST apis, and build a web service that can be consumed in multiple ways to allow functionality to happen both when you want it to and automatically.

Friday 11th August 2017

09:00 A No Nonsense GraphQL and REST Comparison
Talk by Phil Sturgeon in API (50 minutes)

GraphQL is incorrectly considered by some to be a "replacement" to REST. GraphQL is a newer concept, being released by Facebook publicly in 2015, whereas REST was a dissertation published by Roy Fielding in 2000, popularized by companies like Twitter (quite inaccurately) in 2006. This article aims to cover a few notable differences, and make the following points: 1. REST and GraphQL are totally different 2. GraphQL isn't a magic bullet, nor is it "better" 3. You can definitely use both at the same time 4. GraphQL is dope if used for the right thing

Getting JSON Data In and Out of MySQL
Talk by Dave Stokes in Database (50 minutes)

MySQL 5.7 has a native JSON data type for storing JSON formatted data. This session covers how to get JSON into MySQL, how to get data in JSON format out of MySQL, and the supporting functions so you can update/create/delete or get meta information about this data. And learn about the new MySQL document store so those who do not know Structured Query Language (SQL) can also easily use a database. You will leave this session ready to tackle any JSON and MySQL issue you may have. Slides at

Writing tests for PHP source
Talk by Sammy Kaye Powers in Testing (50 minutes)

As you might have already heard from a grumpy individual, adding more tests to your codebase is crucial to its stability over time. This talk isn't about adding tests to your PHP codebase, but adding tests to the PHP language itself. And the best part is, all the tests are written in PHP so you don't even have to dust off that old C book from college. In this talk I will show you how to find untested parts of the PHP source code, how to write a test for the untested feature and how to submit your tests to PHP internals. Not only will you be making PHP more stable and reliable, but there's a good chance the tests you write will give you a deeper understanding of PHP; knowledge you can use to improve your own codebases. Not to mention you'll be able to call yourself an internals contributor. Come on in! The water's fine!

10:00 PHP Data Structures
Talk by Patrick Allaert in Other (50 minutes)

We all have certainly learned data structures at school: arrays, lists, sets, stacks, queues (LIFO/FIFO), heaps, associative arrays, trees, … and what do we mostly use in PHP? The “array”! In most cases, we do everything and anything with it but we stumble upon it when profiling code. During this session, we'll learn again to use the structures appropriately, leaning closer on the way to employ arrays, the SPL and other structures from PHP extensions as well. The impact that PHP 7 should have on data structures will be introduced as well.

Managing Imposter Syndrome
Talk by Ryan Welcher in Soft skills (50 minutes)

Imposter syndrome is a common issue within the development community. Most developers have dealt with it in varying degrees at some point in their careers. In this talk, I will explore the topic of Imposter Syndrome. Along the way, I will share my own struggles with it and open a dialogue on how to identify and overcome this potentially debilitating issue.

Agile Team Development with Zend Studio, Bugzilla, and MyLyn
Talk by Peter MacIntyre in Development (50 minutes)

I will cover the coding style of Agile development or Extreme Programming within the context of these mentioned tools.The following outline is proposed: 1-Summary of Agile concepts 2-Introduction to MyLyn and its benefits 3-Introduction to Bugzilla 4-MyLyn's uses within Zend Studio 5-Activating a task in Zend Studio 6-Looking at the Task Preferences 7-Overall summary/best practices Agile (Extreem) Development is gaining in popularity. This session will show how Zend Studio for Eclipse can be used to that end. Integration with Bugzilla and Mylyn will be explored as well. Covering the latest team development methodologies with practical use of real development tools.

11:00 Empathy As A Service: Supporting Mental Health in the Tech Workplace
Talk by Nara Kasbergen in Soft skills (50 minutes)

At any given time, 1 in 5 Americans are living with a mental illness, such as depression, bipolar disorder, generalized anxiety disorder, substance use disorder, burnout, or ADHD. Statistically, all of us working for an organization with 5 or more employees have at least one colleague who is affected. At the same time, the tech industry is often characterized by high stress, long hours, workplace pressure to be available by phone and e-mail after-hours or sometimes even while on vacation, social pressure to constantly network and attend conferences and make a name for yourself, and the precarious balance between trying to do good by contributing to open-source and maintaining some semblance of free time that doesn't involve coding. Given how this demanding environment increasingly blurs the line between our professional and personal lives, how can we ensure that the most vulnerable among us aren't being left behind? As a community, the single most damaging thing we can do is continue to treat mental health as a personal shortcoming that can't be talked about openly. We shouldn't think of it as "somebody else's problem"; the 4 in 5 of us who don't currently have mental health disorders must do our part to help end the stigma. This talk will begin with an overview of key statistics about mental illness, followed by the efforts of the non-profit organization Open Sourcing Mental Illness to gather more data about mental health in the tech industry, the ALGEE action plan taught by the Mental Health First Aid training course, and finally conclude with ideas and strategies for making our tech workplaces more accommodating and inclusive.

Testing Complex Applications for PHP7
Talk by Adam Baratz in Testing (50 minutes)

Wayfair is one of the world's largest online destinations for the home. Our storefront is a very large PHP application -- 3.5M LoC interacting with a wide array of extensions -- that serves 2M daily visitors. So we were delighted when our upgrade to PHP7 went without a hitch. It worked so well because of a test plan that covered a wide range of strategies and tools. This case study will combine a walkthrough of this project with a practical tour of PHP testing tools, from PHPUnit to GDB. Engineers are most familiar with unit tests and browser tests, but there's a much wider range of tools available for validating software. I'll cover the pros, cons, and applications of a dozen tools that work well with PHP applications. They'll be presented in context of a real application so people can get a good sense of where they should invest.

13:00 OWASP Top 10 Proactive Controls 2016
Talk by Philippe Gamache in Security (50 minutes)

Insecure software is undermining our financial, healthcare, defense, energy, and other critical infrastructure worldwide. As our digital, global infrastructure gets increasingly complex and interconnected, the difficulty of achieving application security increases exponentially. We can no longer afford to tolerate relatively simple security problems. The goal of the OWASP Top 10 Proactive Controls project is to raise awareness about application security by describing the most important areas of concern that software developers must be aware of. We encourage you to use the OWASP Proactive Controls to get your developers started with application security. Developers can learn from the mistakes of other organizations.

Let's Get Physical
Talk by Joel Lord in Javascript (50 minutes)

Did you know that your web sites can now talk to actual bluetooth devices around it? With new initiatives like the Physical Web and new APIs like Web Bluetooth, it's now easier than ever to interact with hardware using nothing but Web technologies. In this talk, you will learn how to broadcast URLs to nearby devices and how to control hardware via bluetooth. All of this using plain old vanilla Javascript.

Leveraging a Distributed Architecture to Your Advantage
Talk by Michelangelo van Dam in Development (50 minutes)

The days of a "simple" LAMP stack are behind us. We now rely on different types of technologies, applications and services to run our web based applications. With "the cloud" we have learned how to distribute our operations, but are we resilient when these cloud services are not available? We have all heard about the major outages of Amazon and Azure in the past and many online services were impacted by those outages. So how can you protect yourself against being "offline" for hours or days and what are the tools you can use to protect yourself against it? Learn how we protect our customers with distributed systems (cloud and on-prem) to mitigate outages and stay online even when the lights go out.

Closing Keynote
Keynote by Adam Culp in Other (50 minutes)

Humans learn most effectively through pain, like being shocked by a power outlet or touching a hot iron. The same reaction can be found in technology, but how can we attribute this to programming while minimizing the most painful mistakes? Adam Culp will share some life experiences that contributed to his ongoing journey to become a professional developer, and highlight techniques used to reduce the pain and still reap the benefits. This keynote encourages attendees to aspire to achieve more in their lives.