> ## Documentation Index
> Fetch the complete documentation index at: https://developer.upsun.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Matthias Van Woensel

> Articles written by Matthias Van Woensel.

<div className="flex items-center gap-4 mb-8 not-prose">
  <div className="flex flex-wrap gap-3">
    <a href="https://www.linkedin.com/in/matthias-van-woensel-267a069" target="_blank" rel="noopener noreferrer" className="inline-flex items-center gap-1.5 px-3 py-1.5 rounded-full border border-gray-200 dark:border-white/10 text-sm text-gray-700 dark:text-gray-300 hover:border-primary dark:hover:border-primary-light transition-colors">LinkedIn</a>
  </div>
</div>

<div className="blog-card-grid">
  <a href="/posts/hands-on/that-cron-should-be-a-worker" className="blog-card group rounded-xl bg-card border-theme card-hover shadow-sm hover:shadow-md transition-all overflow-hidden flex flex-col">
    {`/images/posts/hands-on/that-cron-should-be-a-worker/that-cron-should-be-a-worker.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/hands-on/that-cron-should-be-a-worker/that-cron-should-be-a-worker.webp" alt="That cron should be a worker" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`hands-on` !== '' && (
                      <span className="text-xs font-semibold uppercase tracking-wider px-2 py-0.5 rounded-md bg-accent-badge border border-accent-soft text-accent">
                        hands-on
                      </span>
                    )}

        <span className="text-xs text-subtle">Wednesday, March 4th 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">That cron should be a worker</h3>
      <p className="blog-card-desc">Long-running crons block your deployments, steal resources from your app container, and create support tickets. Here's when to use workers instead.</p>
    </div>
  </a>

  <a href="/posts/insights/why-you-cant-just-add-infinite-php-fpm-workers" className="blog-card group rounded-xl bg-card border-theme card-hover shadow-sm hover:shadow-md transition-all overflow-hidden flex flex-col">
    {`/images/posts/insights/why-you-cant-just-add-infinite-php-fpm-workers/why-you-cant-just-add-infinite-php-fpm-workers.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/insights/why-you-cant-just-add-infinite-php-fpm-workers/why-you-cant-just-add-infinite-php-fpm-workers.webp" alt="Why you can't just add infinite PHP-FPM workers" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`insights` !== '' && (
                      <span className="text-xs font-semibold uppercase tracking-wider px-2 py-0.5 rounded-md bg-accent-badge border border-accent-soft text-accent">
                        insights
                      </span>
                    )}

        <span className="text-xs text-subtle">Monday, December 8th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Why you can't just add infinite PHP-FPM workers</h3>
      <p className="blog-card-desc">Workers need memory. Learn how PHP-FPM sizing hints work, why you can't just add infinite workers, and how to tune your worker count based on actual memory usage.</p>
    </div>
  </a>

  <a href="/posts/insights/why-setting-your-php-memory-limit-to-60gb-wont-help" className="blog-card group rounded-xl bg-card border-theme card-hover shadow-sm hover:shadow-md transition-all overflow-hidden flex flex-col">
    {`/images/posts/insights/why-setting-your-php-memory-limit-to-60gb-wont-help/why-setting-your-php-memory-limit-to-60gb-wont-help.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/insights/why-setting-your-php-memory-limit-to-60gb-wont-help/why-setting-your-php-memory-limit-to-60gb-wont-help.webp" alt="Why setting your PHP memory limit to 60GB won't help" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`insights` !== '' && (
                      <span className="text-xs font-semibold uppercase tracking-wider px-2 py-0.5 rounded-md bg-accent-badge border border-accent-soft text-accent">
                        insights
                      </span>
                    )}

        <span className="text-xs text-subtle">Monday, December 1st 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Why setting your PHP memory limit to 60GB won't help</h3>
      <p className="blog-card-desc">When you see a PHP memory limit error, your instinct shouldn't be to just increase the limit. Learn what PHP memory\_limit actually does and why blindly increasing it can hurt your site's uptime.</p>
    </div>
  </a>

  <a href="/posts/how-it-works/when-php-fpm-runs-out-of-workers-a-502-error-field-guide" className="blog-card group rounded-xl bg-card border-theme card-hover shadow-sm hover:shadow-md transition-all overflow-hidden flex flex-col">
    {`/images/posts/how-it-works/when-php-fpm-runs-out-of-workers-a-502-error-field-guide/when-php-fpm-runs-out-of-workers-a-502-error-field-guide.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-it-works/when-php-fpm-runs-out-of-workers-a-502-error-field-guide/when-php-fpm-runs-out-of-workers-a-502-error-field-guide.webp" alt="When php-fpm runs out of workers: a 502 error field guide" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`how-it-works` !== '' && (
                      <span className="text-xs font-semibold uppercase tracking-wider px-2 py-0.5 rounded-md bg-accent-badge border border-accent-soft text-accent">
                        how-it-works
                      </span>
                    )}

        <span className="text-xs text-subtle">Monday, November 24th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">When php-fpm runs out of workers: a 502 error field guide</h3>
      <p className="blog-card-desc">Your PHP site keeps throwing 502 errors. Your CDN shows 503s. Learn why PHP-FPM workers get exhausted and how to diagnose and fix the real problems.</p>
    </div>
  </a>

  <a href="/posts/insights/the-mystery-of-the-shrinking-database-dump" className="blog-card group rounded-xl bg-card border-theme card-hover shadow-sm hover:shadow-md transition-all overflow-hidden flex flex-col">
    {`/images/posts/insights/the-mystery-of-the-shrinking-database-dump/the-mystery-of-the-shrinking-database-dump.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/insights/the-mystery-of-the-shrinking-database-dump/the-mystery-of-the-shrinking-database-dump.webp" alt="The mystery of the shrinking database dump" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`insights` !== '' && (
                      <span className="text-xs font-semibold uppercase tracking-wider px-2 py-0.5 rounded-md bg-accent-badge border border-accent-soft text-accent">
                        insights
                      </span>
                    )}

        <span className="text-xs text-subtle">Monday, November 10th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">The mystery of the shrinking database dump</h3>
      <p className="blog-card-desc">Your database uses 10GB but dumps to 100MB. Discover why database dumps shrink, how InnoDB fragmentation works, and how to reclaim that missing storage space.</p>
    </div>
  </a>
</div>
