Is This Test Worth It? Evaluating the Real Value of Testing
Unit, integration, contract, or end-to-end: the question that matters is what a test actually buys you.
Notable talks
Unit, integration, contract, or end-to-end: the question that matters is what a test actually buys you.
A keynote on swapping the ownership model for stewardship: in code, career, and community.
Docker for the everyday stuff that is not deployment: runtimes, dev tools, and throwaway utilities.
From the comment cards
Tim's public speaking is great: confident, vulnerable, and low-ego. He does a great job with examples and he seems to know the audience well.
Nick Pattison · php[tek] 2023 · on joind.in on Let Go of Ownership
Great talk. I'm stealing the "take stewardship" instead of "take ownership" approach to "I want you to take ownership" conversations.
Sandy Smith · php[tek] 2023 · on joind.in on Let Go of Ownership
The slide presentation set the standard for the rest of the conference, which no one supplanted.
Chris Meza · Lone Star PHP 2016 · on joind.in on Adventures of a Contract Developer
Tim is one of my favorite speakers, and I certainly appreciated his emphasis on giving us real, "you can use these today" examples. Even the Live Demo Gods approved!
Steve Grunwell · Northeast PHP 2016 · on joind.in on The API Toolbox
I'm literally just going to steal Tim's toolbox and share it with others as if I found all the tools.
Jason Lotito · ConFoo 2015 · on joind.in on The API Toolbox
Both last year and this year I thought I already knew a lot about his topics but I went because I knew he is good, and both times I ended up learning a lot.
Phillip Shipley · php[tek] 2016 · on joind.in on Robust Second-factor Authentication with PHP
Third time seeing this talk, and it keeps getting better. Any time someone talks about ownership at work (or worse, CODEOWNERS) I want to scream "STEWARDS!".
Steve Grunwell · PHP TEK 2025 · on joind.in on Let Go of Ownership
The tutorial slot for the php[tek] BattleSnake tournament: quickstart, docs overview, and a dissection of a snake.
Events, aggregates, projections, snapshots, and commands, taken apart so the pattern is easier to use well.
Unit, integration, contract, or end-to-end: the question that matters is what a test actually buys you.
PHP TEK 2025 · Longhorn PHP 2023 · php[tek] 2023
A keynote on swapping the ownership model for stewardship: in code, career, and community.
CascadiaPHP 2024 · php[tek] 2024 · JestPHP
Docker for the everyday stuff that is not deployment: runtimes, dev tools, and throwaway utilities.
A no-slides, just-code introduction to API Handler, a PSR-15 middleware pattern for building APIs.
Wrapping PSR-7 request and response objects so the framework pieces you already use fit together.
How a production API team uses HAL as a hypermedia format, the constraints on it, and the client-side cache pattern it enables.
A hands-on look at HTTP Messages and HTTP Handlers and how to properly leverage them.
Do consistent API patterns and good HTTP clients make the API-specific client library obsolete?
Hypermedia and HATEOAS without the skynet: applying what works for human navigation of the web to APIs.
Common code patterns used when building APIs with PHP, with examples.
API versioning: you do not want to do it, and when you do, someone will say you did it wrong.
URIs are the path to your API data, and different design patterns use them very differently.
Requests and responses are the core of an API. Pick formats that are natural for the consumer.
How to authenticate API users, when you do not need to, and what each method trades off.
We consume APIs every day as SDKs and libraries. The same design principles apply to the web APIs we build.
php[world] 2018 · Cascadia PHP · Longhorn PHP 2018
API tools, services, and techniques that need little or no setup and that you can use before I stop talking.
php[world] 2018 · Longhorn PHP 2018 · php[world] 2017
A workshop on going from an API-first decision to an API people actually want to use.
WavePHP 2018 · php[world] 2017 · ZendCon 2016 · OpenWest 2016 · Lone Star PHP 2016 · Nomad PHP 2015 · php[tek] 2015
Stop abusing cron. Daemonize a PHP script that responds responsibly to process signals.
PHP Unicorn (online) · Northeast PHP 2016 · OpenWest 2016 · Lone Star PHP 2016 · php[tek] 2014 · php[tek] 2012 uncon
A contract developer for ten years shares a philosophy of contracting and the clients you will run into.
Nomad PHP 2016 · ZendCon 2016 · OpenWest 2016 · php[tek] 2016
Single-use codes, phone verification, apps, and physical devices: how each second factor works and what it costs you.
ScotlandPHP 2016 · Northeast PHP 2016 · ConFoo 2015 · Madison PHP 2014
The tools worth having around when you build and consume APIs.
When to use a cron, when to use a queue, and when you really need a daemon.