<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/feed.rss.xml" type="text/xsl" media="screen"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Jeremy Lindblom</title>
    <description>Jeremy is a principal software engineer at GoDaddy; a co-organizer of the Arizona PHP User Group (@azPHP); and a father of 4.</description>
    <link>https://speakerdeck.com/jeremeamia</link>
    <atom:link rel="self" type="application/rss+xml" href="https://speakerdeck.com/jeremeamia.rss"/>
    <lastBuildDate>2015-03-14 17:46:54 -0400</lastBuildDate>
    <item>
      <title>Diagram Like a Principal Engineer</title>
      <description>What separates software engineers from principal software engineers? Mainly communication skills. One of the main communication skills in the principal engineer’s toolbelt is **diagramming**. In this session we’ll discuss different types of diagrams and their purposes. Then we’ll look at different tools we can use to make and share diagrams. Hopefully, we’ll all come out of this with a greater ability to draw boxes and arrows in a way that can bring about better software and teamwork and bigger paychecks.</description>
      <media:content url="https://files.speakerdeck.com/presentations/c3c2898730404016892b72b0826f8772/preview_slide_0.jpg?25789951" type="image/jpeg" medium="image"/>
      <content:encoded>What separates software engineers from principal software engineers? Mainly communication skills. One of the main communication skills in the principal engineer’s toolbelt is **diagramming**. In this session we’ll discuss different types of diagrams and their purposes. Then we’ll look at different tools we can use to make and share diagrams. Hopefully, we’ll all come out of this with a greater ability to draw boxes and arrows in a way that can bring about better software and teamwork and bigger paychecks.</content:encoded>
      <pubDate>Wed, 17 May 2023 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/jeremeamia/diagram-like-a-principal-engineer</link>
      <guid>https://speakerdeck.com/jeremeamia/diagram-like-a-principal-engineer</guid>
    </item>
    <item>
      <title>Async Guzzle - Concurrent HTTP Requests in PHP</title>
      <description>Though PHP is known to be a single-threaded programming language, it's possible to execute HTTP requests concurrently using Guzzle – An HTTP client library for PHP. Guzzle creates a powerful abstraction over multi-cURL and provides a familiar asynchronous interface using Promises. This presentation answers the what, why, and how for using Guzzle's async/concurrent request features. The accompanying demos are located at: https://github.com/azPHP/async-guzzle-demos-2020</description>
      <media:content url="https://files.speakerdeck.com/presentations/25d7bd2ec987446ab9682362444f7a01/preview_slide_0.jpg?16116065" type="image/jpeg" medium="image"/>
      <content:encoded>Though PHP is known to be a single-threaded programming language, it's possible to execute HTTP requests concurrently using Guzzle – An HTTP client library for PHP. Guzzle creates a powerful abstraction over multi-cURL and provides a familiar asynchronous interface using Promises. This presentation answers the what, why, and how for using Guzzle's async/concurrent request features. The accompanying demos are located at: https://github.com/azPHP/async-guzzle-demos-2020</content:encoded>
      <pubDate>Tue, 25 Aug 2020 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/jeremeamia/async-guzzle-concurrent-http-requests-in-php</link>
      <guid>https://speakerdeck.com/jeremeamia/async-guzzle-concurrent-http-requests-in-php</guid>
    </item>
    <item>
      <title>Applied OOP Design Patterns: Rolling with the Punches</title>
      <description>Applying established design patterns in your object-oriented codebase can help you to "roll with the punches" of evolving business requirements. In this presentation, we'll take a practical look at design principles and patterns as we iteratively build a package with increasingly challenging feature requests. The key acronym in our tool belt? SOLID. (NOTE: This presentation will use an OOP-style pseudo-code language to appeal to developers of more than just one language.)</description>
      <media:content url="https://files.speakerdeck.com/presentations/650b70e54fc844cbb3b5cfab6215a683/preview_slide_0.jpg?13858577" type="image/jpeg" medium="image"/>
      <content:encoded>Applying established design patterns in your object-oriented codebase can help you to "roll with the punches" of evolving business requirements. In this presentation, we'll take a practical look at design principles and patterns as we iteratively build a package with increasingly challenging feature requests. The key acronym in our tool belt? SOLID. (NOTE: This presentation will use an OOP-style pseudo-code language to appeal to developers of more than just one language.)</content:encoded>
      <pubDate>Sat, 12 Oct 2019 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/jeremeamia/applied-oop-design-patterns-rolling-with-the-punches</link>
      <guid>https://speakerdeck.com/jeremeamia/applied-oop-design-patterns-rolling-with-the-punches</guid>
    </item>
    <item>
      <title>What's New in PHP 7.4?</title>
      <description>PHP is constantly evolving and getting better and faster. Come learn about the latest features in the language from the past few years and what's coming up very soon in version 7.4.</description>
      <media:content url="https://files.speakerdeck.com/presentations/8201c24c572d4057b75ee70e4c468f3c/preview_slide_0.jpg?13858541" type="image/jpeg" medium="image"/>
      <content:encoded>PHP is constantly evolving and getting better and faster. Come learn about the latest features in the language from the past few years and what's coming up very soon in version 7.4.</content:encoded>
      <pubDate>Sat, 12 Oct 2019 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/jeremeamia/whats-new-in-php-7-dot-4</link>
      <guid>https://speakerdeck.com/jeremeamia/whats-new-in-php-7-dot-4</guid>
    </item>
    <item>
      <title>Protecting Your Code From A Mischievous Future</title>
      <description>Your code is perfect! Well, at least until the next set of requirements come in and tries to "sweep the leg" of your beautiful codebase. However, by following the SOLID object-oriented design principles, you can minimize the churn or hacks needed as your code is forcefully evolved. Let's learn the concepts of SOLID in the context of some real code.</description>
      <media:content url="https://files.speakerdeck.com/presentations/b7085f8fdb4e4e458c215fd016796c12/preview_slide_0.jpg?11873059" type="image/jpeg" medium="image"/>
      <content:encoded>Your code is perfect! Well, at least until the next set of requirements come in and tries to "sweep the leg" of your beautiful codebase. However, by following the SOLID object-oriented design principles, you can minimize the churn or hacks needed as your code is forcefully evolved. Let's learn the concepts of SOLID in the context of some real code.</content:encoded>
      <pubDate>Wed, 20 Feb 2019 00:00:00 -0500</pubDate>
      <link>https://speakerdeck.com/jeremeamia/protecting-your-code-from-a-mischievous-future</link>
      <guid>https://speakerdeck.com/jeremeamia/protecting-your-code-from-a-mischievous-future</guid>
    </item>
    <item>
      <title>Iterators and Decorators and Generators, Oh My!</title>
      <description>Iterators are an awesome and important feature of PHP, and PHP comes with a lot of them built in too. Let’s talk about what they are, how they’re used, and how to make your own. Then we'll talk about Generators, which were introduced in PHP 5.5, and that take Iterators to the next level. And… we can’t talk about Iterators without also discussing composition and the Decorator design pattern. After all, many of the SPL Iterator classes are Decorators too.</description>
      <media:content url="https://files.speakerdeck.com/presentations/ee9011a81ec744cf82ecb3ce1d6c872e/preview_slide_0.jpg?10812456" type="image/jpeg" medium="image"/>
      <content:encoded>Iterators are an awesome and important feature of PHP, and PHP comes with a lot of them built in too. Let’s talk about what they are, how they’re used, and how to make your own. Then we'll talk about Generators, which were introduced in PHP 5.5, and that take Iterators to the next level. And… we can’t talk about Iterators without also discussing composition and the Decorator design pattern. After all, many of the SPL Iterator classes are Decorators too.</content:encoded>
      <pubDate>Fri, 21 Sep 2018 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/jeremeamia/iterators-and-decorators-and-generators-oh-my</link>
      <guid>https://speakerdeck.com/jeremeamia/iterators-and-decorators-and-generators-oh-my</guid>
    </item>
    <item>
      <title>Uploading to S3 from PHP</title>
      <description>Working with the Amazon S3 service is pretty easy if you understand the basic concepts of S3 and are using one of the AWS-provided SDKs, like the AWS SDK for PHP. This presentation and corresponding demo code will show you how it's done.</description>
      <media:content url="https://files.speakerdeck.com/presentations/d18c3236a6374864a91974418e6297f9/preview_slide_0.jpg?10458533" type="image/jpeg" medium="image"/>
      <content:encoded>Working with the Amazon S3 service is pretty easy if you understand the basic concepts of S3 and are using one of the AWS-provided SDKs, like the AWS SDK for PHP. This presentation and corresponding demo code will show you how it's done.</content:encoded>
      <pubDate>Tue, 24 Jul 2018 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/jeremeamia/uploading-to-s3-from-php</link>
      <guid>https://speakerdeck.com/jeremeamia/uploading-to-s3-from-php</guid>
    </item>
    <item>
      <title>APIs with Lumen, Guzzle, &amp; Swagger</title>
      <description>Building a quality RESTful API can be challenging. Let's discuss a few best practices and how embracing three particular technologies — the Lumen framework (and related packages), the Guzzle HTTP library, and the Swagger (OpenAPI) Specification — can make it easier for you to implement your API and for your users to consume your API. That way, everyone can spend more time adding business value, instead of writing boilerplate code. #laravel #php</description>
      <media:content url="https://files.speakerdeck.com/presentations/29d02669da8c48bd8d6a02ca705bb9f2/preview_slide_0.jpg?6651704" type="image/jpeg" medium="image"/>
      <content:encoded>Building a quality RESTful API can be challenging. Let's discuss a few best practices and how embracing three particular technologies — the Lumen framework (and related packages), the Guzzle HTTP library, and the Swagger (OpenAPI) Specification — can make it easier for you to implement your API and for your users to consume your API. That way, everyone can spend more time adding business value, instead of writing boilerplate code. #laravel #php</content:encoded>
      <pubDate>Fri, 29 Jul 2016 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/jeremeamia/apis-with-lumen-guzzle-and-swagger</link>
      <guid>https://speakerdeck.com/jeremeamia/apis-with-lumen-guzzle-and-swagger</guid>
    </item>
    <item>
      <title>aRESTful Development with the Wordpress API</title>
      <description>Don't make "a huge mistake"! You need to learn about the WordPress REST API—yet another way we can bend WordPress to our will and solve problems for our customers in new ways. Jeremy Lindblom (@jeremeamia) will show you how to get started with the WordPress API, and teach you a little about HTTP and APIs, in general, along the way. 

You should walk away with "Steve Holt"-like confidence in knowing how to setup the API for a WordPress site and consume the API from other projects using existing tools.</description>
      <media:content url="https://files.speakerdeck.com/presentations/32dcabcdeebc4851aa95e9ce3cc5d990/preview_slide_0.jpg?6364730" type="image/jpeg" medium="image"/>
      <content:encoded>Don't make "a huge mistake"! You need to learn about the WordPress REST API—yet another way we can bend WordPress to our will and solve problems for our customers in new ways. Jeremy Lindblom (@jeremeamia) will show you how to get started with the WordPress API, and teach you a little about HTTP and APIs, in general, along the way. 

You should walk away with "Steve Holt"-like confidence in knowing how to setup the API for a WordPress site and consume the API from other projects using existing tools.</content:encoded>
      <pubDate>Thu, 26 May 2016 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/jeremeamia/arestful-development-with-the-wordpress-api</link>
      <guid>https://speakerdeck.com/jeremeamia/arestful-development-with-the-wordpress-api</guid>
    </item>
    <item>
      <title>New Features in PHP 7</title>
      <description>PHP7 is the first major version of PHP to be released since 2004, and has brought us dozens of new features and huge performance gains. Let's take a tour of the latest and greatest PHP has to offer, and also see if it is safe for you to update your servers. (First given in January 2016 to the @azPHP user group. Updated with information about PHP 7.1 in October 2016 for Desert Code Camp)</description>
      <media:content url="https://files.speakerdeck.com/presentations/442a895dfe1c4659948668b9262e91fe/preview_slide_0.jpg?6973673" type="image/jpeg" medium="image"/>
      <content:encoded>PHP7 is the first major version of PHP to be released since 2004, and has brought us dozens of new features and huge performance gains. Let's take a tour of the latest and greatest PHP has to offer, and also see if it is safe for you to update your servers. (First given in January 2016 to the @azPHP user group. Updated with information about PHP 7.1 in October 2016 for Desert Code Camp)</content:encoded>
      <pubDate>Tue, 26 Jan 2016 00:00:00 -0500</pubDate>
      <link>https://speakerdeck.com/jeremeamia/new-features-in-php-7</link>
      <guid>https://speakerdeck.com/jeremeamia/new-features-in-php-7</guid>
    </item>
    <item>
      <title>Controlling the Cloud with the AWS SDK for PHP</title>
      <description>Amazon Web Services (AWS) offers a broad set of global compute, storage, database, analytics, application, and deployment services that can help PHP developers build scalable applications in the cloud. These services provide APIs that allow you to control all of your resources programmatically, even through your PHP code. Let's talk about how to use Version 3 of the open source AWS SDK for PHP (built on the Guzzle library) to control your AWS resources and use the AWS services from within your applications. (Given at ZendCon 2015)</description>
      <media:content url="https://files.speakerdeck.com/presentations/655e3fadd7564c6ba2518fffd6eb0768/preview_slide_0.jpg?5436752" type="image/jpeg" medium="image"/>
      <content:encoded>Amazon Web Services (AWS) offers a broad set of global compute, storage, database, analytics, application, and deployment services that can help PHP developers build scalable applications in the cloud. These services provide APIs that allow you to control all of your resources programmatically, even through your PHP code. Let's talk about how to use Version 3 of the open source AWS SDK for PHP (built on the Guzzle library) to control your AWS resources and use the AWS services from within your applications. (Given at ZendCon 2015)</content:encoded>
      <pubDate>Thu, 22 Oct 2015 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/jeremeamia/controlling-the-cloud-with-the-aws-sdk-for-php</link>
      <guid>https://speakerdeck.com/jeremeamia/controlling-the-cloud-with-the-aws-sdk-for-php</guid>
    </item>
    <item>
      <title>Asynchronous API Interaction with Guzzle</title>
      <description>Guzzle is an HTTP client library in PHP that puts all the power of cURL at your fingertips. Part of cURL’s power comes from its “Multi” interface, which allows you to make concurrent HTTP requests using non-blocking I/O. Guzzle's HTTP handler implementation abstracts the complexity of cURL Multi into a simpler experience using Promises and PSR-7. Learn how to use Guzzle to work with HTTP requests and web service APIs in an asynchronous way, potentially saving you time and increasing the throughput of your PHP applications and services. (First delivered at ZendCon 2015)</description>
      <media:content url="https://files.speakerdeck.com/presentations/9fe9de820c9a47abbe24188cfe128a5f/preview_slide_0.jpg?5430927" type="image/jpeg" medium="image"/>
      <content:encoded>Guzzle is an HTTP client library in PHP that puts all the power of cURL at your fingertips. Part of cURL’s power comes from its “Multi” interface, which allows you to make concurrent HTTP requests using non-blocking I/O. Guzzle's HTTP handler implementation abstracts the complexity of cURL Multi into a simpler experience using Promises and PSR-7. Learn how to use Guzzle to work with HTTP requests and web service APIs in an asynchronous way, potentially saving you time and increasing the throughput of your PHP applications and services. (First delivered at ZendCon 2015)</content:encoded>
      <pubDate>Wed, 21 Oct 2015 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/jeremeamia/asynchronous-api-interaction-with-guzzle</link>
      <guid>https://speakerdeck.com/jeremeamia/asynchronous-api-interaction-with-guzzle</guid>
    </item>
    <item>
      <title>Composing a Better Phuture</title>
      <description>Composer is both a dependency management and autoloader generation tool for PHP. This presentation highlights how and why we use Composer.</description>
      <media:content url="https://files.speakerdeck.com/presentations/a04521515dc9480fb442e83c74fc67e8/preview_slide_0.jpg?5390382" type="image/jpeg" medium="image"/>
      <content:encoded>Composer is both a dependency management and autoloader generation tool for PHP. This presentation highlights how and why we use Composer.</content:encoded>
      <pubDate>Fri, 02 Oct 2015 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/jeremeamia/composing-a-better-phuture-1</link>
      <guid>https://speakerdeck.com/jeremeamia/composing-a-better-phuture-1</guid>
    </item>
    <item>
      <title>Using Version 3 of the AWS SDK for PHP</title>
      <description>Amazon Web Services (AWS) offers a broad set of global compute, storage, database, analytics, application, and deployment services that can help PHP developers build scalable applications in the cloud. These services provide APIs that allow you to control all of your resources programmatically, even through your PHP code. Let's talk about how to use Version 3 of the open source AWS SDK for PHP (built on the Guzzle library and PSR-7) to control your AWS resources and use the AWS services from within your applications.</description>
      <media:content url="https://files.speakerdeck.com/presentations/fc2f853d862e45c48f21cb6b7e3190e9/preview_slide_0.jpg?5245893" type="image/jpeg" medium="image"/>
      <content:encoded>Amazon Web Services (AWS) offers a broad set of global compute, storage, database, analytics, application, and deployment services that can help PHP developers build scalable applications in the cloud. These services provide APIs that allow you to control all of your resources programmatically, even through your PHP code. Let's talk about how to use Version 3 of the open source AWS SDK for PHP (built on the Guzzle library and PSR-7) to control your AWS resources and use the AWS services from within your applications.</content:encoded>
      <pubDate>Thu, 10 Sep 2015 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/jeremeamia/using-version-3-of-the-aws-sdk-for-php</link>
      <guid>https://speakerdeck.com/jeremeamia/using-version-3-of-the-aws-sdk-for-php</guid>
    </item>
    <item>
      <title>Autoloading on Autopilot</title>
      <description>Autoloading is a wonderful feature in PHP that allows you to automatically include the files that your classes are in as they are referenced. Let's talk about how it works, how to do it, and all that goes with it, including namespaces, PSR standards, and Composer. Hopefully by the end of this discussion, autoloading will be so easy for you that it will feel like it's on autopilot.</description>
      <media:content url="https://files.speakerdeck.com/presentations/e0f91d447332425da127afaf20bd018d/preview_slide_0.jpg?5122562" type="image/jpeg" medium="image"/>
      <content:encoded>Autoloading is a wonderful feature in PHP that allows you to automatically include the files that your classes are in as they are referenced. Let's talk about how it works, how to do it, and all that goes with it, including namespaces, PSR standards, and Composer. Hopefully by the end of this discussion, autoloading will be so easy for you that it will feel like it's on autopilot.</content:encoded>
      <pubDate>Tue, 11 Aug 2015 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/jeremeamia/autoloading-on-autopilot</link>
      <guid>https://speakerdeck.com/jeremeamia/autoloading-on-autopilot</guid>
    </item>
    <item>
      <title>How to Serialize a Closure and Get a Million Downloads</title>
      <description>Did you know that you cannot serialize a Closure object! Well, that is what the PHP runtime tells you when you try to do it, anyway. Back in 2010, I set out to prove PHP wrong with my SuperClosure project, which allows you to serialize—and then actually unserialize and execute—PHP closures. I’ve learned a lot along the way, especially about about Closures, Reflection, and lexical parsing. I want to tell you the whole story, teach you some of PHP’s dark magic, and show you how some code snippets in a blog post evolved into a quirky open source project that has been downloaded over two million times, despite its usage of the infamous eval().</description>
      <media:content url="https://files.speakerdeck.com/presentations/e44d3f73f50a4873b1d60f7f687a2c12/preview_slide_0.jpg?4826172" type="image/jpeg" medium="image"/>
      <content:encoded>Did you know that you cannot serialize a Closure object! Well, that is what the PHP runtime tells you when you try to do it, anyway. Back in 2010, I set out to prove PHP wrong with my SuperClosure project, which allows you to serialize—and then actually unserialize and execute—PHP closures. I’ve learned a lot along the way, especially about about Closures, Reflection, and lexical parsing. I want to tell you the whole story, teach you some of PHP’s dark magic, and show you how some code snippets in a blog post evolved into a quirky open source project that has been downloaded over two million times, despite its usage of the infamous eval().</content:encoded>
      <pubDate>Thu, 21 May 2015 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/jeremeamia/how-to-serialize-a-closure-and-get-a-million-downloads</link>
      <guid>https://speakerdeck.com/jeremeamia/how-to-serialize-a-closure-and-get-a-million-downloads</guid>
    </item>
    <item>
      <title>It Feels Great to Iterate</title>
      <description>Iterators are an awesome and important feature of PHP, and PHP comes with a lot of them built in too. Let’s talk about what they are, how they’re used, and how to make your own. Then we'll talk about generators, which is really cool PHP 5.5+ feature that takes iterators to the next level. And… we can’t talk about iterators without also discussing the Decorator design pattern. After all, most of the SPL iterator classes are decorators too. It’s never felt so great to iterate! May the foreach be with you!</description>
      <media:content url="https://files.speakerdeck.com/presentations/c02a6e5f178f4914b56aa827b3b10920/preview_slide_0.jpg?4627805" type="image/jpeg" medium="image"/>
      <content:encoded>Iterators are an awesome and important feature of PHP, and PHP comes with a lot of them built in too. Let’s talk about what they are, how they’re used, and how to make your own. Then we'll talk about generators, which is really cool PHP 5.5+ feature that takes iterators to the next level. And… we can’t talk about iterators without also discussing the Decorator design pattern. After all, most of the SPL iterator classes are decorators too. It’s never felt so great to iterate! May the foreach be with you!</content:encoded>
      <pubDate>Tue, 07 Apr 2015 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/jeremeamia/it-feels-great-to-iterate</link>
      <guid>https://speakerdeck.com/jeremeamia/it-feels-great-to-iterate</guid>
    </item>
    <item>
      <title>What's in Your Project Root?</title>
      <description>Let me ask you a question... What’s in *your* project root? If you take a look at PHP projects hosted on GitHub, you’ll find a plethora of configuration and other files in the project's root directory that are made out of everything. There’s JSON, Markdown, YAML, XML, and even some PHP (phew). Let’s talk about what all of these files do and what things you might be missing out on. From Composer to PHPUnit and from Travis to Phing, there are plenty of tools you can configure to improve the quality of your project, some with very little effort.</description>
      <media:content url="https://files.speakerdeck.com/presentations/405f9eda2652488a92e25f7e2f59e219/preview_slide_0.jpg?4532270" type="image/jpeg" medium="image"/>
      <content:encoded>Let me ask you a question... What’s in *your* project root? If you take a look at PHP projects hosted on GitHub, you’ll find a plethora of configuration and other files in the project's root directory that are made out of everything. There’s JSON, Markdown, YAML, XML, and even some PHP (phew). Let’s talk about what all of these files do and what things you might be missing out on. From Composer to PHPUnit and from Travis to Phing, there are plenty of tools you can configure to improve the quality of your project, some with very little effort.</content:encoded>
      <pubDate>Sat, 14 Mar 2015 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/jeremeamia/whats-in-your-project-root</link>
      <guid>https://speakerdeck.com/jeremeamia/whats-in-your-project-root</guid>
    </item>
  </channel>
</rss>
