<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/feed.atom.xml" media="screen"?>
<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom">
  <id>tag:speakerdeck.com,2005:/jeremeamia</id>
  <link rel="alternate" type="text/html" href="https://speakerdeck.com"/>
  <link rel="self" type="application/atom+xml" href="https://speakerdeck.com/jeremeamia.atom"/>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/1031467</id>
    <published>2023-05-26T13:18:41-04:00</published>
    <updated>2023-05-26T13:21:16-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/jeremeamia/diagram-like-a-principal-engineer"/>
    <title>Diagram Like a Principal Engineer</title>
    <content type="html">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>
<media:thumbnail url="https://files.speakerdeck.com/presentations/c3c2898730404016892b72b0826f8772/preview_slide_0.jpg?25789951" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Jeremy Lindblom (@jeremeamia)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/661652</id>
    <published>2020-08-26T15:26:33-04:00</published>
    <updated>2020-08-26T15:30:23-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/jeremeamia/async-guzzle-concurrent-http-requests-in-php"/>
    <title>Async Guzzle - Concurrent HTTP Requests in PHP</title>
    <content type="html">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>
<media:thumbnail url="https://files.speakerdeck.com/presentations/25d7bd2ec987446ab9682362444f7a01/preview_slide_0.jpg?16116065" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Jeremy Lindblom (@jeremeamia)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/563400</id>
    <published>2019-10-12T17:33:41-04:00</published>
    <updated>2019-10-12T17:35:13-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/jeremeamia/applied-oop-design-patterns-rolling-with-the-punches"/>
    <title>Applied OOP Design Patterns: Rolling with the Punches</title>
    <content type="html">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>
<media:thumbnail url="https://files.speakerdeck.com/presentations/650b70e54fc844cbb3b5cfab6215a683/preview_slide_0.jpg?13858577" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Jeremy Lindblom (@jeremeamia)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/563399</id>
    <published>2019-10-12T17:31:20-04:00</published>
    <updated>2019-10-12T17:31:55-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/jeremeamia/whats-new-in-php-7-dot-4"/>
    <title>What's New in PHP 7.4?</title>
    <content type="html">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>
<media:thumbnail url="https://files.speakerdeck.com/presentations/8201c24c572d4057b75ee70e4c468f3c/preview_slide_0.jpg?13858541" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Jeremy Lindblom (@jeremeamia)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/496020</id>
    <published>2019-02-20T20:53:30-05:00</published>
    <updated>2019-02-20T20:58:35-05:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/jeremeamia/protecting-your-code-from-a-mischievous-future"/>
    <title>Protecting Your Code From A Mischievous Future</title>
    <content type="html">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>
<media:thumbnail url="https://files.speakerdeck.com/presentations/b7085f8fdb4e4e458c215fd016796c12/preview_slide_0.jpg?11873059" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Jeremy Lindblom (@jeremeamia)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/465645</id>
    <published>2018-09-21T13:43:50-04:00</published>
    <updated>2018-09-21T13:52:43-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/jeremeamia/iterators-and-decorators-and-generators-oh-my"/>
    <title>Iterators and Decorators and Generators, Oh My!</title>
    <content type="html">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>
<media:thumbnail url="https://files.speakerdeck.com/presentations/ee9011a81ec744cf82ecb3ce1d6c872e/preview_slide_0.jpg?10812456" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Jeremy Lindblom (@jeremeamia)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/455980</id>
    <published>2018-07-24T17:02:11-04:00</published>
    <updated>2018-07-24T17:06:43-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/jeremeamia/uploading-to-s3-from-php"/>
    <title>Uploading to S3 from PHP</title>
    <content type="html">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>
<media:thumbnail url="https://files.speakerdeck.com/presentations/d18c3236a6374864a91974418e6297f9/preview_slide_0.jpg?10458533" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Jeremy Lindblom (@jeremeamia)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/353999</id>
    <published>2016-07-30T11:00:50-04:00</published>
    <updated>2016-07-30T11:04:56-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/jeremeamia/apis-with-lumen-guzzle-and-swagger"/>
    <title>APIs with Lumen, Guzzle, &amp; Swagger</title>
    <content type="html">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>
<media:thumbnail url="https://files.speakerdeck.com/presentations/29d02669da8c48bd8d6a02ca705bb9f2/preview_slide_0.jpg?6651704" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Jeremy Lindblom (@jeremeamia)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/344004</id>
    <published>2016-05-27T16:50:31-04:00</published>
    <updated>2016-05-27T16:53:46-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/jeremeamia/arestful-development-with-the-wordpress-api"/>
    <title>aRESTful Development with the Wordpress API</title>
    <content type="html">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>
<media:thumbnail url="https://files.speakerdeck.com/presentations/32dcabcdeebc4851aa95e9ce3cc5d990/preview_slide_0.jpg?6364730" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Jeremy Lindblom (@jeremeamia)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/326989</id>
    <published>2016-01-27T11:13:00-05:00</published>
    <updated>2016-10-10T11:08:58-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/jeremeamia/new-features-in-php-7"/>
    <title>New Features in PHP 7</title>
    <content type="html">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>
<media:thumbnail url="https://files.speakerdeck.com/presentations/442a895dfe1c4659948668b9262e91fe/preview_slide_0.jpg?6973673" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Jeremy Lindblom (@jeremeamia)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/316343</id>
    <published>2015-10-22T05:17:17-04:00</published>
    <updated>2015-10-22T08:57:08-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/jeremeamia/controlling-the-cloud-with-the-aws-sdk-for-php"/>
    <title>Controlling the Cloud with the AWS SDK for PHP</title>
    <content type="html">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>
<media:thumbnail url="https://files.speakerdeck.com/presentations/655e3fadd7564c6ba2518fffd6eb0768/preview_slide_0.jpg?5436752" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Jeremy Lindblom (@jeremeamia)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/316234</id>
    <published>2015-10-21T10:50:47-04:00</published>
    <updated>2015-10-21T11:07:37-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/jeremeamia/asynchronous-api-interaction-with-guzzle"/>
    <title>Asynchronous API Interaction with Guzzle</title>
    <content type="html">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>
<media:thumbnail url="https://files.speakerdeck.com/presentations/9fe9de820c9a47abbe24188cfe128a5f/preview_slide_0.jpg?5430927" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Jeremy Lindblom (@jeremeamia)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/315235</id>
    <published>2015-10-14T02:35:20-04:00</published>
    <updated>2015-10-14T02:37:22-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/jeremeamia/composing-a-better-phuture-1"/>
    <title>Composing a Better Phuture</title>
    <content type="html">Composer is both a dependency management and autoloader generation tool for PHP. This presentation highlights how and why we use Composer.</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/a04521515dc9480fb442e83c74fc67e8/preview_slide_0.jpg?5390382" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Jeremy Lindblom (@jeremeamia)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/311879</id>
    <published>2015-09-15T18:33:24-04:00</published>
    <updated>2015-09-15T19:14:32-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/jeremeamia/using-version-3-of-the-aws-sdk-for-php"/>
    <title>Using Version 3 of the AWS SDK for PHP</title>
    <content type="html">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>
<media:thumbnail url="https://files.speakerdeck.com/presentations/fc2f853d862e45c48f21cb6b7e3190e9/preview_slide_0.jpg?5245893" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Jeremy Lindblom (@jeremeamia)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/308483</id>
    <published>2015-08-12T03:43:10-04:00</published>
    <updated>2015-08-12T03:47:52-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/jeremeamia/autoloading-on-autopilot"/>
    <title>Autoloading on Autopilot</title>
    <content type="html">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>
<media:thumbnail url="https://files.speakerdeck.com/presentations/e0f91d447332425da127afaf20bd018d/preview_slide_0.jpg?5122562" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Jeremy Lindblom (@jeremeamia)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/300137</id>
    <published>2015-05-21T14:59:04-04:00</published>
    <updated>2015-05-21T15:17:18-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/jeremeamia/how-to-serialize-a-closure-and-get-a-million-downloads"/>
    <title>How to Serialize a Closure and Get a Million Downloads</title>
    <content type="html">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>
<media:thumbnail url="https://files.speakerdeck.com/presentations/e44d3f73f50a4873b1d60f7f687a2c12/preview_slide_0.jpg?4826172" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Jeremy Lindblom (@jeremeamia)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/294676</id>
    <published>2015-04-08T13:05:52-04:00</published>
    <updated>2015-04-08T13:15:28-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/jeremeamia/it-feels-great-to-iterate"/>
    <title>It Feels Great to Iterate</title>
    <content type="html">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>
<media:thumbnail url="https://files.speakerdeck.com/presentations/c02a6e5f178f4914b56aa827b3b10920/preview_slide_0.jpg?4627805" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Jeremy Lindblom (@jeremeamia)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/291807</id>
    <published>2015-03-14T17:46:54-04:00</published>
    <updated>2015-03-14T17:56:06-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/jeremeamia/whats-in-your-project-root"/>
    <title>What's in Your Project Root?</title>
    <content type="html">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>
<media:thumbnail url="https://files.speakerdeck.com/presentations/405f9eda2652488a92e25f7e2f59e219/preview_slide_0.jpg?4532270" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Jeremy Lindblom (@jeremeamia)</name>
    </author>
  </entry>
  <title>Jeremy Lindblom (@jeremeamia) on Speaker Deck</title>
  <updated>2023-05-26T13:18:41-04:00</updated>
</feed>
