nate berkopec
nateberkopec@mastodon.social
<p>Author, The Complete Guide to Rails Performance. Co-maintainer of Puma. <a href="https://speedshop.co" target="_blank" rel="nofollow noopener" translate="no"><span class="invisible">https://</span><span class="">speedshop.co</span><span class="invisible"></span></a></p>
Posts
-
Post #4195794
Re: Axios - so I guess if you&#39;re an OSS maintainer, your threat model is now: &quot;I may be targeted by a state-sponsored hacking group at any time.&quot;
-
Post #1039010
Puma 8.0 &quot;Into The Arena&quot; has been released! 1. Framework/lib authors can move threads into a special &quot;high IO&quot; pool 2. single/cluster DSL hooks for easier config 3. API for adjusting threadpool size at runtime (who would want to that? stay tuned...)
-
Post #887786
You are probably not using LLMs enough to generate non-code artifacts. &quot;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.&quot;
-
Post #887785
A pattern I am seeing: &quot;Generate a 10 question quiz on how this PR works to test my understanding.&quot; Do not allow merge until someone passes the quiz. Gusto did this years ago but with humans writing the questions for certain types of PRs.
-
Post #887784
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.
-
Post #887783
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.
-
Post #887782
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.
-
Post #887781
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.
-
Post #887780
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.
-
Post #887779
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.
-
Post #887778
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.
-
Post #887777
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.
-
Post #887776
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.