<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Merlijn van den Berg</title><description>Freelance backend engineer Merlijn van den Berg. A €2,500 performance audit and fix sprint for slow SaaS backends, with pull requests and before-and-after measurements.</description><link>https://iammerlijn.com/</link><item><title>Removing a repeated COUNT cut issue-list response time by 46%</title><link>https://iammerlijn.com/blog/pagination-total-count/</link><guid isPermaLink="true">https://iammerlijn.com/blog/pagination-total-count/</guid><description>Every list request ran a second COUNT query for a total at the top of the list. Moving it to a cached endpoint made the issue list 46% faster in production.</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Slow requests should not always stay requests</title><link>https://iammerlijn.com/blog/slow-requests-background-workers/</link><guid isPermaLink="true">https://iammerlijn.com/blog/slow-requests-background-workers/</guid><description>How a production slowdown moved from liveness probe tuning and query fixes to a BullMQ worker architecture.</description><pubDate>Sat, 19 Sep 2026 00:00:00 GMT</pubDate></item><item><title>My first OSS contribution</title><link>https://iammerlijn.com/blog/my-first-oss-contribution/</link><guid isPermaLink="true">https://iammerlijn.com/blog/my-first-oss-contribution/</guid><pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate></item><item><title>A Strapi permission-cleanup cache, merged upstream</title><link>https://iammerlijn.com/blog/strapi-permission-cleanup-field-traversal-cache/</link><guid isPermaLink="true">https://iammerlijn.com/blog/strapi-permission-cleanup-field-traversal-cache/</guid><description>How repeated field-level permission cleanup made Strapi startup slower for large schemas with many roles, and how a small cache removed redundant work.</description><pubDate>Thu, 20 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Rails subdomains with lvh.me</title><link>https://iammerlijn.com/notes/rails-subdomains-with-lvh-me/</link><guid isPermaLink="true">https://iammerlijn.com/notes/rails-subdomains-with-lvh-me/</guid><description>Using `lvh.me` makes local subdomain testing possible with URLs like `app.lvh.me:3000`.</description><pubDate>Thu, 09 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Database recovery</title><link>https://iammerlijn.com/blog/database-recovery/</link><guid isPermaLink="true">https://iammerlijn.com/blog/database-recovery/</guid><description>Recovering deleted rows in a shared database without rolling back a day of unrelated changes. A recovery account with limits on what it establishes.</description><pubDate>Wed, 10 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Sync fingerprints and database load</title><link>https://iammerlijn.com/blog/sync-fingerprints-database-load/</link><guid isPermaLink="true">https://iammerlijn.com/blog/sync-fingerprints-database-load/</guid><description>How adding a cheap change-detection pass helped avoid redundant provider sync work and unnecessary database transactions.</description><pubDate>Sat, 18 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Docker image pruning</title><link>https://iammerlijn.com/notes/docker-image-pruning/</link><guid isPermaLink="true">https://iammerlijn.com/notes/docker-image-pruning/</guid><description>`docker image prune` removes dangling images, while `docker image prune -a` removes all unused images.</description><pubDate>Fri, 17 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Free custom email with Cloudflare Email Routing</title><link>https://iammerlijn.com/notes/free-custom-email-with-cloudflare-email-routing/</link><guid isPermaLink="true">https://iammerlijn.com/notes/free-custom-email-with-cloudflare-email-routing/</guid><description>Cloudflare Email Routing can forward a custom domain email address to Gmail for free, and Gmail can send from that address with an app password.</description><pubDate>Sun, 29 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Fixing a PDF pipeline: nine of ten reports completed, up from four</title><link>https://iammerlijn.com/blog/pdf-performance-fix/</link><guid isPermaLink="true">https://iammerlijn.com/blog/pdf-performance-fix/</guid><description>In a ten-document test under production-like limits, PDF generation went from four successes to nine and batch runtime fell from 7m 13s to 48s.</description><pubDate>Tue, 24 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Reproducing production issues locally</title><link>https://iammerlijn.com/notes/reproducing-production-issues-locally/</link><guid isPermaLink="true">https://iammerlijn.com/notes/reproducing-production-issues-locally/</guid><description>Run the production image locally with constrained memory, CPU, and shared memory to reproduce environment-specific issues.</description><pubDate>Tue, 24 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Custom relation label in Strapi CMS</title><link>https://iammerlijn.com/notes/custom-relation-label-in-strapi-cms/</link><guid isPermaLink="true">https://iammerlijn.com/notes/custom-relation-label-in-strapi-cms/</guid><description>To change the relation label shown in the Strapi admin panel, configure the field&apos;s Entry title in the content type view settings.</description><pubDate>Thu, 19 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Strapi limit === /config/api.js</title><link>https://iammerlijn.com/notes/strapi-limit-config-api-js/</link><guid isPermaLink="true">https://iammerlijn.com/notes/strapi-limit-config-api-js/</guid><description>In Strapi, `pagination.limit: -1` falls back to `api.rest.maxLimit` when that limit is configured.</description><pubDate>Thu, 19 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Node.js memory leak debugging on Kubernetes</title><link>https://iammerlijn.com/notes/node-js-memory-leak-debugging-on-kubernetes/</link><guid isPermaLink="true">https://iammerlijn.com/notes/node-js-memory-leak-debugging-on-kubernetes/</guid><description>Use kubectl port-forward and Chrome DevTools to inspect a Node.js process in Kubernetes and compare heap snapshots for leaks.</description><pubDate>Thu, 05 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Safari network throttling</title><link>https://iammerlijn.com/notes/safari-network-throttling/</link><guid isPermaLink="true">https://iammerlijn.com/notes/safari-network-throttling/</guid><description>Safari no longer includes built-in network throttling, but it can be restored with Xcode tools and Network Link Conditioner.</description><pubDate>Wed, 04 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Performance optimization for getPermissions</title><link>https://iammerlijn.com/blog/performance-improvements-permissions/</link><guid isPermaLink="true">https://iammerlijn.com/blog/performance-improvements-permissions/</guid><description>How we cut query times from 241 ms to 3.7 ms by rethinking our permission system. Learn how moving from deep relational populates to JSON-based precomputed permissions in Strapi made getPermissions lightning fast.</description><pubDate>Sun, 31 Aug 2025 00:00:00 GMT</pubDate></item><item><title>Raycast: Spotlight on steroids</title><link>https://iammerlijn.com/blog/raycast-spotlight-on-steroids/</link><guid isPermaLink="true">https://iammerlijn.com/blog/raycast-spotlight-on-steroids/</guid><description>Boost your productivity with Raycast, the ultimate Mac tool for streamlining repetitive tasks. From shortcuts to extensions like Google Meet and Clipboard History, learn how Raycast saves hours every week with just a keystroke.</description><pubDate>Tue, 07 Jan 2025 00:00:00 GMT</pubDate></item><item><title>Setting up internal communication in a startup</title><link>https://iammerlijn.com/blog/setting-up-internal-communication-in-a-startup/</link><guid isPermaLink="true">https://iammerlijn.com/blog/setting-up-internal-communication-in-a-startup/</guid><description>Discover how I transformed internal communication at BookThat Group by implementing Slack. Learn why Slack improved organization, boosted productivity with integrations, and streamlined workflows, replacing chaotic WhatsApp and email exchanges.</description><pubDate>Mon, 30 Sep 2024 00:00:00 GMT</pubDate></item></channel></rss>