Ruby-aligned thinkers

A reading map for humane code, clear models, useful feedback and systems we can understand. 20 selected profiles, with reasons to borrow an idea and reasons not to borrow it blindly.

Our starting points are the existing project guide, readable Ruby and the Rails mindset: programmer happiness, small coherent designs, explicit evidence, testing, measured performance and portable systems. A person's entire worldview does not follow from agreement on one practice.

Human-scale code and earned abstractions

Sandi Metz

Selected design influence

Why the ideas fit: Her account of a shared method accumulating parameters and branches gives our small-method and no-speculative-abstraction rules a concrete test. When cases diverge, inlining the wrong abstraction can expose the differences needed for a better design.

Where the fit has limits: This is not a ban on abstraction or removing duplication. The remedy concerns an abstraction shown to be wrong.

Put it to work: Before adding another mode flag to a shared helper, examine whether its callers still express the same idea.

Read: The Wrong Abstraction

Bret Victor

Outside perspective; partial alignment

Why the ideas fit: His interactive examples expose vocabulary, state and execution instead of requiring learners to simulate an invisible machine. That extends readable intent into the programming environment.

Where the fit has limits: His work challenges conventional text-first programming more radically than our Ruby/Rails approach. We are not calling him a Ruby advocate.

Put it to work: When explaining unfamiliar code, show a concrete input, intermediate state and result, rather than only the source text.

Read: Learnable Programming

Rich Hickey

Outside perspective; productive disagreement

Why the ideas fit: Separating structural simplicity from familiarity helps test whether a convenient abstraction actually reduces entanglement.

Where the fit has limits: Clojure’s functional design and explicit separation differ from Ruby’s mutable objects and Rails conventions. Borrow the question, not an entire language ideology.

Put it to work: List which concerns a new helper combines, then decide whether that coupling is necessary.

Read: Simple Made Easy — recorded talk

Simplicity and operational restraint

Dan McKinley

Selected operational influence

Why the ideas fit: Choosing technology by organizational cost includes operations and cognitive load. His account of Etsy’s shared stack illustrates benefits that may arrive long after the initial choice.

Where the fit has limits: Boring technology does not mean stagnant technology or a prohibition on justified additions and upgrades.

Put it to work: Compare the operational burden of a proposed service with extending the stack the team already understands.

Read: Choose Boring Technology

Martin Fowler

Selected architecture influence

Why the ideas fit: A monolith lets a team learn and refactor domain boundaries before distribution makes those changes expensive. That supports our measured approach to splitting services.

Where the fit has limits: Fowler labels his evidence anecdotal and tentative, discusses counterexamples and supports services when justified. This is not a never-microservices rule.

Put it to work: Identify the boundary and concrete scaling or ownership problem before extracting a service.

Read: Monolith First

Compatibility and safe change

Hyrum Wright

Selected compatibility influence

Why the ideas fit: Users can depend on observable behavior beyond an API’s written contract. Even performance can become an implicit dependency, so small changes need checks against actual consumers.

Where the fit has limits: This describes a constraint; it does not require preserving every bug forever. Deprecation and migration remain explicit decisions.

Put it to work: Before changing an interface, examine real callers and record observable behavior that must survive or be migrated.

Read: Hyrum’s Law

Kent Beck

Already credited in the project’s testing guidance

Why the ideas fit: His test desiderata include behavioral sensitivity, structure insensitivity, readability, isolation, determinism, speed and specificity. They help assess confidence rather than maximize assertion counts.

Where the fit has limits: Our site’s testing standards are its own synthesis, not Beck’s words or a checklist authored by him.

Put it to work: Review a test for the behavior it catches and for whether harmless refactoring breaks it.

Read: Test Desiderata · Our testing guide

Michael Feathers

Already credited in the project’s testing guidance

Why the ideas fit: Characterization tests capture what unfamiliar code currently does, making legacy behavior visible before a change.

Where the fit has limits: Observed behavior is not automatically the intended requirement. Preserving or correcting a bug remains a product decision.

Put it to work: Capture representative existing behavior, label surprises, and obtain a decision before changing expectations.

Read: Characterization Testing · Our testing guide

Hillel Wayne

Selected testing influence

Why the ideas fit: Metamorphic testing checks meaningful relationships between executions when exact answers are expensive to obtain. It adds useful tests for difficult oracles, including AI behavior.

Where the fit has limits: Wayne explains the technique, not invents it. Equal outputs can all be wrong, and a transformation must actually preserve the property being tested.

Put it to work: Pair a domain-valid transformation with known-answer examples; explain why the relation should hold.

Read: Metamorphic Testing

Databases and correctness

D. Richard Hipp and the SQLite team

Selected testing and implementation influence; shared credit

Why the ideas fit: SQLite documents independent harnesses, memory and I/O fault tests, crash testing, fuzzing and boundary cases. This gives substance to testing failure paths and using small native components behind a friendly API.

Where the fit has limits: Credit the team as well as Hipp. Its embedded architecture is not a blanket replacement for our PostgreSQL/RLS tenancy design, and its testing investment is unusually large.

Put it to work: Identify the relevant storage failure and test the recovery invariant, rather than copying a large test program without a risk model.

Read: How SQLite Is Tested · SQLite team

Kyle Kingsbury

Selected experimental influence

Why the ideas fit: Jepsen evaluates database guarantees through executable histories and explicitly defined anomalies. The PostgreSQL12.3 investigation is a concrete example of testing concurrency claims rather than relying on labels.

Where the fit has limits: The cited investigation is a historical version-specific finding, not a claim about current PostgreSQL. Testing cannot establish the absence of every bug.

Put it to work: State the invariant and failure model for a concurrent operation, then look for a history that violates it.

Read: Jepsen: PostgreSQL 12.3

Martin Kleppmann

Selected data-systems influence

Why the ideas fit: A lock used for efficiency has different stakes from one protecting correctness. His lease example explains how a paused client can resume with stale authority and why resource-enforced fencing matters.

Where the fit has limits: The article critiques particular assumptions and Redlock; it does not say Redis is unusable. Additional coordination must be justified by consequences.

Put it to work: Ask what happens if a worker resumes after losing its lease, and which component can reject its stale write.

Read: How to do distributed locking

Performance and operations

Brendan Gregg

Selected systems-performance influence

Why the ideas fit: The USE method asks about utilization, saturation and errors for each resource. It exposes missing measurements and complements our whole-request and host-level diagnosis.

Where the fit has limits: Resource bottleneck analysis complements workload and application-latency analysis. It does not replace Nate Berkopec’s Ruby/Rails guidance.

Put it to work: Create a resource checklist before selecting tools, and mark unavailable metrics as unanswered questions.

Read: The USE Method

Julia Evans

Selected debugging influence

Why the ideas fit: Her debugging guidance separates a specific guess from an experiment and encourages changing one thing at a time. This makes think-before-coding approachable and testable.

Where the fit has limits: The post credits other practitioners’ contributions. Its transferable method is not an endorsement of our language or stack.

Put it to work: Write a falsifiable guess, reproduce the symptom and change one relevant variable before interpreting the result.

Read: What does debugging a program look like?

John Allspaw

Selected engineering-practice influence

Why the ideas fit: Making tradeoffs explicit, anticipating operational consequences, seeking criticism and teaching colleagues connects technical judgment with constructive collaboration.

Where the fit has limits: This is experience-based guidance with credited influences, not a formal reliability guarantee or a Ruby-specific method.

Put it to work: Record known compromises in a change review and invite criticism before an incident makes them obvious.

Read: On Being A Senior Engineer

Portable and operable applications

Adam Wiggins

Author attribution for a methodology already adopted here

Why the ideas fit: Twelve-Factor separates dependencies, configuration, backing services and execution into a repeatable operating contract. Our systemd and single-machine practice already adapts that structure.

Where the fit has limits: Its Heroku/cloud origins do not imply our self-hosting preference. The shared idea is portable operational structure.

Put it to work: Make configuration explicit, keep dependencies declared and test graceful shutdown without tying the application to one host.

Read: The Twelve-Factor App · Our application of Twelve-Factor

Security as a system property

Bruce Schneier

Selected security influence

Why the ideas fit: Security requires continuing prevention, detection and response rather than confidence that buying a product finishes the job. This connects revocation, secret handling and observability.

Where the fit has limits: The essay dates from2000. Its systems principle does not establish the details of today’s passkey or tenant-isolation implementation.

Put it to work: For each control, identify how failures are noticed and how access or damage is contained afterward.

Read: The Process of Security

Ross Anderson

Selected security-engineering influence

Why the ideas fit: His bank example joins bookkeeping invariants, authorization, monitoring and cryptography. It puts protection goals inside the surrounding human and operational system.

Where the fit has limits: This is a foundational threat-modeling source, not current implementation instructions or validation of a particular identity provider.

Put it to work: Name what must be protected, against whom, and which forbidden outcome the controls must prevent.

Read: Security Engineering, second edition, chapter1

AI engineering with evidence

Simon Willison

Selected AI-assisted engineering influence

Why the ideas fit: His coding workflow retains responsibility for understanding and checking execution. A deployment example reveals competing jobs behind an apparently successful outcome, then verifies the repair.

Where the fit has limits: His examples are often Python/JavaScript and tool-specific. Verification transfers; language choice and guaranteed AI reliability do not.

Put it to work: Inspect the actual resulting artifact and execution, not merely a tool’s success message or plausible generated code.

Read: Here’s how I use LLMs to help me write code

Chip Huyen

Selected evaluation and product influence

Why the ideas fit: Start from the user problem and a simple baseline, and validate the evaluation itself. Her examples question unnecessary AI/framework complexity and require AI judges to be checked against systematic human review.

Where the fit has limits: This is not opposition to AI or all abstractions. The examples are contextual lessons, not universal accuracy thresholds.

Put it to work: Compare a simpler baseline, define useful outcomes and check whether the evaluator agrees with careful human assessment.

Read: Common pitfalls when building generative AI applications

What our collections say (October 2026)

We ran every collection our intel toolkit holds through its pipeline to see which of these people, and which others, the communities we follow actually talk about. The profiles above are editorial; this section is evidence about the conversation, read with its weaknesses stated.

What went in

Who came up

Records mentioning each name, out of 64,338, and how many separate kinds of source mentioned it.

Name or ideaRecordsSource kindsWhere, mostly
David Heinemeier Hansson (DHH)303r/rails, after his Rails World keynote
Linus Torvalds304Slashdot, Hackaday, 4chan /g/
llama.cpp (Georgi Gerganov's project; his name: 0)304r/LocalLLaMA, Hacker News, 4chan /g/
"Enshittification" (Cory Doctorow's term; his name: 1)175Slashdot, 4chan, Hackaday, Reddit, Hacker News
"Local-first" (Ink & Switch's term; the essay: 0)161r/selfhosted, r/indiehackers, r/sveltejs, r/FlutterDev
OpenClaw (Peter Steinberger's agent; his name: 1)94r/ChatGPTCoding, r/mcp, GitHub, Slashdot
htmx (Carson Gross's library; his name: 0)81r/django, r/rails, r/selfhosted
Andrej Karpathy63Reddit, Slashdot, web search
Aaron Patterson51r/rails (Rails World closing keynote)
Donella Meadows51r/SystemsThinking
Salvatore Sanfilippo (antirez)42r/LocalLLaMA, r/ClaudeCode, Hackaday
Bruce Schneier, Richard Stallman4 each2Slashdot, 4chan
Matz21r/rails
The other 19 profiles on this page0 to 1 eachSimon Willison, Kent Beck, Kyle Kingsbury, Sandi Metz once each; 15 never

Name lists from us were checked against a second pass that pulled every capitalized two-word name from records about open source, self-hosting, Ruby, local models or agents. That pass found no thinker missing from the table; it mostly surfaced products (React Native, Hugging Face, Cloudflare Workers) and one PHP mailing-list vote. A third pass on October 20 searched for ideas as well as names and added htmx, local-first, antirez and Meadows below.

What the evidence supports

The conversation is about tools and events, not thinkers. 835 records discuss AI coding tools, 490 self-hosting or local models, 121 Ruby or Rails. Fewer than 200 name any person on this page or in the table. Almost no mentions of the profiles above is a finding about what people post, not a judgment that those ideas lost.

The live question is who answers for AI-written code. It ties the most-mentioned names together and maps onto our rule that the same generation is never the only judge of its own correctness.

Linus Torvalds

Already credited in the project guide (section 7); collection evidence

What the record shows: In October 2026 the kernel's maintainers dropped the requirement to tag AI-assisted patches, and Torvalds called disclosure rules "utterly stupid," expecting contributors to understand what they submit. Kernel policy still requires a human to take responsibility for every patch.

Where the fit has limits: The tag was dropped partly because about one patch in ten carried it. Judge the code, not its origin, works when reviewers are strong; it is weaker evidence for teams without kernel-grade review.

Put it to work: Review AI-assisted changes by the same standard as any other, and make the submitter able to explain every line.

Read: The Next Web on the tag decision · Slashdot: Torvalds on why AI works for him · Hackaday on AI code review in the kernel

David Heinemeier Hansson

Direct Rails contributor; already credited in the project guide (section 9); contested

What the record shows: The Rails project now publishes Rails and AI, arguing that Rails conventions make coding agents more accurate, with an open benchmark suite. r/rails read his Rails World 2026 keynote as "pencils down" on hand-written code and argued about it for a week.

Where the fit has limits: The strongest claims about fully unreviewed rewrites come from community posts we could not verify. A Rails Foundation organizer said online reaction didn't match the conversation in the room. Treat the keynote as a position to test, not a result.

Put it to work: Use conventions to make agent output predictable, then measure success with hidden tests, as the Rails benchmark does, before trusting it.

Read: Rails and AI · Rails World 2026 opening keynote · Rails Foundation post on the keynote reaction

Yukihiro Matsumoto (Matz) and Aaron Patterson

Direct Ruby and Rails contributors; collection evidence

What the record shows: Matz and DHH held a fireside chat on Ruby, Rails and AI at Rails World 2026. The Rails Foundation's summary says Matz writes his code through an AI agent and worries the foundations (Ruby, Rails, Linux, Postgres) become invisible when agents do the work. Patterson gave the closing keynote, which r/rails read as a counterweight to the opening one. His own writing is first hand: in Can Bundler Be as Fast as uv? he looks for the design decisions behind uv's speed instead of crediting Rust, and maps which of them Bundler can adopt.

Where the fit has limits: We have these accounts second hand, from a Rails Foundation post and Reddit; watch the talks before quoting either of them.

Put it to work: When agents write the code, keep someone responsible for the layers underneath: upgrades, bugs and security in Ruby, gems and Postgres.

Read: Matz at Rails World 2026 · Closing keynote · Can Bundler Be as Fast as uv?

Cory Doctorow

Outside perspective; idea travels further than the name

Why the ideas fit: "Enshittification," platforms degrading once users are locked in, appeared across five kinds of source, applied to Windows, LinkedIn, mobile operating systems and hosted AI models. It is the failure our rule that no outside service should own us is meant to prevent.

Where the fit has limits: People use the word for anything that got worse; it is a diagnosis of platform incentives, not an argument against every hosted service.

Put it to work: Before depending on a service, check that leaving it would lose no data and that a second provider can take its place.

Read: Doctorow's original enshittification essay

Georgi Gerganov and the llama.cpp contributors

Selected self-hosting influence; shared credit

Why the ideas fit: llama.cpp is how most people in our collections run models on their own hardware, from a Raspberry Pi to a robot with no cloud connection. A small, portable C/C++ core behind simple interfaces is our Ruby and C pattern applied to inference.

Where the fit has limits: Credit the project, not one person: our collections name the project 30 times and its founder never. Local models are a second provider, not yet a replacement for frontier models on hard work.

Put it to work: Keep a local model behind the same adapter as hosted ones, and benchmark it on your own tasks.

Read: llama.cpp

Carson Gross

Selected web-architecture influence; collection evidence

Why the ideas fit: Server-rendered HTML with htmx came up in 8 posts, mostly r/django, plus r/rails and r/selfhosted, often from people dropping a JavaScript front end for it. His Locality of Behaviour essay asks that the behaviour of a unit of code be obvious from that unit alone, which is our least-surprise rule applied to markup and our preference for plain HTML and server rendering.

Where the fit has limits: He weighs locality against DRY and separation of concerns rather than putting it above them. Our 8 posts come from one kind of source, so this is a signal, not a trend.

Put it to work: Before adding a client-side framework to a Rails view, try a server-rendered fragment swapped into the page, and keep each element's behaviour visible where it is declared.

Read: Locality of Behaviour · Hypermedia-Driven Applications

Salvatore Sanfilippo (antirez)

Outside perspective; productive disagreement

What the record shows: His Redis work and his DwarfStar local-inference project came up in r/LocalLLaMA, r/ClaudeCode and Hackaday. In Control the ideas, not the code he argues that when agents write thousands of lines a day, reading them line by line is mostly pointless: the programmer's job is to own the design, question the model about it, and spend the saved time on QA.

Where the fit has limits: This pulls against our rule that the same generation is never the only judge of its own correctness. He still reviews AI-written Redis code out of respect for its users, and his case rests on rigorous design and testing, not on trusting output. Borrow the weight on design and QA; keep the independent check.

Put it to work: For an agent-written change, have it explain the design and judge that first, then spend review time on tests that would fail on a plausible wrong implementation.

Read: Control the ideas, not the code

Ink & Switch: local-first software

Selected data-ownership influence; shared credit with Martin Kleppmann, Adam Wiggins, Peter van Hardenberg and Mark McGranaghan

Why the ideas fit: "Local-first" appeared in 16 posts across r/selfhosted, r/indiehackers, r/sveltejs, r/FlutterDev and others, nearly always as a selling point: it works offline and the data stays with the user. The 2019 essay that named it sets out seven ideals, including that the network is optional, that work lasts for the long now, and that the user keeps ultimate ownership and control. That is our rule that data stays exportable, carried to the user's side.

Where the fit has limits: The posts use the phrase as a label; none cite the essay. Its proposed mechanism, CRDTs, is heavier than our server-rendered PostgreSQL apps need. Borrow the ideals, not necessarily the machinery.

Put it to work: For any app that holds a person's work, check that they can export it in an open format and that it survives the service going away.

Read: Local-first software: you own your data, in spite of the cloud

Donella Meadows

Outside perspective; systems thinking

Why the ideas fit: Her name came up 5 times in r/SystemsThinking, where Thinking in Systems is the default recommendation. In Leverage Points she ranks places to intervene in a system: constants and parameters sit near the bottom, and the structure of information flows, who does and does not have access to information, sits well above them. She asks for missing feedback to be restored to the right place. That is the case for our observability rules: a missing feedback loop is often worth more than a tuned setting.

Where the fit has limits: She said the list was not tightly reasoned, and she warns that people often push a real leverage point in the wrong direction. It is a way to look for causes, not a ranking to apply mechanically, and it says nothing specific about software.

Put it to work: Before tuning a timeout or pool size, ask who would have noticed the problem sooner with better information, and give them that signal.

Read: Leverage Points: Places to Intervene in a System

Watched, not added: Peter Steinberger's OpenClaw is an open-source agent people run on their own machines, which fits. But the posts we collected were about reliability and supervision ("it did not earn a blank check"), and the project is moving into a foundation after he joined OpenAI. We'll look again when there is more record. Karpathy, Stallman and Schneier are already credited in the project guide, and these collections add nothing new about them.

How we challenged it

Use the map without turning it into doctrine

  1. Name the problem and the idea you want to borrow.
  2. Read the linked work and identify its assumptions.
  3. Try a small change within the existing Ruby project conventions.
  4. Test the behavior and measure any claimed improvement.
  5. Keep the benefit; reject unnecessary machinery. Explain the tradeoff in the change review.

For one focused application of these ideas, see Cal Henderson and scaling web apps. Existing project rules retain priority; this page does not install new agent instructions.


Provided as is, for information only, with no warranty and no liability. Not legal or professional advice. Security and radio material is for authorized, lawful use only. Full disclaimer.

Visits are logged on our own server: IP address, browser and device details, and pages viewed. We use them to understand traffic and spot attacks, and never share or sell them.