<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><link>https://bsky.app/profile/nateberkopec.bsky.social</link><title>@nateberkopec.bsky.social - </title><item><link>https://bsky.app/profile/nateberkopec.bsky.social/post/3mtzy2tn7rs2u</link><description>LLM driven dev has completely changed my opinions on BDD</description><pubDate>27 Aug 2026 04:09 +0000</pubDate><guid isPermaLink="false">at://did:plc:lasdfeefrnjf7oecvame6mwl/app.bsky.feed.post/3mtzy2tn7rs2u</guid></item><item><link>https://bsky.app/profile/nateberkopec.bsky.social/post/3mizlfyiyfp2d</link><description>Puma 8.0 &#34;Into The Arena&#34; has been released!&#xA;&#xA;1. Framework/lib authors can move threads into a special &#34;high IO&#34; pool&#xA;2. single/cluster DSL hooks for easier config &#xA;3. API for adjusting threadpool size at runtime (who would want to that? stay tuned...)</description><pubDate>09 Apr 2026 00:46 +0000</pubDate><guid isPermaLink="false">at://did:plc:lasdfeefrnjf7oecvame6mwl/app.bsky.feed.post/3mizlfyiyfp2d</guid></item><item><link>https://bsky.app/profile/nateberkopec.bsky.social/post/3mim7776mrk2f</link><description>Re: Axios - so I guess if you&#39;re an OSS maintainer, your threat model is now: &#34;I may be targeted by a state-sponsored hacking group at any time.&#34;</description><pubDate>03 Apr 2026 17:03 +0000</pubDate><guid isPermaLink="false">at://did:plc:lasdfeefrnjf7oecvame6mwl/app.bsky.feed.post/3mim7776mrk2f</guid></item><item><link>https://bsky.app/profile/nateberkopec.bsky.social/post/3mhyoiamxmc2j</link><description>1 process per pod was a LIE that you were sold by BIG SRE and people who don&#39;t understand the oldhead technology of PRE-FORKING SERVERS.&#xA;&#xA;We went from 1 Puma proc per pod to 4 and HALVED RESPONSE TIMES and dropped queue time to ZERO, for the same CPU/memory alloc.</description><pubDate>26 Mar 2026 22:43 +0000</pubDate><guid isPermaLink="false">at://did:plc:lasdfeefrnjf7oecvame6mwl/app.bsky.feed.post/3mhyoiamxmc2j</guid></item><item><link>https://bsky.app/profile/nateberkopec.bsky.social/post/3mhvkrqr2da2c</link><description>Has anyone applied an autoresearch loop (successfully or not) to a Ruby project outside of Shopify yet? I would like to cover it in my RubyKaigi talk.</description><pubDate>25 Mar 2026 16:59 +0000</pubDate><guid isPermaLink="false">at://did:plc:lasdfeefrnjf7oecvame6mwl/app.bsky.feed.post/3mhvkrqr2da2c</guid></item><item><link>https://bsky.app/profile/nateberkopec.bsky.social/post/3mhmwbmnuzk2w</link><description>@simonwillison.net maybe you&#39;re used to this level of notability now, but I noticed Jensen Huang explicitly referencing the Lethal Trifecta a few times at GDC, although I noticed he said &#34;it&#39;s fine as long as you only have two [legs of the trifecta]&#34;</description><pubDate>22 Mar 2026 06:30 +0000</pubDate><guid isPermaLink="false">at://did:plc:lasdfeefrnjf7oecvame6mwl/app.bsky.feed.post/3mhmwbmnuzk2w</guid></item><item><link>https://bsky.app/profile/nateberkopec.bsky.social/post/3mhghy7zbje2n</link><description>The #1 most important performance work in almost any web app is converting full navigations into SPA/route changes/Turbo Drive clicks. You are converting a ~4 second experience into a 400ms experience every single time. Nothing else comes close.</description><pubDate>19 Mar 2026 16:59 +0000</pubDate><guid isPermaLink="false">at://did:plc:lasdfeefrnjf7oecvame6mwl/app.bsky.feed.post/3mhghy7zbje2n</guid></item><item><link>https://bsky.app/profile/nateberkopec.bsky.social/post/3mhdxpwxrjp2j</link><description>Super common mistake I see in Ruby setups: don&#39;t allocate more than 1 CPU core to background job containers. You&#39;re only running one process in there (usually) so there&#39;s no reason to allocate &gt; 1 core.</description><pubDate>18 Mar 2026 17:02 +0000</pubDate><guid isPermaLink="false">at://did:plc:lasdfeefrnjf7oecvame6mwl/app.bsky.feed.post/3mhdxpwxrjp2j</guid></item><item><link>https://bsky.app/profile/nateberkopec.bsky.social/post/3mhbgv6nyyx27</link><description>After ~9 months of experimentation (synthetic and in prod), I can say definitively that MALLOC_CONF has no measurable effect on any Ruby workload that I&#39;ve seen. Don&#39;t bother.</description><pubDate>17 Mar 2026 16:56 +0000</pubDate><guid isPermaLink="false">at://did:plc:lasdfeefrnjf7oecvame6mwl/app.bsky.feed.post/3mhbgv6nyyx27</guid></item><item><link>https://bsky.app/profile/nateberkopec.bsky.social/post/3mh6wlj3h2q23</link><description>50% of what I&#39;m doing at clients these days is addressing unclear expectations of what queue latencies are allowed to be in background work. Almost no one has the proper suite of alerts and observability, queues routinely ballooning without anyone realizing.</description><pubDate>16 Mar 2026 16:59 +0000</pubDate><guid isPermaLink="false">at://did:plc:lasdfeefrnjf7oecvame6mwl/app.bsky.feed.post/3mh6wlj3h2q23</guid></item><item><link>https://bsky.app/profile/nateberkopec.bsky.social/post/3mgxezellfc2s</link><description>It&#39;s pretty rare these days to be on a version this old, but if you&#39;re still running Ruby 3.1 in production: it&#39;s worth upgrading to 3.2+ purely to get YJIT.</description><pubDate>13 Mar 2026 16:56 +0000</pubDate><guid isPermaLink="false">at://did:plc:lasdfeefrnjf7oecvame6mwl/app.bsky.feed.post/3mgxezellfc2s</guid></item><item><link>https://bsky.app/profile/nateberkopec.bsky.social/post/3mguunz6kv723</link><description>LCP is not a good top-level frontend metric to base your entire frontend perf efforts around _unless_ you are specifically targeting search rankings. LCP is not captured on route change/SPA nav or on Safari at all, which means ~50%+ of clicks go unmeasured.</description><pubDate>12 Mar 2026 16:58 +0000</pubDate><guid isPermaLink="false">at://did:plc:lasdfeefrnjf7oecvame6mwl/app.bsky.feed.post/3mguunz6kv723</guid></item><item><link>https://bsky.app/profile/nateberkopec.bsky.social/post/3mgseebxhjz2s</link><description>Datadog&#39;s continuous profiling product is now best-in-class. Took them a while but Ivo Anjo has really put in a ton of work here for Ruby and the profiles you get now are so, so good. Being able to see gc activity (as well as the reason!) for GC is so cool.</description><pubDate>11 Mar 2026 17:00 +0000</pubDate><guid isPermaLink="false">at://did:plc:lasdfeefrnjf7oecvame6mwl/app.bsky.feed.post/3mgseebxhjz2s</guid></item><item><link>https://bsky.app/profile/nateberkopec.bsky.social/post/3mfu6ntac3m27</link><description>Seen in a Shopify project README. TIL RSpec is deprecated at Shopify.</description><pubDate>27 Feb 2026 16:59 +0000</pubDate><guid isPermaLink="false">at://did:plc:lasdfeefrnjf7oecvame6mwl/app.bsky.feed.post/3mfu6ntac3m27</guid></item><item><link>https://bsky.app/profile/nateberkopec.bsky.social/post/3mfro6vp3tp2j</link><description>LLM slopcannons are putting pressure on top of already broken software dev team cultures. The problem isn&#39;t the slop generator, so much as your process was only handling low volumes of human-generated slop until now.</description><pubDate>26 Feb 2026 16:59 +0000</pubDate><guid isPermaLink="false">at://did:plc:lasdfeefrnjf7oecvame6mwl/app.bsky.feed.post/3mfro6vp3tp2j</guid></item><item><link>https://bsky.app/profile/nateberkopec.bsky.social/post/3mfp5stqcxm2s</link><description>A pattern I am seeing: &#34;Generate a 10 question quiz on how this PR works to test my understanding.&#34; Do not allow merge until someone passes the quiz. &#xA;&#xA;Gusto did this years ago but with humans writing the questions for certain types of PRs.</description><pubDate>25 Feb 2026 17:00 +0000</pubDate><guid isPermaLink="false">at://did:plc:lasdfeefrnjf7oecvame6mwl/app.bsky.feed.post/3mfp5stqcxm2s</guid></item><item><link>https://bsky.app/profile/nateberkopec.bsky.social/post/3mfmn3pixyt2y</link><description>You are probably not using LLMs enough to generate non-code artifacts. &#34;Review this PR and then generate an interactive HTML website to explain it. Turn this state machine into a mermaid diagram. Generate a 10,000 word deep research report on the state of the art of CSRF protection.&#34;</description><pubDate>24 Feb 2026 16:56 +0000</pubDate><guid isPermaLink="false">at://did:plc:lasdfeefrnjf7oecvame6mwl/app.bsky.feed.post/3mfmn3pixyt2y</guid></item><item><link>https://bsky.app/profile/nateberkopec.bsky.social/post/3mfk4mqa3qj2a</link><description>LLMs are (not _just_) autocomplete. They will tend to do MORE, tend to katamari. The dangers of shipping more code and never shipping less still apply.</description><pubDate>23 Feb 2026 16:56 +0000</pubDate><guid isPermaLink="false">at://did:plc:lasdfeefrnjf7oecvame6mwl/app.bsky.feed.post/3mfk4mqa3qj2a</guid></item><item><link>https://bsky.app/profile/nateberkopec.bsky.social/post/3mfcldl6h362a</link><description>Your prior at this point needs to be &#34;if LLMs are breaking my SDE lifecycle, the problem is the lifecycle or how we are using the LLM, not the capabilities of the model&#34;. You can make models generate anything now. The problem is how you move them through the latent space.</description><pubDate>20 Feb 2026 16:58 +0000</pubDate><guid isPermaLink="false">at://did:plc:lasdfeefrnjf7oecvame6mwl/app.bsky.feed.post/3mfcldl6h362a</guid></item><item><link>https://bsky.app/profile/nateberkopec.bsky.social/post/3mfa2svwiic27</link><description>The only code review agent I have ever seen be even remotely good is just Codex xhigh. All the review services (and I&#39;ve seen at least a dozen at this point) suck so bad that I&#39;m not sure how they make any money at all.</description><pubDate>19 Feb 2026 16:57 +0000</pubDate><guid isPermaLink="false">at://did:plc:lasdfeefrnjf7oecvame6mwl/app.bsky.feed.post/3mfa2svwiic27</guid></item><item><link>https://bsky.app/profile/nateberkopec.bsky.social/post/3mf5kdwrxm32e</link><description>When you&#39;ve got a queue with a very tight SLO, you don&#39;t want to scale down too fast. You end up with a &#34;sawtooth&#34; or jagged container count. The &#34;true&#34; demand for containers is the red line here. In situations on &lt;30 sec SLOs, you often want cooldowns in the &gt;1hour range.</description><pubDate>18 Feb 2026 16:57 +0000</pubDate><guid isPermaLink="false">at://did:plc:lasdfeefrnjf7oecvame6mwl/app.bsky.feed.post/3mf5kdwrxm32e</guid></item><item><link>https://bsky.app/profile/nateberkopec.bsky.social/post/3mf325xbizl27</link><description>Even if not deployed single-node, it&#39;s helpful to use Little&#39;s Law to understand if you _could_ be. &#xA;&#xA;Avg CPU load = CPU time in seconds per req/job * req-per-sec. &#xA;&#xA;If that&#39;s below ~16, you could definitely run single-node. Why aren&#39;t you? No wrong answers, but have a good one.</description><pubDate>17 Feb 2026 17:02 +0000</pubDate><guid isPermaLink="false">at://did:plc:lasdfeefrnjf7oecvame6mwl/app.bsky.feed.post/3mf325xbizl27</guid></item><item><link>https://bsky.app/profile/nateberkopec.bsky.social/post/3meywdoijxk24</link><description>Your proposal for RubyKaigi 2026 has been accepted.</description><pubDate>16 Feb 2026 20:48 +0000</pubDate><guid isPermaLink="false">at://did:plc:lasdfeefrnjf7oecvame6mwl/app.bsky.feed.post/3meywdoijxk24</guid></item><item><link>https://bsky.app/profile/nateberkopec.bsky.social/post/3mdnruy4pwd2v</link><description>In 2026, we&#39;re going to see coding models either expand or get rebranded into &#34;tool use&#34; or &#34;computer use&#34; models.</description><pubDate>30 Jan 2026 17:04 +0000</pubDate><guid isPermaLink="false">at://did:plc:lasdfeefrnjf7oecvame6mwl/app.bsky.feed.post/3mdnruy4pwd2v</guid></item><item><link>https://bsky.app/profile/nateberkopec.bsky.social/post/3mdll5m3md22v</link><description>looks like a tiktok&#xA;&#xA;[contains quote post or other embedded content]</description><pubDate>29 Jan 2026 19:58 +0000</pubDate><guid isPermaLink="false">at://did:plc:lasdfeefrnjf7oecvame6mwl/app.bsky.feed.post/3mdll5m3md22v</guid></item><item><link>https://bsky.app/profile/nateberkopec.bsky.social/post/3mdlazl7b6i2f</link><description>LLMs do not meaningfully &#34;refactor&#34; at anything other than a junior engineering level. They can basically do some window dressing and move code around between files. True refactoring means creating new abstractions, which LLMs can&#39;t do because they can&#39;t form world-models.</description><pubDate>29 Jan 2026 16:57 +0000</pubDate><guid isPermaLink="false">at://did:plc:lasdfeefrnjf7oecvame6mwl/app.bsky.feed.post/3mdlazl7b6i2f</guid></item><item><link>https://bsky.app/profile/nateberkopec.bsky.social/post/3mdiqx5fdtb2v</link><description>The biggest &#34;stink&#34; of LLM code in Ruby currently is how it writes loops like it&#39;s writing C. Set up lots of blank/empty variables, loop with each, update variables inside the loop. &#xA;&#xA;Use Enumerable! Matz gave us this gift for a reason!</description><pubDate>28 Jan 2026 17:04 +0000</pubDate><guid isPermaLink="false">at://did:plc:lasdfeefrnjf7oecvame6mwl/app.bsky.feed.post/3mdiqx5fdtb2v</guid></item></channel></rss>