Sign in

Len Woodward

@projektgopher.com
1.1K followers 174 following 352 posts

Full-stack senior Laravel and JS developer based in Vancouver, BC, Canada LenWoodward.com CoFounder @ artisan.build Currently building hallway.fm Watch it happen @ artisan.community

PostsRepliesMedia
Len Woodward @projektgopher.com · 25/09/2026
One of the many things we've been working on lately at Artisan Build is finally ready to start being talked about publicly! But it's still early, and we only want to include people in our immediate networks for now. So if you're seeing this, that means you. scalpels.app/street-team
scalpels.app
Join the Scalpels Street Team
We could use your help launching Scalpels.
100
Len Woodward @projektgopher.com · 25/09/2026
PHP's next time class marks a moment and leaves telling the time to a clock. The regex RFC's callback question is settled, a closure-as-entry-point idea lasted a day, and 8.6 is frozen. 12 stories, about 12 minutes. New one every week. youtu.be/ygEvagzKZy8 #PHP #PHPInternals #PHP86
youtu.be
This Week In PHP Internals | Sept 24, 2026
PHP's next time class can't tell you what time it is — plus the regex callback question settled, a compiled-regex alternative, and 8.6 frozen. 12 stories, about 12 minutes.
110
Len Woodward @projektgopher.com · 21/09/2026
Come watch me try to justify one of my many fixations!
000
Len Woodward @projektgopher.com · 18/09/2026
A PHP RFC went to a vote Tuesday, was winning 4 to 1, and its author closed it inside the hour — over what the one no vote said. Also: the array_str_contains benchmark came back slower than a foreach loop. 10 stories, ~10 min. youtu.be/flBkw2Rf7xE #PHP #PHPInternals #PHP86
youtu.be
This Week In PHP Internals | Sept 17, 2026
A vote won 4 to 1 and closed inside the hour, array_str_contains slower than foreach, PREG_THROW_ON_ERROR, PEAR bug data recovered. 10 stories, about 10 minutes.
111
Len Woodward @projektgopher.com · 10/09/2026
A PHP RFC went to a vote Friday. By Sunday night its author had pulled it, over one no vote from the person who wrote the policy it broke. What's left: when a regex fails, is that your bug, or something you catch? 11 stories, ~13 min. youtu.be/AoMmbSOknmw #PHP #PHPInternals #PHP86
youtu.be
This Week In PHP Internals | Sept 9, 2026
A PHP RFC went to a vote on Friday. By Sunday night its author had pulled it back. 11 stories, about 13 minutes.
100
Len Woodward @projektgopher.com · 03/09/2026
No PHP RFC has been in the voting phase for 3 weeks. So the list did something else: somebody scanned half a million PHP files to work out what a PHP identifier actually is, then split his own proposal into 3. 11 stories, ~13 min. youtu.be/4mYKAxZaWeo #PHP #PHPInternals
youtu.be
This Week in PHP Internals | September 2, 2026
Three weeks with no RFC in the voting phase. What a PHP identifier actually is, an RFC to end PHP’s endorsement of PEAR, and whether base conversion counts as parsing. 11 stories, ~13 min.
120
Len Woodward @projektgopher.com · 28/08/2026
For the 2nd week running, no PHP RFC is in the voting phase. So the internals list spent the week on something else: who is actually writing the mail. youtu.be/y5Evw_KN0II
youtu.be
This Week in PHP Internals — August 26, 2026
For the second week running, no PHP RFC is in the voting phase. 10 stories, about 10 minutes.
111
Len Woodward @projektgopher.com · 21/08/2026
No RFC went to a vote in PHP internals this week — nothing is in the voting phase at all — so the list spent it on design instead. A brand-new contributor's search function ran into a counter-proposal for a general lazy array slice. And PHP 8.6 beta 1 shipped. youtu.be/5okEY31nyCs
youtu.be
This Week in PHP Internals — August 19, 2026
No RFC went to a vote — so the list spent the week on design. Complete coverage of the php-internals mailing list.
100
Len Woodward @projektgopher.com · 17/08/2026
Can’t wait to give this talk
020
Len Woodward @projektgopher.com · 13/08/2026
This Week in PHP Internals, Aug 12: the 35-ballot deprecation verdict — list() survives on a flat tie. Pipe assignment declined; readonly defaults + const writes in; 8.6's RFC season is over. youtu.be/6zepFnDTU1A #PHP #PHPInternals
youtu.be
This Week In PHP Internals | August 12, 2026
Complete coverage of the php-internals mailing list, August 5–11, 2026. An Artisan Build production.
112
Len Woodward @projektgopher.com · 07/08/2026
This mornings talk at #fossy by Elizabeth Barron (the exec dir of the @ThePHPF ) on the challenges in sustaining php was awesome. Go donate to the foundation so we can all keep writing code for fun and profit! opencollective.com/phpfoundation
012
Len Woodward @projektgopher.com · 07/08/2026
Today at #fossy , Ben Ramsey taught us about the surprisingly interesting story of PHP’s license. I didn’t know any of this, and I’m amazed he was able to make a talk like this so engaging!
010
Len Woodward @projektgopher.com · 05/08/2026
I'm speaking at Longhorn PHP in Austin this October! "How Tetris Made Me a Better Programmer" — the falling-blocks game has a real 60-page spec, I built it in PHP, and it taught me plenty about state machines and specs. Blind Bird pricing through Aug 8: longhornphp.com/schedule #PHP
longhornphp.com
Longhorn PHP 2026 — Schedule
October 15–16, Austin TX. Talks, tutorials, and the full speaker lineup.
022
Len Woodward @projektgopher.com · 05/08/2026
This week in PHP internals: the 35-ballot deprecation vote enters its final week with list() deadlocked 21-21, a second author pulled his own vote over process rules, and PHP 8.6 officially gets a Duration class. Full rundown: youtu.be/8YUc-A2h-f4 #PHP #PHPInternals
youtu.be
This Week in PHP Internals — August 5, 2026
Complete weekly digest of the php-internals mailing list. An Artisan Build production.
111
Reposted by Len Woodward
Peter Van Dijck @petervandijck.bsky.social · 02/08/2026
To see who is sponsoring podcasts in your space, who they’re booking as guests and a ton more, I’ve been building sputnikintelligence.com, ping me if you want early access
sputnikintelligence.com
Newsletter and podcast intelligence for your AI agent
Sputnik Intelligence indexes newsletters and podcasts — the parts of the web where real people still speak — and connects your AI agent to it via MCP and API.
111
Len Woodward @projektgopher.com · 02/08/2026
This week in PHP internals: 42 RFC ballots open at once. list() is losing its deprecation vote, a pipe operator split the room 8-8, and one vote lasted 18 minutes. Full rundown: youtu.be/Af_8W6wxx6k #PHP #PHPInternals
youtu.be
This Week In PHP Internals | July 29, 2026
42 RFC ballots open at once - the week on the php.internals mailing list.
110
Len Woodward @projektgopher.com · 23/07/2026
🧵 This Week in PHP Internals — Jul 22, 2026 The season's first RFC ballots are open and lopsided: Duration cruising 23–1, minimum versions right behind. gd 2.4 arrived 4 days late. Monday, PHP starts voting on deprecating list(). Full video 👇 youtu.be/tCUKb5rPuJ4 #PHP #PHPInternals
youtu.be
This Week In PHP Internals | July 22, 2026
YouTube video by Artisan Build
110
Len Woodward @projektgopher.com · 22/07/2026
Ever wondered if the code you’re shipping when you’re “moving fast” is sticking?
000
Len Woodward @projektgopher.com · 16/07/2026
🧵 This Week in PHP Internals — Jul 15, 2026 A brand-new `extension` keyword rewrote itself mid-thread, deprecations froze with ballots set, autoloading split in two, Duration drew its first No, and a JSX-style RFC landed hours before recording. Full video 👇 youtu.be/cGNa33qGqEg #PHP #PHPInternals
youtu.be
This Week In PHP Internals | July 15, 2026
YouTube video by Artisan Build
112
Len Woodward @projektgopher.com · 14/07/2026
No AI decides your score. It's deterministic — computed locally, from git history alone, without ever reading your code. The AI comes in after: point your agent at the risk map over MCP and let it pay down the debt in the right order. A credit score for your repo. Free for open source: ballast.now
130
Len Woodward @projektgopher.com · 09/07/2026
🧵 This Week in PHP Internals — Jul 8, 2026 A deprecations fight over WordPress, then over evidence. Duration wrapped. Two rival autoloading designs collided. Typed closures are back. Docs-separation passed 26–1. Full video 👇 youtu.be/5Rr_H3vFhjE #PHP #PHPInternals #PHP86
youtu.be
This Week In PHP Internals | July 8, 2026
YouTube video by Artisan Build
111
Len Woodward @projektgopher.com · 03/07/2026
Being a polymath can be interesting, but it can also backfire. Like when your kid asks you (at bedtime) how books are made, and you decide that’s a perfect time for a 90 minute lesson on bookbinding
010
Len Woodward @projektgopher.com · 01/07/2026
🧵 This Week in PHP Internals — Jul 1, 2026 Generics AND __exists both voted down. A deprecations RFC became a fight about evidence. A new Primary Constructors RFC. And a heartfelt plea for async. Full video 👇 youtu.be/dX_Hd_92x7M #PHP #PHPInternals #PHP86
youtu.be
This Week in PHP Internals | July 1, 2026
YouTube video by Artisan Build
102
Len Woodward @projektgopher.com · 30/06/2026
Absolutely love this way of building apps. One language throughout our entire product
041
Len Woodward @projektgopher.com · 25/06/2026
This Week In PHP Internals | June 24, 2026 A deprecations RFC that became an argument about evidence and respect, a stopwatch class that swallowed the mailing list, two revivals laid to rest, and the headline votes still stalled while the small ones glide through. youtu.be/kkB80mqB-B8
youtu.be
This Week In PHP Internals | June 24, 2026
YouTube video by Artisan Build
000
Len Woodward @projektgopher.com · 22/06/2026
I know we haven't been going hard on our youtube for very long yet, but thank you to all my friends on here, for helping Artisan Build cross our first milestone! youtube.com/@ArtisanBuild
020
Len Woodward @projektgopher.com · 17/06/2026
A generics vote going down, 3 RFCs rejected, 4 passed, and a modules debate that keeps multiplying. This Week In PHP Internals | June 17, 2026 youtu.be/6m3lCrJ7XsU
youtu.be
This Week In PHP Internals | June 17, 2026
YouTube video by Artisan Build
000
Len Woodward @projektgopher.com · 12/06/2026
I’m still experimenting with fable so I don’t have a concrete anecdote to contribute quite yet, but this is an interesting one
000
Len Woodward @projektgopher.com · 11/06/2026
We had some interesting developments in the pursuit of Generics in PHP this week on the internals mailing list. This Week In PHP Internals | June 10, 2026 youtu.be/GVaPLIIQ1Eg
youtu.be
This Week In PHP Internals | June 10, 2026
YouTube video by Artisan Build
010
Len Woodward @projektgopher.com · 05/06/2026
We wrapped a client contract this previous week, and that lead to us discussing just how much stuff we've shipped this past year. The speed at which we're able to ship in this ecosystem of our is staggering. If you've got hard problems to solve, we'd love to collaborate. youtu.be/2Z0QUchSSGg
youtu.be
Impromptu 2025-2026 Retrospective
YouTube video by Artisan Build
120
Len Woodward @projektgopher.com · 04/02/2026
Looks like I'm headed to Boston in a few months
010
Len Woodward @projektgopher.com · 03/02/2026
I posted my RFC to r/php and there is some absolutely spirited discussion around it. www.reddit.com/r/PHP/commen...
reddit.com
From the PHP community on Reddit: [RFC] Trailing Boolean Operators
Posted by ProjektGopher - 12 votes and 46 comments
010
Len Woodward @projektgopher.com · 30/01/2026
I've been building a layered rendering engine and component library for building TUI applications named Parfait. Here's a sneak peek!
011
Len Woodward @projektgopher.com · 28/01/2026
I built an agentic programmer using Laravel Prompts as a demo for a talk on async php. The secret sauce behind ClaudeCode, OpenCode, GeminiCli, Codex, etc is just the interface. The actual agent is shockingly simple, and you can do it using standard http requests in a loop.
042
Reposted by Len Woodward
Ed Grosvenor @gros.co · 04/07/2025
I said months ago that I wanted to start pairing regularly with new people, but client work got in the way. Summer is shaping up to be a relatively peaceful time for me, so now is a great time to get this started. Use this link to grab an hour! calendar.app.google/RthNTaLYCA9Q...
calendar.app.google
Pair With Me - Ed Grosvenor
242
Len Woodward @projektgopher.com · 24/06/2025
Hey everyone, @gros.co and I had planned on doing the draw for our extra @laracon.us community bundle ticket today, but I had to go to the hospital to get my gallbladder removed instead. You've got one more day to go to laravel.recipes and register
laravel.recipes
Welcome
Our recipes for Laravel are interactive scripts that help you do hours, days, or weeks of work on your Laravel app with a few clicks.
012
Len Woodward @projektgopher.com · 18/06/2025
Hey everyone, @gros.co and I have an extra ticket for LaraconUS next month. Comes with hangouts and merch. If you want to be in next week's draw to win it (along with $500 towards your travel) goto laravel.recipes and register. The entry form is on your home page
laravel.recipes
Welcome
034
Len Woodward @projektgopher.com · 04/04/2025
Today's "Slack Chat Quote of the Day" goes out to @coulb.com: "You know a Boolean is just an enum with two cases"
050
Len Woodward @projektgopher.com · 27/02/2025
Today I acquired 4.5 million shares in Artisan Build, Inc. AMA
100
Len Woodward @projektgopher.com · 03/02/2025
The LaraconEU stream starts at midnight Vancouver time... Guess I'm not sleeping tonight 🤷
020
Len Woodward @projektgopher.com · 01/02/2025
You can tell scientists apart from Roman historians by how they pronounce "Molecules".
media.tenor.com
a colorful background with the words " the more you know " and a star
ALT: a colorful background with the words " the more you know " and a star
010
Len Woodward @projektgopher.com · 08/01/2025
Today is my 38th birthday, and all I want is a job at Laravel 🫣 Oh right, and health and joy and all that stuff too
320
Len Woodward @projektgopher.com · 07/01/2025
He's doing it. He's fkn doing it
030
Len Woodward @projektgopher.com · 06/01/2025
I can't wait. This will super charge the abilities of Laravel devs
060
Len Woodward @projektgopher.com · 04/01/2025
Running `./vendor/bin/pint --diff=main` in CI could save you a **ton** of time... 👀 github.com/laravel/pint...
github.com
[1.x] Adds `--diff` option by ProjektGopher · Pull Request #327 · laravel/pint
This PR is how I've always wished the --dirty flag worked. pint --dirty will lint staged and unstaged files (and possibly untracked?). But once a file is committed, it will not be touched again...
0100
Len Woodward @projektgopher.com · 30/12/2024
Hotdog wiener counts as a vegetable when you're solo-parenting, right?
420
Len Woodward @projektgopher.com · 27/12/2024
Day 4/4 of Christmas family feasts is in the bag. If you need me I'll be asleep for the next week. ✌️
020
Len Woodward @projektgopher.com · 25/12/2024
Any of the other Dads out there excited to find out what they bought for their kids tomorrow?
460
Len Woodward @projektgopher.com · 24/12/2024
First consecutive day of hosting large family events done, only four more to go
281
Len Woodward @projektgopher.com · 22/12/2024
It's the Sunday before Christmas, and I too am contributing to the abnormally high density of dads at the shopping centre
110