<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Felipe Maschio on foojay.io - Friends of OpenJDK</title><link>https://foojayio.github.io/website/today/author/felipe-maschio/</link><description>Articles written by Felipe Maschio on foojay.io - Friends of OpenJDK</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 16 Jul 2026 07:43:16 +0000</lastBuildDate><atom:link href="https://foojayio.github.io/website/today/author/felipe-maschio/index.xml" rel="self" type="application/rss+xml"/><item><title>Your Loom App Quietly Became a Thread Pool Again: A Field Guide to Virtual Thread Pinning</title><link>https://foojayio.github.io/website/today/virtual-thread-pinning-field-guide/</link><pubDate>Thu, 16 Jul 2026 07:43:16 +0000</pubDate><guid>https://foojayio.github.io/website/today/virtual-thread-pinning-field-guide/</guid><description>&lt;p&gt;The incident that taught me to respect pinning looked like nothing. A service freshly migrated to virtual threads, a load test that plateaued at about 420 requests per second no matter how much traffic we threw at it, CPU sitting at 9%, zero errors, zero warnings, nothing in the logs. The machine had 8 cores, and the one downstream HTTP call in the hot path took about 19 ms. Do the arithmetic: 8 × (1000 / 19) ≈ 421.&lt;/p&gt;</description></item></channel></rss>