Found something funny when reading Tailscale code.
They use a Cyrillic letter "ж" (reads as "zh") for the variable which shouldn't be exposed to callers and mutated. This is an artificial barrier for human devs that should raise concerns when trying to type it.
Apparently it looks like an asterisk meaning it's a pointer. But for me it's a familiar letter which I didn't expect to see in the code and was like Ж? WAT?
Yeah, you can use unicode letters in Go code if you want.
I now really want to use something like that in my code because I bet it'll make me smile every time I see it
I think this is big. 🌠
FastAPI's objective is to provide what you always need for real prod apps. And not provide what you don't.
You always want metrics, there's just not enough time to always set it all up. Now it's just there, by default.
so our paper got accepted as a poster at TAE, a NeurIPS 2026 workshop 👀
TAE asks if we can trust AI evals. we found measurement drift during GRPO without detecting persistent safety drift. feels like the right workshop for this one.
https://t.co/kYyvDGuaYy
@ayesha_imr
when a safety score moves during reinforcement learning with verifiable rewards (RLVR), how can we tell if the model changed or the test did?
that question drove my @BlueDotImpact technical AI safety project. @SPARexec accepted a fall 2026 follow-up which i'll be mentoring.
recommended reading, great blog showing the journey of making a task verifiable and how to think about scoring
there’s a lot of unsexy data work + looking at + labeling the data
“every rollout…judged against the things i decided were good”
we’re all trying to stably transfer human priors into scores for model so they mimic the behavior we care about
the SPAR follow-up will likely test whether the result holds on a second open RLVR lineage.
if you want to work on RLVR safety evals and reproducible empirical research, mentee applications are open, deadline August 18.
https://t.co/uw2DVBZJx0
when a safety score moves during reinforcement learning with verifiable rewards (RLVR), how can we tell if the model changed or the test did?
that question drove my @BlueDotImpact technical AI safety project. @SPARexec accepted a fall 2026 follow-up which i'll be mentoring.
followed Tülu 3.1 from its DPO base across 11 GRPO checkpoints, capability rose from 11/30 to 19/30, the marginalized safety score stayed inside our ±0.10 practical-change band, but answer-order sensitivity increased during training.
https://t.co/F7v3Mslz4n
the CRT (Counterfactual Reflection Training) technique in @AnthropicAI's latest J-lens paper is pretty underrated. it has a lot of parallels with Inoculation Prompting. compared the two behaviorally & mechanistically, v interesting results!
@aaliyan1230
https://t.co/VUb7G40OIg
Wrote up a practical introduction to SIMD using a real example from Ghostty. SIMD has a reputation for being complex, but the common case follows a simple, repeatable shape and shouldn’t be scary! Everyone should know at least this much. https://t.co/yVcAycaq8P
Something I have been thinking about: in the past, the best engineers I knew spent a lot of time automating their work in various ways. Better vim/emacs automations, writing lint rules to catch repeat code issues, building up a suite of e2e tests so they don't need to smoke test the app manually. These kinds of things were the highest leverage activities an engineer could do, because it multiplied their own output, which in turn meant they could build more things.
I think many of these automations have become even more important now. This is true for a number of reasons.
First, infra and DevX automation speeds you up. And if you are running an army of agents, each of those agents will be sped up also. More automation == more output per unit of time.
Second, moving things to code improves efficiency. Your agent could fix an issue every time it sees that issue happen, but that uses tokens and might miss cases. If Claude instead writes a lint rule, CI step, or routine, that class of issue can be fully automated forever. This is really what people are talking about when they talk about loops -- it's about automating entire types of busywork rather than solving them one off. This isn't a new idea at all. Engineers have been doing this for a long time!
Third and most importantly, automation makes it possible for others to contribute to the codebase more easily. Increasingly what I am seeing is engineers are contributing to codebases on day one because Claude can navigate the codebase for them, and that non-engineers are able to contribute to a codebase as effectively as engineers can. What gets in the way of both of these is domain knowledge that lives in peoples' heads rather than in automation -- the stuff you used to have to learn when ramping up. What has changed thanks to agents is the domain knowledge that can be encoded as infrastructure is no longer limited to what is expressible in lint rules and types and tests; it can now capture nearly all domain knowledge, encoded as code comments and skills and CLAUDE.md rules and memories. If I put up a PR for an iOS codebase I don't know and a code reviewer rejects it because it doesn't use the right framework, or if a designer builds a new feature and it gets rejected because it doesn't follow the right architectural patterns, these are failures of automation.
Every team should be writing the CLAUDE.md's, REVIEW.md's, skills, and docs that enable agents to productively work in their codebase with zero additional context from the prompter. This sounds crazy, and at the same time is a natural extension of the stuff engineers have always done: automate, and encode domain knowledge as infrastructure. As the model gets smarter and as the harness matures, this task becomes easier. In the meantime, it is on every team to look for ways to convert their domain knowledge to infra so that Claude can write code better, so that code review catches issues automatically, and so the next person working on your codebase can contribute more easily.
basically a reproducible mech-interp pipeline to test whether LLM safety refusals ("I can't help") and epistemic abstentions ("I don't know") share one activation direction, across Llama, Qwen & Gemma, they appear mostly distinct, so we can probe and ablate them separately.