Southeast PHP was formed by the organizers of the Nashville PHP Meetup who wanted to provide a conference for PHP developers in the South Eastern United States and abroad. Currently, the Southeast does not host a regional PHP conference, even though there are lots of PHP developers. Southeast PHP was born to serve this community and to help connect it with the worldwide PHP community by giving regional developers a chance to connect with each other and the broader PHP community.

Thursday 16th August 2018

09:00
10
Apple, Butter, Darmok: A communications primer for developers
Talk by Cal Evans (50 minutes)

Star Trek, NATO, and kids party games; all of these things have one thing in common, communications. As a developer, learning to properly communicate is second only to learning to code in importance. Many of us however, learn to communicate our ideas long after we learn to code. In this opening talk, we'll discuss four important lessons to learn if you want to be able to properly and efficiently communicate your ideas with others. Come join us for "Apple, Butter, Darmok: A communications primer for developers"

10:00
2
12 Factor PHP Applications - The Remix
Talk by Jose Diaz-Gonzalez (50 minutes)

In many cases, developers will write code and assume it will perform exactly the same or better in production. However, as we've all seen, applications that build correctly locally do not necessarily perform well once they are being used by the world at large. In a previous incarnation of this talk, there was a brief overview of what 12 factor applications are and how to best apply those principles to CakePHP Applications. This talk will cover practical changes that can be made to a PHP application - in this case using the CakePHP framework, but easily applicable to other frameworks - in order to better support distributed, cloud-based environments, as well as various tactics developers can use to monitor and alert on application health.

Climbing the Abstract Syntax Tree
Talk by James Titcumb (50 minutes)

The new Abstract Syntax Tree (AST) in PHP 7 means the way our PHP code is being executed has changed. Understanding this new fundamental compilation step is key to understanding how our code is being run. To demonstrate, James will show how a basic compiler works and how introducing an AST simplifies this process. We’ll look into how these magical time-warp techniques* can also be used in your code to introspect, analyse and modify code in a way that was never possible before. After seeing this talk, you'll have a great insight as to the wonders of an AST, and how it can be applied to both compilers and userland code. (*actual magic or time-warp not guaranteed)

Assemble Your Code in Stages: Leveling Up With Pipelines
Talk by Steven Wade (50 minutes)

Applications grow, specs change, bugs happen, and our code can quickly get out of hand. Duplicated code, ifs, elses, switches, and statements like “I used this there, but it needs to be slightly different here”, help turn our work of art into a garbled mess. But what if we could fix that? That’s where Pipelines come in. We can break out our code into smaller chunks, called stages, that we can group or combine into configurations called pipelines. Separating our code into stages allows for easier and isolated testing. Reassembling stages sequentially into a pipeline allows us to have consistent results. In this talk, we’ll define what stages and pipelines are. We'll examine when pipelines can help us and when they are not the right solution. We will look at example pipelines ranging from simple to multi-stage reusable pipelines. We'll implement what we've learned by walking through a refactor and discover how testing becomes easier with stages. You will walk away with an understanding of the what the Pipeline pattern is and when it can benefit your application.

11:00 Practical PHP Deployment with Jenkins
Talk by Adam Culp (50 minutes)

Developers would love to "automate all the things", but where do we start? What tools exist for automating? And what can actually be automated? If we don't have unit tests can we still benefit from deployment automation? Adam Culp will show how a PHP application pulled from git, complete with unit tests, Composer dependency management, and package creation, can be deployed flawlessly using Jenkins. Then see how "Dev" and "Ops" are supported by a system if the application breaks through automated rollbacks.

4
How PHP Ticks
Talk by Sara Golemon (50 minutes)

A look into the internals of PHP; How it came to be, how it works, and how PHP 7 leapt far out in front of its predecessor on performance and memory consumption with some thoughts on what's next for PHP 8.

Win big, cache out
Talk by Ashley Hutson (50 minutes)

Caching can be a very complicated and loaded topic in Computer Science. There are many factors to consider from query caching, results caching, SQL caching, partial content caching, and full page caching. Look forward to finding out typically when, what, and where you should be caching and the best practices in implementing and how in PHP with various caching technologies(Redis, Memcached, and cloud based solutions). Always remember that you can over cache, so it is important to not go overboard as well.

13:00
3
From support to engineering to management: What you take with you, what you leave behind
Talk by Adrienne Lowe (50 minutes)

I've had the special experience to, in an extraordinarily short amount of time, move from working full time on a customer-facing technical support team, to working as an full-stack engineer, to finally, leading an organization as Director of Engineering. In each transition, I've had to learn and use certain work skills to both get the current job done and prepare myself for my next. Come hear what attitudes, behaviors, work habits, and lessons I learned and chose to take with me, and what I intentionally left behind, as I made these transitions -- and consider what you might take and leave behind in your own journey.

14:00 The Dark Corners of the SPL
Talk by Omni Adams (50 minutes)

PHP is a huge language, with lots of "kitchen sink" functionality for you to build data structures with. But did you know PHP includes a standard library that has built-in structures like linked lists, queues, stacks, and higher-performance arrays? This talk will cover a few of the more interesting ones in depth, including how to use them and most importantly why you'd use them over other solutions.

Software Management Lessons from the 1960s
Talk by Larry Garfield (50 minutes)

"The Mythical Man-Month" is one of the seminal books in the field of software project management. It was written in 1975, based on experience from the 1960s. Is it even still relevant? Turns out, it is. Technology may have changed dramatically but people have not. Managing software projects is about managing people, not bits, and creative people engaged in intellectual endeavors are notoriously hard to predict and manage. (Just ask my project manager.) Fortunately, many of the lessons-learned Brooks' presents are still relevant today. Some are directly applicable ("adding people to a late project makes it later") while others are valid with a little interpretation. Still others fly in the face of conventional wisdom. What can we learn from that? This session will present a modern overview of the ideas presented by Brooks and a look at what we can still learn from them even today.

4
Double Loop: TDD & BDD Done Right
Talk by Jessica Mauerhan (50 minutes)

Do you TDD or BDD? Why not both? Come learn the "Double Loop" workflow and discover how you can use both Behavior Driven Development and Test Driven Development to write well designed, tested and documented code. Double Loop works for lone engineers, small teams or entire product departments. I'll cover the steps you'll take in the workflow in detail with best practices for behavior testing, integration testing and unit testing.

15:00
2
Overcoming Your Fear of Failure
Talk by Olivia Liddell (50 minutes)

Have you ever been too afraid to try for an opportunity because you feared that you wouldn’t get it? In this talk, you’ll learn more about some of the causes of fear of failure, along with clear strategies that you can use to overcome it and advance within your tech career. Fear of failure is very common, especially among women who are underrepresented in tech. You should attend this session if you’d like to learn how to develop more confidence, build a strong support network, and avoid the pitfalls of perfectionism and procrastination. We’ll use relevant examples from TV and pop culture to illustrate how you can overcome your fear or failure and further develop your potential as a tech leader.

3
Zero to API with Lumen
Talk by Amanda Folson (50 minutes)

APIs are rapidly gaining adoption and it can be hard to figure out where to start. Several tools exist to help you prototype an API with minimal effort on your part, but what if you could use something you’re already familiar with? In this talk, we'll make use of Laravel's Lumen framework to build an API using all of the bells and whistles of a framework without all of the full stack stuff we don't need

2
How to use generators to beat memory bloat
Talk by Korvin Szanto (50 minutes)

Memory usage is something that we as developers have to be aware of. Ever debugging a memory issue and find that your once small dataset has ballooned out of proportion? And instead of dealing with the issue, you opt for upping the memory limit? Iterators can be the answer but they require a lot of code and can be very difficult to understand at a glance. Thankfully since PHP 5.5 Generators help us create and manage what would be complex iterators with simple syntax sugar. In this talk I will go over some of the ways you can implement generators and cure your memory bloat.

16:00
3
Getting ready for scale: Load testing your API with Gatling
Talk by David Stanley (50 minutes)

Well, today is the day. You've spent the last 4 months working on an API and today is the day it goes live. From unit tests to integration tests, you've put in the work and are confident the system is correct and ready. But... Are you sure? You haven't tested this under load yet. At what level of traffic will performance begin to degrade? What are the most expensive operations? When this thing breaks, how will it break? And what will break first? This is where Gatling (https://gatling.io) can help out. In this talk, I'll cover the basic use of this tool and how you can integrate it into a PHP project. From filling out forms to uploading files, we'll cover the basic scenarios that can give you the confidence to deploy and run an app at scale. Additionally, I'll demonstrate how to vary traffic levels and request patterns to approximate actual production usage. Finally, we'll use New Relic to gain performance insights while the test scenario is running

2
Doctrine for Beginners
Talk by Jonathan H. Wage (50 minutes)

Come to this talk prepared to learn about the Doctrine PHP open source project. The Doctrine project has been around for over a decade and has evolved from database abstraction software that dates back to the PEAR days. The packages provided by the Doctrine project have been downloaded almost 500 million times from packagist. In this talk we will take you through how to get started with Doctrine and how to take advantage of some of the more advanced features.

Queue It!
Talk by Mike Willbanks (50 minutes)

Message queues and job queues are sometimes talked about but hardly implemented. Queues aide us in background processing, interoperability between programming languages, solving issues along the way such as consistency and scalability in our web processes. We will walk through what a queue is, why we use them, use cases, messaging patterns, implementing scalable workers and more.

17:00 Becoming an everyday advocate for diversity and inclusion, small steps to impactful changes
Talk by Ijeoma Ezeonyebuchi (50 minutes)

What makes you different makes you wonderful. The differences that make us unique and special whether they be our race, ethnicity,cultural traditions, religion, gender, sexual orientation, and/or personalities types can also be a source of contention.How do you handle talking to those who are different and not your typical crowd at work? Do your day to day conversations leave room for others or can they only be understood by a small group of fellow coworkers? Most importantly how can you make an impact on fostering a more welcoming workplace? During this talk we will walk through these questions together by defining what diversity is and how it impacts an organization, describing what it means to be an inclusive workplace, provide detailed steps on how to best evaluate to what level your workplace promotes diversity and inclusion and last but surely not least provide guidance on steps you can take to influence your workplace culture from the ground up. Participants of this talk will walk away with a greater understanding of what it means to be a diverse and inclusive workplace. Participants will also step away with individual steps they can take to become advocates of change to create a more welcoming work environment.

Friday 17th August 2018

09:00
3
Mental health in tech: Storytime
Talk by Jenna Quindica (50 minutes)

Jenna Quindica was working at her third startup when she was diagnosed with bipolar disorder. Her journey has been a rocky one, marked by medication changes, mental health days, and more. She wouldn't have been able to maintain her full-time software engineering job without help, support, and encouragement from her manager and coworkers. Jenna will share how she navigated a diagnosis and now a chronic, mental illness. This is a story with a happy ending. Attendees will walk away feeling more comfortable discussing mental health in the workplace and everyday life.

10:00
1
New frontiers in voyage of APIs from REST to Reactive using MicroServices+GraphQL
Talk by Amrita Jain (50 minutes)

With the explosion of consumer devices, designing flexible and device-independent optimized APIs has become increasingly challenging. This talk covers API design best practices and core principles for serverless microservice architecture, demonstrates them using a custom PHP framework, and summarizes the lessons learnt. Additionally, the talk covers highly optimized API design using graphQL to address versioning issues and device resource constraints.

5
Maintaining Homestead
Talk by Joe Ferguson (50 minutes)

Laravel's Homestead project is the second most downloaded public vagrant environment. Initially designed to be a full featured local development environment focused on making Laravel developer's experience easier Homestead has grown into a solid well rounded LAMP stack Vagrant environment for nearly any PHP project. Join us as we review the features and inner workings of Homestead, explore some features you may not be aware of, and even take a trip deep into the operations process of how we build and deliver the best vagrant environment for the PHP community. We'll also cover extending Homestead and making it work for your custom applications and how you can easily share the customized environment with your teammates, coworkers, or contributors.

3
Banishing Loops with Functional Programming
Talk by David Hayes (50 minutes)

Do you like heavily nested loop-ridden code? Me neither! Here's the good news: your code doesn't have to be that way. Functional programming can help! In this talk we'll cover how you can banish for and foreach loops from your code by better understanding the most common and accessible functional programming concepts: map, filter, and reduce. We'll draw out concrete examples in PHP that will let you filter down complex data (like arrays of fetched posts) in simpler ways than you may have thought possible. We'll show practical refactorings of hard-to-follow code into better functional PHP and JavaScript. We'll also cover what functional programming is---it's more than just the "function" keyword---and how it can unlock whole new ways of thinking about the code we write.

11:00
2
Modern and Secure PHP
Talk by Ben Edmunds (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.

1
ES6 and Beyond for PHP Developers
Talk by Tanner Plauche (50 minutes)

JavaScript is growing up fast. Developers who specialize in other languages must often use JavaScript to get their jobs done. Since ES6 / ES2015 has become mainstream, and with new features being released on a regular basis, staying up to date with JavaScript is vital. We will discuss and exlain the most common features in ES6 as well as some new things in ES7. These are the features that are being covered: Arrow functions and let keyword; Block scopes Classes and inheritance Default parameters Destructured assignment Iterators; Maps Promises Rest parameters Sets Spread operator Template Literals

Hey Boss, Event Sourcing Could Fix That!
Talk by Emily Stamey (50 minutes)

Our application has so much going on!!! Complex database queries and pages with a lot of information on them cause everything to slow down. Large reports take so long to load that we are stuck waiting instead of analyzing the data. Our users often change their minds about what they want these reports to look like. In this session, you will learn the basics of what an event sourced application looks like and the rules you should follow. You will learn how events can be added to a legacy application and allow you to optimize problem areas. We will discuss the many advantages and few, but significant, disadvantages of using Event Sourcing. organizer notes: This is based on a presentation I gave at my last work all hands meeting, and I am building the talk for PHP Srbija in May. I'm planning to include a useful strategy I used on a project to add an entirely new codebase inside a legacy codeignitor app. This strategy allowed us to replace our application in pieces. This talk will cover areas that my current team is planning to replace to improve our application's reliability and speed up runtimes. We are creating events in the parts of our application that are doing the most work and the events will make it easier for us to separate our read and write transactions and really optimize our runtime. This presentation will be really useful for large, legacy applications with pain points. I will demonstrate how to add this code into your legacy application and ease the pain bit by bit!

13:00
3
The Myth of the Career Ladder
Talk by Graham Hoefer, Samantha Quiñones (50 minutes)

We start out on our careers with a path mapped out ahead of us; a clear beginning, a final destination, and predictable milestones in between. Too often we arrive at a place and realize it’s the last place we want to be. There is an alternative to the straight and linear path. By giving ourselves license to wander and explore, we can build a career of broad experiences and real fulfilment. Join Samantha Quiñones and Graham Hoefer as they share their own winding paths through engineering, leadership and management and how they learned to let go of the ultimate destination to focus on what’s really important.

14:00
1
Virtual Machine, Container, or Serverless
Talk by Terrence Ryan (50 minutes)

One of the first challenges of moving your workloads to the Cloud is figuring out which three major flavors of computing technology to use: virtual machines, containers, or what is being called serverless. Each of these tools has its niche, its hype, and its downside. This session will tour application scenarios, discuss how each technology would handle them, discuss peculiar workloads, consider the tradeoffs, and leave you with recommendations for which one to pick.

4
Peeling Back the Magic: Modern PHP Without a Framework
Talk by Kevin Smith (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.

0
Psych!
Talk by Steve Brownlee (50 minutes)

I crowd-sourced ideas for a conference session. The responses were varied, but a pattern quickly emerged, and it all had to do with the psychology of the job. Here's some of the suggestions. "How to find dynamic, creative, curious candidates, and figure out how they think" "Signs that you aren't cut out to be a software developer" "Mental health and software development" "Compassionate coding / the value of empathy in coding" "Locus of Control Psychology and how it relates to the learning process" It's not often that a session at a technical conference talks about something completely non-technical, and yet everyone seems to eventually realize that success has almost nothing to do with having exceptional technical ability, and everything to do with having exceptional people and teams. Attending this session will take you on a tour of how having control over your own mind, control of your communication, understanding other personalities, and how building a team of great people can be transformative for yourself and your organization.

15:00 Building for the PHP Command Line Interface
Talk by Steve Grunwell (50 minutes)

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 like WP-CLI, Artisan, and Drush make it easy to interface with our code without ever opening a browser. Attendees will be introduced to popular PHP CLI tools and their default capabilities. We'll discuss characteristics of good CLI scripts, strong use-cases for writing custom commands, then write several CLI programs across different platforms.

0
Building a modern PHP application
Talk by Jason McCreary (50 minutes)

Modern PHP applications have changed dramatically over the years. Gone are the days of full page refreshes and single stacks. Instead, we leverage front and backend technologies as well as third-party services. Even the PHP side has changed. Instead of full-stack frameworks, you can use PHP to glue together the different stacks and services. It can seem like a lot. So in this talk, we'll demo the modern PHP application by building a single page "hot chicken" online ordering app. We'll leverage front-end technologies and third party services like Stripe and Twilio and glue it all together with composed PHP.

Big Iron: PHP Lessons from Cold War Supercomputing
Talk by Ed Barnard (50 minutes)

The original CRAY-1 Supercomputer was a 5-ton monster with just 8 MB of main memory, yet programming it can be a fun way to explore subtleties of PHP coding. In this talk we indulge in programming "big iron" on "bare metal." We’ll look at CRAY-1 hardware instructions with the aim of understanding logic operations, boolean algebra, and octal arithmetic. As a Cray Research veteran I’ve carried CRAY-1 logic design to both MySQL table design and PHP coding. After this talk, you will as well.

0
It's Not Dark Magic - Pulling Back the Curtains From Your Stylesheets
Talk by Aimee Knight (50 minutes)

Chances are if you're a developer you're going to have to write some CSS from time to time. When you first looked at CSS it probably seemed like a breeze. You added some border here, changed some colors there. PHP and JavaScript were the hard parts! Somewhere during your progression as a developer that changed though! What's worse is that many developers have simply learned to dismiss CSS as a toy language. The truth, however, is that when we hit a wall many of us don't actually understand what our CSS is doing under the hood! We all like to make jokes about it, but how many of us have actually taken the time to try and understand the CSS we're writing. How many of us have actually reasonably debugged an issue to the next lowest abstraction layer when we hit a wall? All too often we settle for the first StackOverflow answer, hacks, or we just let the issue go entirely. In this talk, we're going to finally take a step back and stop mindlessly throwing darts at the dartboard! We'll discuss the most common issues developers face such as, z-index, the cascade, and positioning in depth by diving deep into the browser's internal rendering engine structure to see how our styles are actually parsed. Sure, you may still not have an eye for design, but you might just walk away a CSS guru!

16:00
4
Philosophy in Code: I Kant Even
Talk by Lane Staples (50 minutes)

Coding in practice is a perpetual learning experience. The ongoing necessity of tackling new languages, frameworks, legacy codebases, etc. can be daunting. Immanuel Kant outlined some thought tools for making sense of and eventually conquering vast intellectual territory. I have found the application of these insights enormously helpful over many years and countless tricky knowledge bases. This talk will aim to pass along those tools and techniques, and make the first steps of your future challenges less intimidating.

0
Accelerate Everyone: Managing Transition and Leveraging the Speed of Trust to Build High Performance Teams
Talk by Dee Wilcox (50 minutes)

Just like we've come to rely on frameworks for common tasks, like our favorite ORM, our our favorite IDE, or our favorite cloud platform, we need a framework for managing transition. When we join a new team, whether as an individual contributor or a leader, we often go into it focused on delivering our own value and making sure we're exceeding expectations. In fact, this transition can be a critical opportunity to accelerate not only our own growth, but the growth of our entire team. In this session I'll talk about three keys to leveraging the speed of trust, and I'll demo an app I built with Slim PHP to give you the tools to test this leadership framework with your own team.

17:00
2
Building World Class Developer Organizations
Talk 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