Speaker

Larry Garfield

Larry Garfield

Aspiring bladesmith; ethical troublemaker

Evanston, Illinois, United States

Actions

Larry Garfield has been building websites since he was a sophomore in high school, which is longer ago than he'd like to admit. Larry was most recently Principal Engineer at MakersHub. He has also been a Staff Engineer at both TYPO3 and LegalZoom, and Director of Developer Experience for Platform.sh. A long-time Drupal contributor and consultant, Larry led the Drupal 8 Web Services initiative that helped transform Drupal into a modern PHP platform. Larry is a member of the PHP-FIG Core Committee, co-author of several PHP RFCs, and has authored several books on PHP development including "Thinking Functionally in PHP" and "Exploring PHP 8.0."

Larry holds a Master’s degree in Computer Science from DePaul University. He blogs occasionally at both https://www.garfieldtech.com.

Area of Expertise

  • Information & Communications Technology

Topics

  • PHP
  • Management
  • Change Management
  • Cloud
  • Free Software
  • OpenSource

Software Management Lessons from the 1960s

"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.

No, you're not doing MVC on the server (and that's OK)

PHP is inundated with "MVC frameworks" of various shapes and sizes. It's such a buzzword that recruiters use it to mean "separation of concerns." But... are any of them actually doing Model-View-Controller?

It turns out, no. In fact, MVC does not exist on the server-side. We've been doing it wrong all this time!

But fear not: we can still write good, decoupled, separated-concerns code on the backend. The patterns are there, many of them good, but we should recognize them for what they are.

In this session we'll explore what MVC actually means, how its meaning got twisted, alternative models like Action-Domain-Responder, and how to actually think about server-side web architecture. Hint: It's not at all the same as front-end or desktop.

Never* use arrays

PHP loves its arrays. Arrays are the uber-data structure. They're a list, a map, a stack, a queue, everything in one! Which is the problem.

Modern PHP grossly over-uses arrays. In most cases there are better options today, and when you find yourself reaching for "oh I'll just make this an associative array", stop. An extra 60 seconds of thought and code will often give you a more readable, faster, more memory-efficient, more flexible alternative. Classes, iterables, and collections can and should replace arrays in most of your day to day coding.

This talk will go through what PHP arrays actually are (hint: they are not, in fact, arrays at all), why they're so problematic, and what to do instead. By the end, you should find yourself (almost) never reaching for arrays to solve a problem.

Free Software: It's not about the license

Free Software. Open Source. Software Freedom. Free as in Speech or Free as in Beer?

We're all familiar with the buzzwords, the catchphrases, and slogans. We all know the "GPL vs BSD" debate, and have probably participate in it at some point. But what do they mean, really? Is Open Source really just a friendlier name for Free Software, or is there something more to it?

Yes. Yes there is. Free Software, at its core, is a philosophical, cultural, and political movement. It is a part of, and inspiration for, the Free Culture movement. A movement born of a simple belief: That you should have control of your own digital destiny, and that it is immoral to deprive people of that right.

Let's try to recollect where our community came from, and the principles upon which it was founded.

Demystifying the protocol

We send HTTP messages all day, every day. We send them over TCP, and over IP. They travel via Ethernet. We all just assume those work, but how do they work?

In this session, we will travel down the stack and see what actual messages are used to make a web page appear. All of them. How do HTTP 1.1, HTTP 2, and HTTP 3.0 differ, at the wire level?

Get your network engineer hats on. We're going all the way down to binary to see just how much work goes into delivering your cat picture.

Building a cloud-friendly application

The days of hand-crafted artisanal servers are long over. Modern web applications need to be able to run on many different servers without code changes. Not just different hosting providers, but different environments on the same hosting provider. Whether you're using a legacy dev/stage/prod setup or a modern branch-is-environment host, modern hosting imposes some requirements on your application design but also offers a huge potential for new and powerful tools.

In this session, we'll explore some key guidelines for building a cloud-friendly application, as well as look at some architectural options that a modern hosting platform enables.

Advanced PHPUnit shenanigans

Hopefully by now, you know that testing is important, and you've integrated PHPUnit into your workflow. (If not, go watch one of those talks.) So now what?

In this "testing 202" course, we'll explore some features of PHPUnit you may not be using (but should), some techniques you may not have thought of, and how to extend PHPUnit yourself for your own nefarious testing purposes. And we'll answer the question, "so what are traits actually good for?"

A guide to PHProperties

PHP properties are having a golden age. Starting with PHP 7.4, they've become steadily more capable and flexible, and now in PHP 8.4 interface properties, hooks, and asymmetric visibility absolutely blow open the power of properties.

So now what? Now that we have all this power, what shall we do with it? Is it really just an edge case benefit, or does it necessitate a rethink of what it even means to model data? Or both?

In this session, we'll look at PHP properties, and OOP modeling in general, with fresh eyes to see all that they can, should, and will do to make our lives that much better.

Piping Hot PHP

PHP 8.5 brought us the pipe operator. PHP 8.6 will bring us the rest of the picture: Partial function application and (hopefully) a compose operator. Together, these seemingly minor features revolutionize how we can write and structure code.

So what does that look like? What do these new language features do, and how can they help us write better, more compact, more understandable, more testable code? Is the era of functional programming in PHP finally here?

In this session we'll review these and related functionality that are quietly ushering in revolution in how PHP can be written, and why the future looks so bright.

Larry Garfield

Aspiring bladesmith; ethical troublemaker

Evanston, Illinois, United States

Actions

Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.

Jump to top