diff --git a/files/Resume.pdf b/files/Resume.pdf index 417ec94..66cbdb0 100644 Binary files a/files/Resume.pdf and b/files/Resume.pdf differ diff --git a/sitemap.xml b/sitemap.xml index 342a61e..f8bc47a 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -105,4 +105,7 @@ https://scherzer.dev/Blog/20260810-fossy-2026 + + https://scherzer.dev/Blog/20260909-ecosystem-security + diff --git a/src/Blog/feed-rss.xml b/src/Blog/feed-rss.xml index e5a7b4d..8a58163 100644 --- a/src/Blog/feed-rss.xml +++ b/src/Blog/feed-rss.xml @@ -3,9 +3,14 @@ Daniel Scherzer's Blog Entries from Daniel Scherzer' personal blog - Mon, 10 Aug 2026 00:00:00 +0000 + Wed, 09 Sep 2026 00:00:00 +0000 https://github.com/DanielEScherzer/website-content https://scherzer.dev/Blog + + Joining the PHP Ecosystem Security Team + Wed, 09 Sep 2026 00:00:00 +0000 + https://scherzer.dev/Blog/20260909-ecosystem-security + FOSSY 2026 Mon, 10 Aug 2026 00:00:00 +0000 diff --git a/src/Blog/posts/20260909-ecosystem-security.md b/src/Blog/posts/20260909-ecosystem-security.md new file mode 100644 index 0000000..191c7b8 --- /dev/null +++ b/src/Blog/posts/20260909-ecosystem-security.md @@ -0,0 +1,34 @@ +--- +title: Joining the PHP Ecosystem Security Team +--- + +# Joining the PHP Ecosystem Security Team + +I'm excited to share that I am joining the PHP Foundation's Ecosystem Security +Team to help harden the PHP codebase. + +As AI tools generate more and more security reports, they frequently report +issues that the PHP project does not consider to be security vulnerabilities, +but which are still worth addressing as code hardening measures. Other times, +the AI agents simply don't understand something because it isn't documented +well. In those cases, the solution is to improve the documentation, benefiting +both AI agents and regular PHP developers. More details about this work are +available [on the PHP Foundation blog][phpf-blog]. + +I've only just begun, but I've found the work so far to be fascinating, giving +me a chance to work on parts of the PHP codebase that I'm not very familiar +with. + +I now contribute to PHP wearing three different "hats": + +* as a volunteer developer, maintaining the Reflection extension, implementing +new features, addressing bugs, etc. +* as a release manager, building and releasing new versions of the PHP 8.5 +branch +* [new] as a contractor for the PHP Foundation Ecosystem Security Team, helping +address non-security issues that are reported to the security team and qualify +as hardening + +I look forward to helping secure the PHP project moving forward. + +[phpf-blog]: https://thephp.foundation/blog/2026/09/09/welcome-daniel-scherzer/ diff --git a/src/Pages/OpenSourcePage.php b/src/Pages/OpenSourcePage.php index a2c33d7..ccd3795 100644 --- a/src/Pages/OpenSourcePage.php +++ b/src/Pages/OpenSourcePage.php @@ -58,6 +58,12 @@ class OpenSourcePage extends BasePage { 'slides' => '20260520 PHPTek PHP 8.6 presentation.pdf', 'blog' => '20260525-phptek-2026', ], + [ + 'conf' => 'Longhorn PHP Conference', + 'loc' => 'Austin, Texas', + 'date' => 'October 2026', + 'upcoming' => true, + ], ], ], 'PHP-SemVer' => [ @@ -84,6 +90,18 @@ class OpenSourcePage extends BasePage { ], ], ], + 'Workshop-PHP-extensions-Rust' => [ + 'title' => 'Creating new PHP extensions in Rust', + 'workshop' => true, + 'iterations' => [ + [ + 'conf' => 'Longhorn PHP Conference', + 'loc' => 'Austin, Texas', + 'date' => 'October 2026', + 'upcoming' => true, + ], + ], + ], ]; private const PHP_RFCS = [ @@ -258,12 +276,14 @@ private function addTalksSection(): void { ]; $list = FluentHTML::fromTag( 'ul' ); foreach ( array_reverse( self::OPEN_SOURCE_PRESENTATIONS ) as $details ) { + $workshop = ( $details['workshop'] ?? false ) ? '[workshop] ' : ''; if ( count( $details['iterations'] ) === 1 ) { $once = $details['iterations'][0]; $item = FluentHTML::make( 'li', [], [ + $workshop, '"' . $details['title'] . '," ', ...( $makeDetails( $details['iterations'][0] ) ), ] @@ -279,6 +299,7 @@ private function addTalksSection(): void { 'li', [], [ + $workshop, '"' . $details['title'] . '"', FluentHTML::make( 'ul', [], $iterations ), ] diff --git a/src/Pages/WorkPage.php b/src/Pages/WorkPage.php index cbe00d6..6267cac 100644 --- a/src/Pages/WorkPage.php +++ b/src/Pages/WorkPage.php @@ -95,9 +95,33 @@ protected function build(): void { $this->contentWrapper->append( FluentHTML::make( 'h1', [], 'Work experience' ), ); + $this->addPHPSecuritySection(); $this->addWikiTeqSection(); } + private function addPHPSecuritySection(): void { + $this->contentWrapper->append( + FluentHTML::make( 'h3', [ 'class' => 'subsection-header' ], 'PHP Ecosystem Security' ), + FluentHTML::make( + 'p', + [], + [ + << './Blog/20260909-ecosystem-security' ], + 'my blog post' + ), + ' for more details.', + ] + ), + ); + } + private function addWikiTeqSection(): void { $makeLink = static fn ( $href, $text ) => FluentHTML::make( 'a', @@ -115,12 +139,12 @@ private function addWikiTeqSection(): void { [], [ <<

See the links in the navigation bar above for more information about my -experience.

Contact

  • LinkedIn
  • Email: daniel.e.scherzer@gmail.com

Blog

I also have a blog. You can see a full index of my posts here. My latest blog post is:

FOSSY 2026

Monday, 10 August 2026

Last week, I was in Vancouver for the FOSSY 2026 conference, where I gave a talk -about my experience as a new open-source contributor. My experiences as a -contributor, and previous conferences I have attended, have mostly been focused -on PHP, but FOSSY is a conference about open source software more broadly. Continue reading...

\ No newline at end of file +experience.

Contact

  • LinkedIn
  • Email: daniel.e.scherzer@gmail.com

Blog

I also have a blog. You can see a full index of my posts here. My latest blog post is:

Joining the PHP Ecosystem Security Team

Wednesday, 09 September 2026

I'm excited to share that I am joining the PHP Foundation's Ecosystem Security +Team to help harden the PHP codebase. Continue reading...

\ No newline at end of file diff --git a/tests/data/OpenSource.html b/tests/data/OpenSource.html index 7ba01f3..1d19090 100644 --- a/tests/data/OpenSource.html +++ b/tests/data/OpenSource.html @@ -1,7 +1,7 @@ Open source

Open source contributions

I contribute to open-source projects on GitHub as @DanielEScherzer.

Conference Presentations

I have given a few presentation at various open-source-related conferences. The slides and my post-conference write-ups in my blog are listed below. Note that -even when a presentation is given multiple times, the content changes.

  • "From First PR to Release Manager: A Path into Open Source," FOSSY 2026. Vancouver, Canada, August 2026. (Slides, Blog write up)
  • "Semantic Versioning and the PHP Ecosystem: A Reality Check," PHP Tek 2026. Chicago, Illinois, May 2026. (Slides, Blog write up)
  • "PHP 8.6: The Inside Scoop," PHP Tek 2026. Chicago, Illinois, May 2026. (Slides, Blog write up)
  • "Introduction to Rust for Experienced Software Developers," ConFoo Montreal 2026. Montreal, Canada, February 2026. (Slides, Blog write up)
  • "PHP 8.5: New Features from the Source"

PHP

I started contributing to the PHP source in August 2024, working primarily on +even when a presentation is given multiple times, the content changes.

  • [workshop] "Creating new PHP extensions in Rust," Longhorn PHP Conference. Austin, Texas, October 2026. Upcoming.
  • "From First PR to Release Manager: A Path into Open Source," FOSSY 2026. Vancouver, Canada, August 2026. (Slides, Blog write up)
  • "Semantic Versioning and the PHP Ecosystem: A Reality Check," PHP Tek 2026. Chicago, Illinois, May 2026. (Slides, Blog write up)
  • "PHP 8.6: The Inside Scoop"
    • Longhorn PHP Conference. Austin, Texas, October 2026. Upcoming.
    • PHP Tek 2026. Chicago, Illinois, May 2026. (Slides, Blog write up)
  • "Introduction to Rust for Experienced Software Developers," ConFoo Montreal 2026. Montreal, Canada, February 2026. (Slides, Blog write up)
  • "PHP 8.5: New Features from the Source"

PHP

I started contributing to the PHP source in August 2024, working primarily on bug fixes, improvements to the Reflection extension and various cleanup. In March 2025, I requested and was granted access to make direct changes (and approve others' changes) to PHP. I also became the official maintainer of the reflection extension.

Also in March 2025, I volunteered to serve as one of the release managers for diff --git a/tests/data/Work.html b/tests/data/Work.html index a5fb637..ab3cfb6 100644 --- a/tests/data/Work.html +++ b/tests/data/Work.html @@ -1,8 +1,10 @@ -Work

Work experience

WikiTeq

I joined WikiTeq in January 2023 as a Technical Project Manager, working with a -team of developers around the world to support clients that use MediaWiki, -including major corporations and government agencies. As part of my work at -WikiTeq, I developed multiple MediaWiki extensions, though most of them are -private. My contributions made as part of my work at WikiTeq are all available -under the account @DanielButAtWork on GitHub. Public extensions that I created include:

  • MixedVisibilityFiles: Support making some on-wiki files public and others private
  • ZoteroConnector: Import references and attachments from Zotero into a wiki
  • MarkdownPages: Add support for markdown as a page content model
  • HoneyPot: Implementation of a honey pot during account creation
  • MinimalExample: Demonstration of the process of building an extension

I also gave talks at multiple MediaWiki-related conferences on behalf of +Work

Work experience

PHP Ecosystem Security

In September 2026, I joined the PHP Foundation's Ecosystem Security Team to work +on hardening the PHP codebase and addressing non-security issues that are +reported to the security team. See my blog post for more details.

WikiTeq

I worked at WikiTeq from January 2023 until May 2026 as a Technical Project +Manager, working with a team of developers around the world to support clients +that use MediaWiki, including major corporations and government agencies. As +part of my work at WikiTeq, I developed multiple MediaWiki extensions, though +most of them are private. My contributions made as part of my work at WikiTeq +are all available under the account @DanielButAtWork on GitHub. Public extensions that I created include:

  • MixedVisibilityFiles: Support making some on-wiki files public and others private
  • ZoteroConnector: Import references and attachments from Zotero into a wiki
  • MarkdownPages: Add support for markdown as a page content model
  • HoneyPot: Implementation of a honey pot during account creation
  • MinimalExample: Demonstration of the process of building an extension

I also gave talks at multiple MediaWiki-related conferences on behalf of WikiTeq. Those talks were recorded and are available publicly:

For talks that I have given at open-source conferences in my personal capacity, see the page about open source.

\ No newline at end of file diff --git a/tests/data/blog-index.html b/tests/data/blog-index.html index 7678744..3fff344 100644 --- a/tests/data/blog-index.html +++ b/tests/data/blog-index.html @@ -1,5 +1,6 @@ -Blog index

Blog index

FOSSY 2026

Monday, 10 August 2026

Last week, I was in Vancouver for the FOSSY 2026 conference, where I gave a talk +Blog index

Blog index

Joining the PHP Ecosystem Security Team

Wednesday, 09 September 2026

I'm excited to share that I am joining the PHP Foundation's Ecosystem Security +Team to help harden the PHP codebase. Continue reading...

FOSSY 2026

Monday, 10 August 2026

Last week, I was in Vancouver for the FOSSY 2026 conference, where I gave a talk about my experience as a new open-source contributor. My experiences as a contributor, and previous conferences I have attended, have mostly been focused on PHP, but FOSSY is a conference about open source software more broadly. Continue reading...

Rewriting Reflection with Rust

Friday, 10 July 2026

Over the last few weeks, I have been working on rewriting the PHP Reflection