Cascadia PHP is a 2 day PHP conference in the heart of Portland Oregon.

Friday 20th September 2019

09:00 The Knowledge Grows
Keynote by Beth Tucker Long in Multnomah Falls (50 minutes)

No Description

Machine Learning: A Beginner's Practical Guide
Talk by Michael Moussa in Crater Lake (50 minutes)

Do you have an advanced degree in mathematics or data science from a prestigious university? Me neither! That doesn't have to put machine learning beyond our reach, though. While the underlying theory can be extremely complicated, the practical applications are very approachable for us as developers. If you've been looking for an easy way to start dabbling in ML, this session is for you! Join me as I give an overview of ML and walk through the different types of algorithms available with some practical examples. We'll also see how we can take advantage of some of the various AWS machine learning products in order to quickly add these capabilities to our applications.

Becoming a Version Control God
Talk by Michael Price in Multnomah Falls (50 minutes)

This is a discussion about the ins and outs of version control, day to day best practices and how they can lead to a smoother and more predictable software release cycle. Collectively we as developers can all positively affect the open source ecosystem by adopting practices such as atomic commits, conventional commits, and semantic versioning.

MongoDB Schema Design Patterns
Talk by Ken W. Alger in Willamette Falls (50 minutes)

At this point, you may be familiar with the design of MongoDB databases and collections – but what are the frequent patterns you may have to model? This presentation will add knowledge of how to represent common relationships (1-1, 1-N, N-N) in MongoDB. Going further than relationships, this presentation identifies a set of common patterns, in a similar way to what the Gang of Four did for Object Oriented Design. Finally, this presentation will guide you through the steps of modeling those patterns in MongoDB collections. In this session, you will learn about: How to create the appropriate MongoDB collections for some of the patterns discussed. Differences in relationships vs. the relational database world, and how those differences translate to MongoDB collections. Common patterns in developing applications with MongoDB, plus a specific vocabulary with which to refer to them.

11:30 Websockets and Event-driven Programming using ReactPHP and Amp
Talk by Steve Meyers in Crater Lake (50 minutes)

Modern browsers support a standard called Websockets, which allows persistent connections between a browser and a server. We'll discuss how to implement Websockets with your client-side Javascript talking to your server-side PHP, while comparing the ReactPHP framework to the Amp framework.

Converting Your Dev Environment to a Docker Stack
Talk by Dana Luther in Multnomah Falls (50 minutes)

Heard a lot about docker but not sure where to start? In this presentation we will go over the simplest ways to convert your development environment over to a docker stack, including support for full acceptance testing with Selenium. We’ll then go over how to modify the stack to mimic your production/pre-production environment(s) as closely as possible, and demystify working with the containers in the stack.

Make styling a breeze with Tailwind CSS
Talk by Jason McCreary in Willamette Falls (50 minutes)

Although I love seeing an application take shape, I hate styling. It’s so tedious to create all the custom styles and structure the markup. But I have to say, Tailwind has made it a lot better. It’s utility-first design aligns more closely to my developer-brain. Come take a look at this simple, yet powerful framework.

Empathy as a Service: Supporting Mental Health in the Tech Workplace
Keynote by Nara Kasbergen (50 minutes)

At any given time, 1 in 5 adults 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."

14:30 Code Review: For Me & You
Talk by Steve Grunwell in Crater Lake (50 minutes)

On the surface, the idea of code review is a no-brainer: why wouldn’t we want a second set of eyes on our code, especially before deploying to production? As we peel back the layers, however, we find that the topic of code review is much more nuanced. How detailed should the review be? Who is qualified to perform the review (hint: it’s not just senior developers)? Can we afford to take another developer away from their project to review this one? What steps can we take to ensure reviews are constructive, rather than demoralizing? Attendees will gain deeper insight into some of the arguments for and against systemic, peer code review, as well as pick up some useful tools to make code review a natural part of their teams’ workflow.

Load Testing Your App
Talk by Ian Littman in Multnomah Falls (50 minutes)

Want to find out which pieces of your site break down under load first, so you know how you'll need to scale before your systems catch fire? Load testing answers this question, and these days you can simulate full user behavior in a load test, rather than merely hammering a single endpoint. In this talk, we'll go through a number of conceptual points that you won't want to miss in order for your load tests to perform their intended purpose. Then we'll jump into implementation details, using the K6 load test tool to build a load test that exercises an application in a way that's similar to what we'd see in real life.

Hacking Wordpress - A Primer for PHP Programmers
Talk by Eli White in Willamette Falls (50 minutes)

I spent most of my career writing large custom in-house solutions. To me, WordPress was the software that ran my blog, nothing more. Suddenly I found myself as a WordPress consultant and inheriting a codebase completely built on top of it! I was amazed as I dove in, at how easy it is in WordPress to build any custom functionality you want with even basic knowledge of PHP. You too can use WordPress as a full blown development framework.

Algorithms in Context
Talk by Margaret Staples in Crater Lake (50 minutes)

The PHP community is rich with self taught developers from a wide variety of backgrounds because, thanks to efforts from that same community, it is one of the most accessible languages ever created for developing on the web. As a result, many of us are well into our professional lives before we integrate computer science concepts, like algorithms, into our knowledge base. This talk will look at several such algorithms, what they are useful for, but also their limitations and how we can use a clear understanding of the real world context in which we’re using them to create code that performs and serves our users better than the algorithms alone could manage.

Modern and Secure PHP
Talk by Ben Edmunds in Multnomah Falls (50 minutes)

This is not the PHP of old. Learn what's changed in the PHP world over the last few years. Classes, objects, statics, traits, unit testing, composer, password hashing; it's a whole new ballgame. Learn what has changed in the PHP world over the last several years. We'll cover The newest PHP language features. Community efforts such as the PHP Framework Interoperability Group, Composer, and PHP the Right Way. How to secure your application using up to date techniques.

Confidently Testing WordPress
Talk by Steve Grunwell in Willamette Falls (50 minutes)

WordPress is a tightly-coupled system, representing over a decade and a half of ideas, decisions, technological shifts, and ideological struggles. There's a lot of history to be parsed and often the simplest task can have unintended consequences. Meanwhile, automated testing is one of the best ways to ensure software can be released regularly with high confidence and low risk of regressions. Sadly, the leap from "building WordPress plugins" to "building WordPress plugins with tests" is often viewed as a challenging hurdle. Luckily, there are tools to set up a test harness within an existing codebase with ease. This talk introduces the fundamentals of automated testing, especially within the context of WordPress. After developing an understanding why automated testing is so critical, attendees will learn how to begin testing their plugins and themes, using features found both in PHPUnit and the WordPress core testing framework, to build and release quality software.

Building World Class Developer Organizations
Keynote by Josh Holmes (50 minutes)

We are literally in the best industry in the world. Want proof? We create value by turning ones to zeros and vice versa. And almost all of us are incredibly passionate about programming and that creation of value. However, there’s a lot more to creating truly great software than passion and your favorite IDE. It’s about working well with in a team that is a high performing team that is at a company that gives them enough structure to keep them focused but doesn’t get in the way with the process. More of this is in your control than you might expect. We’ll talk about what you can do as an individual to lead through influence to create a high performing team and company culture.

Twilio Sponsored After Party in Multnomah Falls (4 hour)

Food and drinks provided by Twilio

Saturday 21st September 2019

09:00 Why Open Source?
Keynote by Larry Garfield in Multnomah Falls (50 minutes)

Open Source has largely eaten the Web. If you re working on the Web, you're using Open Source Software, somewhere. it's virtually impossible to avoid. That's because Open Source is a better, cheaper way to build software projects, and gets you lots of free help, too! Or at least that's the myth. Is it true, though? What actually makes Open Source tick? Is it really better? Why? Why should organizations engage with Open Source, especially when it's supposed to be free, dagnabbit! Let's take a step back and examine just what the benefits of Open Source really are, and why, and why Open Source is not a spectator sport.

Talk by Ian Littman, Adam Culp, Larry Garfield, Korvin Szanto in Crater Lake (50 minutes)

We will discuss the current state of PHP-FIG and PHP with actual FIG members Our panelists: - Adam Culp - Larry Garfield - Korvin Szanto - Ian Littman

Peeling Back the Magic: Modern PHP Without a Framework
Talk by Kevin Smith in Multnomah Falls (50 minutes)

As new programmers mature beyond their first simple PHP scripts, many immediately adopt a framework-specific way of development and find themselves unsure how to move forward when presented with an existing application not written in their favorite framework. In this talk, I'll use the latest PSR standards and packages from a variety of vendors to put together a simple bootstrap for a modern PHP application (based heavily on my tutorial Modern PHP Without a Framework). By peeling back that layer of framework magic, attendees will see what's going on under the hood and discover tools to better prepare them to take on any PHP project in the future.

Saving Babies' Butts with Vue.js and Symfony
Talk by Andrew Koebbe in Willamette Falls (50 minutes)

Vue.js can do some great things and can be really easy to use in small scale projects, but what about something full-sized like inventory tracking? Vue.js has the capability to build large scale applications using Vue routing, Vuex datastores, and Vue component files. Learn how all of these and Symfony API backend were used to provide HappyBottoms (Kansas City's diaper bank) a snappy front end to their custom (and open source) diaper inventory system.

11:30 Dev Parent
Talk by Alena Holligan in Crater Lake (50 minutes)

Do you struggle with “work-life balance”? Can you “have it all”? What does that even mean? Is it possible that parenting can make you a better developer? And being a developer can help you to be a better parent? Whether you have children or are considering children, we’ll explore the good, the bad and the wonderful rewards of parenting in tech while sharing real tools to navigate the parenting journey. You don’t have to give up yourself, or the things you really want, you can build a life that works for YOU. Full-time software engineer, conference speaker, leader of the Portland PHP User group, President of Cascadia PHP and Mom of three young children; Alena shares her own journey and what she has learned along the way, including having nine younger siblings. Find encouragement and tools for your own parenting journey.

Wrapping Legacy Apps to modernize your workflow
Talk by Kurtis S Holsapple in Multnomah Falls (50 minutes)

Are you stuck maintaining a legacy application and wish that you had the modern tooling that Laravel provides? In this talk I'll show how we went from a cowboy coded prod only PHP application stuck on a VPS with PHP 5.4, to an application wrapped in Laravel, bootstrapped with Terraform, tested with Selenium, and the bumpy road that got us there.

The Future of the Web is Low-tech
Talk by Eric Mann in Willamette Falls (50 minutes)

This session will cover use cases, user groups, and a few proposed techniques for making both content and publishing tools available to those without high-speed Internet, 3G/4G connectivity, or traditional desktop publishing tools. It will also delve into some of the emerging technologies that make content more accessible to those with limited access (and the controversy surrounding them). Attendees will achieve a deeper understanding of potential, unreached user demographics and the tools/techniques they can use to reach these groups.

When did you stop speaking up?
Keynote by Merline Raymond (50 minutes)

When did you stop speaking up? Was it when you were told you were too sensitive? Was it when Bill got credit for the idea everyone said sucked last week? When considering diversity and inclusion, when those generally not in the majority are invited to the table, they aren’t always heard. But how can we encourage diversity of thought? We must encourage thoughtful inclusivity of speakers. We will look at the ways that teams can encourage those who have been silenced before to speak up and how those that have been silenced can get their voice back.

14:30 Simplifying Infrastructure With Terraform
Talk by Ashley Hutson in Crater Lake (50 minutes)

In this day and age of technology we want services that can scale. Come learn how a developer learned and found simple ways to convert their infrastructure into code. Find components from the open source community to just simply building complex architectures that work cloud agnostic. Afterwards, learn how to integrate terraform with any build pipeline.

Putting legacy to REST with middleware
Talk by Adam Culp in Multnomah Falls (50 minutes)

We've all got legacy applications, and fear the daunting task of modernizing them. Let alone trying to leverage the modern way of going API first. But it's not as futile as you might think. With modern microframeworks geared toward middleware it can be a breeze. OK, now the truth: It is a terribly difficult job, and rife with pitfalls. But I will share how to do it in a step-by-step method that makes it much more approachable, and enable you to be a super hero.

Blazing fast websites with Gatsby
Talk by Preston So in Willamette Falls (50 minutes)

Thanks to the JavaScript renaissance, modern front-end development has never been easier. It’s changing the way we build websites, from the underlying back-end frameworks like Laravel and Symfony that characterize many PHP projects, to the way developers handle CSS and other presentational concerns in a JavaScript-powered front end. The emergence of the [JAMstack]( has revolutionized how websites are built, and the excitement surrounding this new architectural paradigm is palpable across the industry. Rather than using an often complicated JavaScript framework to build a website consuming a PHP back end, projects like Gatsby act as a web compiler to facilitate websites that are performant out of the box, agnostic to any web service or CMS, and maintain tenets of the open web such as semantic markup and web accessibility. [Gatsby]( is a free and open-source project with a rapidly growing community and ecosystem, with first-class support for common PHP-driven CMSs like Drupal and WordPress. In this session, we’ll talk about how modern front-end development has evolved, what makes Gatsby so different from other JavaScript frameworks that have come and gone, and how to build a simple Gatsby-powered site supported by a [Drupal]( back end. Here’s what we’ll cover: - The history of modern front-end development - What is, and why use, the JAMstack? - Gatsby: A web compiler for blazing fast websites - How to build a simple website with Gatsby - The Gatsby ecosystem: plugins and themes - Decoupling the Drupal CMS with Gatsby - Epilogue: What’s next for Gatsby? While some knowledge of JavaScript development is presumed and some background in React development is helpful, this session has something for practitioners at all levels.

16:00 Stepping Outside your Comfort Zone: Learning to Teach
Talk by Heather L White in Crater Lake (50 minutes)

As a developer, you spend your entire life learning. But what happens when the tables are turned and you become the teacher? Do you want to become a conference speaker or a mentor, talk at your local user group, give presentations at work, or become a technical trainer? As a previous classroom teacher with a Master's Degree in Curriculum Development, I will take you on a journey to understand the various learning styles and how to effectively reach everyone. We will look at how to present your information, best ways to structure it and learn ways to reach all students no matter their level. We will also cover a number of best practices for crafting your presentation decks themselves. Join me for this exploration into the inner workings of the human mind.

Xdebug will forever change the way you debug your PHP code
Talk by Tim Bond in Multnomah Falls (50 minutes)

We've all used echo, print_r, and var_dump to figure out why our code doesn't work. But did you know there's an easier way? This talk will demonstrate the use of two popular PHP tools: Xdebug and PhpStorm. Instead of littering your code with statements to send variable values to the browser, using these tools it's possible to pause script execution on a specific line, allowing you to view and edit any variable as well as arbitrary code. Never again will you forget to remove test code before sending it to production!

Building an Alexa audio streaming application with PHP
Talk by Bill Condo in Willamette Falls (50 minutes)

While Alexa is more popular than ever, many PHP developers are scared from a lack of documentation, a complex API, and general unfamiliarity. We’ll walk through a real world PHP powered Alexa application for a popular independent radio station.

Welcome to the community
Keynote by Matt Trask (50 minutes)

Once upon a time, I was called a hobbit at a conference and it served as my introduction to the greater PHP community. This could be a keynote, basically detailing how the community has welcomed me and so many others, helping people with new jobs, mentoring, teaching and so much more.