All decks
  • Load Testing Your App - PHP Serbia 2019

    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, as well as 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.

  • Load Testing Your App - AustinPHP March 2019

    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, as well as 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.

  • Load Testing Your App - MidwestPHP 2019

    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.

  • A Look Inside the Illuminate Container - Laravel Austin March 2019

  • API Design Patterns for the REST of US - Warecraft 2019

    If you've spent long enough writing web applications, you've had firsthand experience with an API, whether internal or external, that leaves you scratching your head at best and banging your head against the keyboard at worst. To be fair, it takes more than exposing your application's database via a CRUD interface to get an API that's truly a joy to work with. We'll look at patterns, affecting everything from HTTP methods to versioning, from authentication to response codes, that'll make your API happily boring rather than uniquely frustrating. Including when to use REST, and when to pick a different design pattern that better suits the task at hand.

  • What's New in PHP 7.3 - SunshinePHP 2019 Uncon

    PHP 7.3 is out! Let's talk through some of the things that are new, changed, or removed in the newest version of PHP!

  • Dependency Injection for Mere Humans - SunshinePHP 2019

    What’s the difference between service location and dependency injection? Why is this dependency injection thing such a big deal anyway, and how do you use that tool correctly? I’ll answer these questions and more, including real-world examples of refactoring an application toward the more explicit, testable, closer-to-SOLID applications.

  • Don't Wait; Generate! - PHPBenelux 2019

    Generators, which have been around since PHP 5.5 and got a lot better with PHP 7, take a lot of the angst out of asynchronous programming in PHP. In this talk I'll explain the basic concepts that you'll need to grok generators, then apply our new-found knowledge to turn an I/O-bottlenecked web app into a concurrent, performant one via the AMPHP family of libraries.

  • Dependency Injection for Mere Humans - PHPBenelux 2019

    What’s the difference between service location and dependency injection? Why is this dependency injection thing such a big deal anyway, and how do you use that tool correctly? I’ll answer these questions and more, including real-world examples of refactoring an application toward the more explicit, testable, closer-to-SOLID applications.

  • PHP On Lambda - AustinPHP January 2019

  • What's New in PHP 7.3 - AustinPHP December 2018

    PHP 7.3 is out! Let's talk through some of the things that are new, changed, or removed in the newest version of PHP!

  • (Ab)using process control for powerful CLI applications - AustinPHP October 2018

  • Don't Wait; Generate! - ScotlandPHP 2018

    Generators, which have been around since PHP 5.5 and got a lot better with PHP 7, take a lot of the angst out of asynchronous programming in PHP. In this talk I'll explain the basic concepts that you'll need to grok generators, then apply our new-found knowledge to turn an I/O-bottlenecked web app into a concurrent, performant one via the AMPHP family of libraries.

  • (Ab)using process control for powerful CLI applications - CascadiaPHP 2018

  • Load Testing Your App - PHPDetroit 2018

  • Dependency Injection for Mere Humans - PHPDetroit 2018

  • Load Testing Your API - DC4D

  • Dependency Injection for Mere Humans - AustinPHP January 2018

  • Dependency Injection for Mere Humans - php[world] 2017

  • Build a Bot - php[world] 2017

    Build a Bot workshop

  • Build a Bot - PNWPHP 2017

    Build a Bot workshop

  • What's New in PHP 7.2 - AustinPHP Lightning Talk

    PHP 7.2a1 is out! Let's talk through some of the things that'll be added, changed, or removed in the upcoming 7.2 release!

  • Yielding Higher-Performance PHP - NomadPHP

    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.

  • Signals - AustinPHP January 2017

  • PHP 7.1 in 10 minutes

  • PHP 7.1 in 5 minutes

  • Zend Expressive - AustinPHP October 2016

  • Yielding Higher-Performance PHP - AustinPHP July 2016

    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.

  • Yielding Higher-Performance PHP - php[tek] 2016

    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.

  • Beware Mutants: Testing Your Tests - php[tek] 2016

    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.

  • Beware Mutants: Testing Your Tests - AustinPHP February 2016

  • Reinvent 2015 Top Ten

  • HAL and vnd.error

  • Slim 3: The Good, the Bad and the Beta

  • HHVM: The Fiddly BIts

  • Error Handling in PHP

  • ADR In Action

  • Phalcon || Aura