Nate Berkopec Profile picture
Ruby and Rails applications, made fast. 日本語: @nateberkopec_ja
4 subscribers
Jul 15 11 tweets 2 min read
I'm sold. Agentic coding is the future of web application development. There is no going back. Close the editor. Open Claude.

Your job is now to manage, review, corral and improve a relentless junior dev who is working on 6+ PRs in parallel. If your mental model of LLM-mechanized coding is just tab-autocomplete in Cursor, you should try closing your editor for a week and only work out of Claude Code w/a parallel workflow using git worktrees (many tools now do this). Work on improving the agent if output is bad.
Feb 14, 2022 5 tweets 1 min read
ActiveRecord performance puzzle: "SELECT <long-list-of-columns>" sometimes takes ~10-40x longer than "SELECT *", randomly. Issue is not at the database, where query is consistently <1ms. Issue reproduces in Rails console. Basically run it 10x in the console and you'll see 1ms, 1ms, 1ms, 40ms, 1ms, 1ms, 40ms, 1ms, 1ms.
May 7, 2021 4 tweets 1 min read
In a production environment, the optimal Puma configuration for 80% of apps is probably 4 workers, 5 threads on a 4vCPU machine with ~8GB of memory. and yes, in k8s, this would be per-pod, horizontal pod autoscaler running on top of that with request queue time as the metric
Mar 12, 2021 6 tweets 2 min read
I put in a big PR to speed up my client's most important background job by 10-30%. This was really important because it generates 90%+ of their load. Let me walk you through it, commit-by-commit. (1/6) First, we write some simple scripts to benchmark and profile the code in question. I used Benchmark from stdlib here because running this code once takes about 40 seconds. Note the warmup and use of transactions. github.com/WikiEducationF… (2/6)
Apr 12, 2020 7 tweets 2 min read
All of these qualities are not ineffable. We can (and should) quantify them: LOC, dependency LOC, hours spent fixing bugs and dealing w/incidents, and server costs. Your customer has requirements for these. You don't need to magically guess them on their behalf: you have to ask. Craftsperson attitude is about delivering the highest possible software quality regardless of customer requirement. This is wrong. You should deliver what the customer requires: no more and no less.