← Extractions

Debug like a scientist — Maciej Rząsa at wroclove.rb 2024

Maciej Rząsa's wroclove.rb 2024 talk proposes treating debugging as the scientific method: observe, hypothesize, predict, experiment, and publish findings. He illustrates the approach with three war stories from Chattermill — a Puma race condition in a cucumber suite, a Docker Compose read-timeout traced to excessive health-check logging, and a recurring 502 outage ultimately caused by a bloated boot snap cache — and draws lessons about team-scale debugging, mentoring with the Socratic method, and taking notes.

Model
claude-opus-4-7
Ingestion
3df2e268
Input tokens
899,495
fresh
786,103
cached
103,307
cache write
10,085
Output tokens
11,451
Duration
189.3s
Roundtrips
8
Tool calls
22
Cost
$0.00
Nodes/edges extracted
20 / 34
Read set (nodes/edges)
388 / 2

Nodes (20)

update Debug like a scientist talk
attrs {"type" => "talk"} {"date" => "2024-03-22", "type" => "talk"}
description Talk at wroclove.rb 2024. Maciej Rząsa's wroclove.rb 2024 single-speaker talk. Opens with the frustrations of bugs that 'work on your computer'...
short_description Talk at wroclove.rb 2024. Maciej Rząsa's wroclove.rb 2024 talk on applying the scientific method to debugging.
update Maciej Rząsa person
attrs (empty) {"role" => "senior developer", "employer" => "Chattermill", "nationality" => "Polish", "years_with_ruby" => "10+"}
description Conference speaker. Polish Ruby developer with over 10 years of Ruby experience, currently a senior developer (previously principal and t...
short_description Conference speaker. Polish Ruby developer at Chattermill; 10+ years Ruby experience; debugging advocate.
create Chattermill company
kind (empty) company
name (empty) Chattermill
slug (empty) chattermill
attrs (empty) {"industry" => "customer feedback analytics / ML"}
description (empty) Company where Maciej Rząsa works. Operates an application with terabytes of data in the database and orchestrates abo...
short_description (empty) Customer-feedback analytics company orchestrating ML services over large databases.
create Hypothesis-Driven Debugging concept
kind (empty) concept
name (empty) Hypothesis-Driven Debugging
slug (empty) hypothesis-driven-debugging
attrs (empty) {"category" => "methodology"}
description (empty) Debugging methodology proposed by Maciej Rząsa at wroclove.rb 2024, framed as borrowing the scientist's workflow rath...
short_description (empty) Debugging methodology using the scientific method: observe, hypothesize, experiment, publish.
create Michelson–Morley Experiment concept
kind (empty) concept
name (empty) Michelson–Morley Experiment
slug (empty) michelson-morley-experiment
attrs (empty) {"category" => "methodology"}
description (empty) Experiment proposed by Michelson and Morley in 1887 sending two orthogonal rays of light and measuring the speed diff...
short_description (empty) 1887 experiment measuring Earth's speed relative to luminiferous ether; found no difference.
create Special Relativity concept
kind (empty) concept
name (empty) Special Relativity
slug (empty) special-relativity
attrs (empty) {"category" => "methodology"}
description (empty) Einstein's special theory of relativity, based on two assumptions (the laws of physics are the same in every frame of...
short_description (empty) Einstein's theory deducing length contraction and time dilation from two simple assumptions.
create Albert Einstein person
kind (empty) person
name (empty) Albert Einstein
slug (empty) albert-einstein
description (empty) Physicist referenced in 'Debug like a scientist' as the young patent-office clerk who, instead of piling ad-hoc patch...
short_description (empty) Physicist; formulated special relativity while a patent-office clerk.
create Bootsnap tool
kind (empty) tool
name (empty) Bootsnap
slug (empty) bootsnap
attrs (empty) {"category" => "library", "language" => "Ruby"}
description (empty) Shopify-maintained Ruby gem that caches a lot of boot-time work to make Rails processes start faster. In the Chatterm...
short_description (empty) Shopify gem caching Ruby/Rails boot-time work to speed up startup.
create Docker Compose tool
kind (empty) tool
name (empty) Docker Compose
slug (empty) docker-compose
attrs (empty) {"category" => "platform"}
description (empty) Tool for orchestrating multi-container Docker applications. In Rząsa's second war story, an old version of Docker Com...
short_description (empty) Tool for defining and running multi-container Docker applications.
create Passenger tool
kind (empty) tool
name (empty) Passenger
slug (empty) passenger
attrs (empty) {"category" => "service"}
description (empty) Phusion's Ruby application server used in production at Chattermill. Spawns and manages worker processes; exposes a '...
short_description (empty) Phusion's Ruby application server with a worker process model.
create Rubber Duck Debugging concept
kind (empty) concept
name (empty) Rubber Duck Debugging
slug (empty) rubber-duck-debugging
attrs (empty) {"category" => "practice"}
description (empty) Classic technique of walking through a problem aloud (traditionally to a rubber duck) to surface missing assumptions....
short_description (empty) Explaining a problem step-by-step (to an inanimate duck) to surface the solution.
create Socratic Debugging With Juniors takeaway
kind (empty) takeaway
name (empty) Socratic Debugging With Juniors
slug (empty) socratic-debugging-with-juniors
attrs (empty) {"type" => "recommendation"}
description (empty) Takeaway from 'Debug like a scientist': instead of telling a stuck junior 'let me fix it', walk them through the meth...
short_description (empty) Coach juniors through debugging by asking about observations and hypotheses, not by taking over.
create Start With a Hypothesis, Not a Fix takeaway
kind (empty) takeaway
name (empty) Start With a Hypothesis, Not a Fix
slug (empty) start-with-a-hypothesis-not-a-fix
attrs (empty) {"type" => "recommendation"}
description (empty) Before proposing a fix, describe the reality you observe and formulate an explicit hypothesis with supporting evidenc...
short_description (empty) Without evidence, shouting 'remove the gem' or 'revert the commit' is just an opinion.
create Take Notes During Debugging takeaway
kind (empty) takeaway
name (empty) Take Notes During Debugging
slug (empty) take-notes-during-debugging
attrs (empty) {"type" => "recommendation"}
description (empty) Key habit for debugging: record everything — observations you don't understand, questions, partial hypotheses — in th...
short_description (empty) Write down every observation, question, and hypothesis — notes beat 'flow state' myths.
create Balance Lab And Library Time takeaway
kind (empty) takeaway
name (empty) Balance Lab And Library Time
slug (empty) balance-lab-and-library-time
attrs (empty) {"type" => "recommendation"}
description (empty) Some developers spend a month in the library to avoid the workshop; others hack at code for a month rather than read ...
short_description (empty) Balance reading docs/source (library) with running experiments (lab) — neither alone is enough.
create Publish Small Findings To Scale Debugging takeaway
kind (empty) takeaway
name (empty) Publish Small Findings To Scale Debugging
slug (empty) publish-small-findings-to-scale-debugging
attrs (empty) {"type" => "recommendation"}
description (empty) Lesson from the 30-minute-502 incident: the working group followed many hypotheses in parallel, worked in pairs (a de...
short_description (empty) A team debugs in parallel and across time zones only if everyone publishes tiny observations.
create A Bug Is Fixed When You Understand It takeaway
kind (empty) takeaway
name (empty) A Bug Is Fixed When You Understand It
slug (empty) a-bug-is-fixed-when-you-understand-it
attrs (empty) {"type" => "insight"}
description (empty) A bug is fixed not when a change is deployed but when you understand what happened. Reverting the race-condition PR, ...
short_description (empty) Pushing to production isn't the end — understanding the cause is.
create Transfer Knowledge To Retain It takeaway
kind (empty) takeaway
name (empty) Transfer Knowledge To Retain It
slug (empty) transfer-knowledge-to-retain-it
attrs (empty) {"type" => "recommendation"}
description (empty) The best way to make sure you remember a hard debugging lesson is to transfer the knowledge: write a Slack note, pres...
short_description (empty) Telling someone what you learned — on Slack, at a meetup, or over a beer — is how you keep it.
create Worth writing a paper about debugging like a scientist? question
kind (empty) question
name (empty) Worth writing a paper about debugging like a scientist?
slug (empty) worth-writing-a-paper-about-debugging-like-a-scientist
attrs (empty) {"answer_summary" => "He'd love to write one and invites advice on where to publish."}
description (empty) An audience member asks whether Rząsa has considered writing a paper about the method. He'd love to and asks for advi...
short_description (empty) Audience suggests publishing the method as a paper.
create What team-level processes help avoid such bugs? question
kind (empty) question
name (empty) What team-level processes help avoid such bugs?
slug (empty) what-team-level-processes-help-avoid-such-bugs
attrs (empty) {"answer_summary" => "Post-mortems help but require a blameless culture; in small teams a Slack note is enough. Not e...
description (empty) Audience member asks what company/team-level processes (post-mortems, documentation, requiring PR authors to reproduc...
short_description (empty) Q&A on post-mortems, PR repro requirements, and team practices.

Edges (34)

update Maciej RząsaauthoredDebug like a scientist
context (empty) Single-speaker author of the wroclove.rb 2024 talk.
update Debug like a scientistpresented_atwroclove.rb 2024
context (empty) Talk delivered at wroclove.rb 2024.
create Maciej Rząsaattendedwroclove.rb 2024
context (empty) Spoke at the conference in person.
relation (empty) attended
source_node_id (empty) 91d5cc3c-2a2b-4740-84a2-367dbb35e814
target_node_id (empty) 748e0524-a102-41d4-97dc-575881583d91
create Maciej Rząsaworks_atChattermill
attrs (empty) {"role" => "senior developer"}
context (empty) Works as a senior developer (previously principal and team lead).
relation (empty) works_at
source_node_id (empty) 91d5cc3c-2a2b-4740-84a2-367dbb35e814
target_node_id (empty) 7f593416-92d9-4179-9e10-adcff120f58c
create Debug like a scientistaboutHypothesis-Driven Debugging
context (empty) Core methodology the talk proposes.
relation (empty) about
source_node_id (empty) 29ed4ee1-36ae-4262-992d-b89aa8941214
target_node_id (empty) 55d95ca2-e092-4282-ba05-061ced7b90fb
create Debug like a scientistaboutMichelson–Morley Experiment
context (empty) Used as a parable for 'surprising behavior of reality' = a bug.
relation (empty) about
source_node_id (empty) 29ed4ee1-36ae-4262-992d-b89aa8941214
target_node_id (empty) 77db46da-e04c-467b-96b2-022d11c370ab
create Debug like a scientistaboutSpecial Relativity
context (empty) Framed as the outcome of applying the scientific method rather than yelling at reality.
relation (empty) about
source_node_id (empty) 29ed4ee1-36ae-4262-992d-b89aa8941214
target_node_id (empty) 30d122f2-03f2-472a-a078-9ecefd47e345
create Debug like a scientistaboutAlbert Einstein
context (empty) Held up as the model: describe reality with clear assumptions instead of piling ad-hoc patches.
relation (empty) about
source_node_id (empty) 29ed4ee1-36ae-4262-992d-b89aa8941214
target_node_id (empty) 16e57535-1e5d-4953-a2f2-b4ad6b5d647a
create Debug like a scientistaboutPuma
context (empty) First war story pinpoints a race condition in a cucumber suite running against a threaded Puma.
relation (empty) about
source_node_id (empty) 29ed4ee1-36ae-4262-992d-b89aa8941214
target_node_id (empty) 39300066-39d4-4bb3-b15b-0fb67a3d3867
create Debug like a scientistaboutDocker Compose
context (empty) Second war story traces CI read-timeouts to a Docker Compose + excessive-logging bug.
relation (empty) about
source_node_id (empty) 29ed4ee1-36ae-4262-992d-b89aa8941214
target_node_id (empty) 50b502e1-561d-4d0b-933a-74636e37968c
create Debug like a scientistaboutBootsnap
context (empty) Third war story roots recurring 502s in a 10–16 GB bootsnap cache.
relation (empty) about
source_node_id (empty) 29ed4ee1-36ae-4262-992d-b89aa8941214
target_node_id (empty) 0f3bcade-fdcd-4274-a837-7a35013df067
create Debug like a scientistaboutPassenger
context (empty) Passenger's deployment-error mode and queue-length metric surfaced the bootsnap problem.
relation (empty) about
source_node_id (empty) 29ed4ee1-36ae-4262-992d-b89aa8941214
target_node_id (empty) bfc7038f-3b47-43f0-86e6-396d71412ba8
create Debug like a scientistaboutRubber Duck Debugging
context (empty) Taking notes is framed as local rubber-duck debugging.
relation (empty) about
source_node_id (empty) 29ed4ee1-36ae-4262-992d-b89aa8941214
target_node_id (empty) 546d8655-61d4-4342-a00f-3bb14b039d53
create Debug like a scientistaboutGrafana
context (empty) Used at Chattermill to visualize passenger queue length and spawn events.
relation (empty) about
source_node_id (empty) 29ed4ee1-36ae-4262-992d-b89aa8941214
target_node_id (empty) 4df60298-9aa7-49dd-b487-47dbc09379f0
create Maciej RząsarecommendsHypothesis-Driven Debugging
context (empty) Central methodology of the talk.
relation (empty) recommends
source_node_id (empty) 91d5cc3c-2a2b-4740-84a2-367dbb35e814
target_node_id (empty) 55d95ca2-e092-4282-ba05-061ced7b90fb
create Maciej RząsarecommendsRubber Duck Debugging
context (empty) Recommends the written, note-taking variant.
relation (empty) recommends
source_node_id (empty) 91d5cc3c-2a2b-4740-84a2-367dbb35e814
target_node_id (empty) 546d8655-61d4-4342-a00f-3bb14b039d53
create ChattermillusesPuma
context (empty) Puma (with threading enabled) ran the integration-test suite in the first war story.
relation (empty) uses
source_node_id (empty) 7f593416-92d9-4179-9e10-adcff120f58c
target_node_id (empty) 39300066-39d4-4bb3-b15b-0fb67a3d3867
create ChattermillusesPassenger
context (empty) Production application server in the third war story.
relation (empty) uses
source_node_id (empty) 7f593416-92d9-4179-9e10-adcff120f58c
target_node_id (empty) bfc7038f-3b47-43f0-86e6-396d71412ba8
create ChattermillusesBootsnap
context (empty) Bootsnap cached Rails boot work in production.
relation (empty) uses
source_node_id (empty) 7f593416-92d9-4179-9e10-adcff120f58c
target_node_id (empty) 0f3bcade-fdcd-4274-a837-7a35013df067
create ChattermillusesDocker Compose
context (empty) CI setup orchestrated several services via docker-compose.
relation (empty) uses
source_node_id (empty) 7f593416-92d9-4179-9e10-adcff120f58c
target_node_id (empty) 50b502e1-561d-4d0b-933a-74636e37968c
create ChattermillusesGrafana
context (empty) Used for monitoring Passenger queue length and process metrics.
relation (empty) uses
source_node_id (empty) 7f593416-92d9-4179-9e10-adcff120f58c
target_node_id (empty) 4df60298-9aa7-49dd-b487-47dbc09379f0
create Phusion Passengerrelated_toPassenger
context (empty) Phusion authored the Passenger application server.
relation (empty) related_to
source_node_id (empty) 09d8eee6-f107-4c3c-8485-7dd7b503ce3b
target_node_id (empty) bfc7038f-3b47-43f0-86e6-396d71412ba8
create Socratic Debugging With Juniorsfrom_talkDebug like a scientist
context (empty) Scaling-debugging section of the talk.
relation (empty) from_talk
source_node_id (empty) db9a6101-db9d-45a3-9a82-837c3731c32b
target_node_id (empty) 29ed4ee1-36ae-4262-992d-b89aa8941214
create Start With a Hypothesis, Not a Fixfrom_talkDebug like a scientist
context (empty) Mindset section of the talk.
relation (empty) from_talk
source_node_id (empty) eb156e2e-65f7-4546-bde7-510b6d60d880
target_node_id (empty) 29ed4ee1-36ae-4262-992d-b89aa8941214
create Take Notes During Debuggingfrom_talkDebug like a scientist
context (empty) Habits section of the talk.
relation (empty) from_talk
source_node_id (empty) 6b6ad183-6ddf-44db-a624-73b1fd3e70b9
target_node_id (empty) 29ed4ee1-36ae-4262-992d-b89aa8941214
create Balance Lab And Library Timefrom_talkDebug like a scientist
context (empty) Habits section of the talk.
relation (empty) from_talk
source_node_id (empty) 64311b8e-80d8-4e39-a734-66ab5b784a1a
target_node_id (empty) 29ed4ee1-36ae-4262-992d-b89aa8941214
create Publish Small Findings To Scale Debuggingfrom_talkDebug like a scientist
context (empty) Team-scaling lesson from the 30-minute-502 war story.
relation (empty) from_talk
source_node_id (empty) 8cc6b36f-6ed0-480f-9037-107d86165327
target_node_id (empty) 29ed4ee1-36ae-4262-992d-b89aa8941214
create A Bug Is Fixed When You Understand Itfrom_talkDebug like a scientist
context (empty) Repeated conclusion of each war story.
relation (empty) from_talk
source_node_id (empty) 2acba539-f485-43fe-a822-7e11d635e7f7
target_node_id (empty) 29ed4ee1-36ae-4262-992d-b89aa8941214
create Transfer Knowledge To Retain Itfrom_talkDebug like a scientist
context (empty) Closing recommendation of the talk.
relation (empty) from_talk
source_node_id (empty) dd17561f-f341-4173-9643-1b24683ab2bc
target_node_id (empty) 29ed4ee1-36ae-4262-992d-b89aa8941214
create Socratic Debugging With JuniorsaboutHypothesis-Driven Debugging
context (empty) Applies the methodology pedagogically with juniors.
relation (empty) about
source_node_id (empty) db9a6101-db9d-45a3-9a82-837c3731c32b
target_node_id (empty) 55d95ca2-e092-4282-ba05-061ced7b90fb
create Publish Small Findings To Scale DebuggingaboutHypothesis-Driven Debugging
context (empty) Extends the methodology to team scale.
relation (empty) about
source_node_id (empty) 8cc6b36f-6ed0-480f-9037-107d86165327
target_node_id (empty) 55d95ca2-e092-4282-ba05-061ced7b90fb
create Worth writing a paper about debugging like a scientist?asked_atDebug like a scientist
context (empty) Audience Q&A question.
relation (empty) asked_at
source_node_id (empty) 96217e43-e30a-4a42-9089-2f2f7f6c54c3
target_node_id (empty) 29ed4ee1-36ae-4262-992d-b89aa8941214
create What team-level processes help avoid such bugs?asked_atDebug like a scientist
context (empty) Audience Q&A question on process.
relation (empty) asked_at
source_node_id (empty) fa54ed25-2404-4b9d-a386-0cc7a00dceec
target_node_id (empty) 29ed4ee1-36ae-4262-992d-b89aa8941214
create What team-level processes help avoid such bugs?aboutHypothesis-Driven Debugging
context (empty) Question explores whether post-mortems and PR-repro norms complement the methodology.
relation (empty) about
source_node_id (empty) fa54ed25-2404-4b9d-a386-0cc7a00dceec
target_node_id (empty) 55d95ca2-e092-4282-ba05-061ced7b90fb

Read set

388 nodes

talk 10 Things You Never Wanted To Know About Reform 3 list_nodes_by_kind talk 18 months of using hotwire and viewcomponent in production list_nodes_by_kind talk Accidentally building a neural network — A Ruby product recommendation journey list_nodes_by_kind talk Adventures in durable execution list_nodes_by_kind talk An Introduction to Test Bench list_nodes_by_kind talk Applying CQRS & Event Sourcing on Rails applications list_nodes_by_kind talk Better ActiveRecord IRB Output Gem Lightning Talk list_nodes_by_kind talk Better WebPerformance with Rails list_nodes_by_kind talk Beyond the current state Time travel to the rescue! list_nodes_by_kind talk Building a Production-Ready AI App: MCP & OAuth on Rails list_nodes_by_kind talk Building Beautiful UIs with Ruby A Rails-Native Approach list_nodes_by_kind talk Building LLM powered applications in Ruby list_nodes_by_kind talk Building on Bluesky's AT Protocol with Ruby list_nodes_by_kind talk Building Rails SPAs in Frontend Ruby with Glimmer DSL for Web list_nodes_by_kind talk Building uls for microservices list_nodes_by_kind talk Build Your Own Internal CLI Tools Lightning Talk list_nodes_by_kind talk Business logic in Ruby list_nodes_by_kind talk Cables! Cables! Cables! list_nodes_by_kind talk Chess for Programmers Lightning Talk list_nodes_by_kind talk Code Golfing in Ruby Lightning Talk list_nodes_by_kind talk Component Driven UI with ViewComponent list_nodes_by_kind talk Configuration Again Lightning Talk list_nodes_by_kind talk Counterintuitive Rails pt. 1 list_nodes_by_kind talk Counterintuitive Rails pt. 2 list_nodes_by_kind talk Data Management With Ruby list_nodes_by_kind talk Dealing With A Project's Complexity In A Changing Environment list_nodes_by_kind talk Debug like a scientist list_nodes_by_kind+search_nodes+get_node_edges talk Developer, Programmer, and AI list_nodes_by_kind talk Development with axioms list_nodes_by_kind talk Devise pitfalls and way to tighten security list_nodes_by_kind talk Doctrine of Useful Objects Separate Fact from Fiction in OOD list_nodes_by_kind talk Enterprise Rails Panel list_nodes_by_kind talk Ethereum Smart Contracts Lightning Talk list_nodes_by_kind talk Event-Driven Rails Discussion Panel list_nodes_by_kind talk Events events events list_nodes_by_kind talk Event Sourcing and Actor model in Ruby list_nodes_by_kind talk Event Sourcing Anti Patterns and Failures list_nodes_by_kind talk Ever shorter feedback loop list_nodes_by_kind+search_nodes talk Extracting logic from templates with Hanami Views list_nodes_by_kind talk FaaS for Ruby Lightning Talk list_nodes_by_kind talk Fantastic Databases and Where to Find Them list_nodes_by_kind talk Fix Production Bugs 20x Faster list_nodes_by_kind+search_nodes talk Forms Are Dead: Building Agentic Workflows in Ruby list_nodes_by_kind talk From open source to IPO list_nodes_by_kind talk From PostgreSQL to SQLite in Rails list_nodes_by_kind talk Functional Programming as Naming Lightning Talk list_nodes_by_kind talk Game Hunter JRuby Roguelike Lightning Talk list_nodes_by_kind talk Gaming With Ruby and VMs Lightning Talk list_nodes_by_kind talk Gregorian Calendar list_nodes_by_kind talk Grokking FP For The Practicing Rubyist list_nodes_by_kind talk Handling file uploads for modern developer list_nodes_by_kind talk How (and why) to run SQLite in production list_nodes_by_kind talk How I brought LCP down to under 350 ms list_nodes_by_kind talk How to Be Top 10% in Ruby Lightning Talk list_nodes_by_kind talk How To Ensure Systems Do What We Want And Take Care Of Themselves list_nodes_by_kind talk How to hijack list_nodes_by_kind talk How To Package A Rails Engine Generation To Automation list_nodes_by_kind talk How wroclove.rb impacts developers and companies list_nodes_by_kind talk International cooperation in IT teams list_nodes_by_kind talk Introducing Sorbet into your Ruby codebase list_nodes_by_kind talk Introduction To Event Sourcing How To Use It With Ruby list_nodes_by_kind talk Is the monolith a problem list_nodes_by_kind talk iTerm Triggers and say Command Lightning Talk list_nodes_by_kind talk It is not so bad, after all list_nodes_by_kind talk JavaScript and Frontend Panel list_nodes_by_kind talk JRuby: Professional-Grade Ruby list_nodes_by_kind talk Kamal is not harder than your PaaS list_nodes_by_kind talk LATERAL Joins Rails Performance Lightning Talk list_nodes_by_kind talk Lightning Talk on Email Leaks and Senior Developer Titles list_nodes_by_kind talk Mentoring the Rails World Website Lightning Talk list_nodes_by_kind+search_nodes talk Message Bus Decoupling Lightning Talk list_nodes_by_kind talk Methods Gem for Ruby Method References list_nodes_by_kind talk Might & Magic of Domain-Driven Design list_nodes_by_kind talk Multi-region data governance in Rails application list_nodes_by_kind talk Mutant on steroids list_nodes_by_kind talk Mutation testing workshop wroclove.rb 2019 list_nodes_by_kind talk MVCC for Ruby developers list_nodes_by_kind talk My core skill never was the typing list_nodes_by_kind talk Native apps are dead, long live native apps list_nodes_by_kind talk Next Token! list_nodes_by_kind talk Nightmare neighbours caveats of Rails based mutlitenancy list_nodes_by_kind talk No-build Utopia: Modern User Experiences with Rails & Web Standards list_nodes_by_kind talk No 'Pundit' Intended list_nodes_by_kind talk Offline Sandwich Focus Workflow list_nodes_by_kind+search_nodes talk One machine please, make it Turing list_nodes_by_kind talk On the tasteful journey to Yippee list_nodes_by_kind talk Optimistic ul list_nodes_by_kind talk Optimizing performance in Rails apps with GraphQL layer list_nodes_by_kind talk Orchestrating video transcoding in ruby list_nodes_by_kind talk Outdated Browser Detection list_nodes_by_kind talk Performance of Distributed Applications list_nodes_by_kind talk Phantom Migrations Gem Lightning Talk list_nodes_by_kind talk Prevent account sharing list_nodes_by_kind talk Procrastination and Fish Shell Aliases Lightning Talk list_nodes_by_kind talk Reforging (or rather rebrewing) the support for open-source list_nodes_by_kind talk Removing Code with Breadth-First Search list_nodes_by_kind talk Rewrite with confidence list_nodes_by_kind talk Rubyana Gems and the Ractorous Rubetta Stones! list_nodes_by_kind+search_nodes talk Ruby Archaeology list_nodes_by_kind talk Ruby has literally always had types list_nodes_by_kind talk Ruby on a $4 Computer list_nodes_by_kind talk Ruby Packer Lightning Talk list_nodes_by_kind talk Ruby Rendezvous Method Call, Proc, and Beyond list_nodes_by_kind talk Ruby Standard Library Hidden Gems Lightning Talk list_nodes_by_kind talk Scaling an Open Source E-Commerce Framework list_nodes_by_kind talk Scientific Ruby Lightning Talk list_nodes_by_kind+search_nodes talk Securing Rails applications list_nodes_by_kind+search_nodes talk Setup and operation of mutation testing in agentic world list_nodes_by_kind+search_nodes talk Sidekiq Batches Lightning Talk list_nodes_by_kind talk Sonic Pi Music Performance list_nodes_by_kind talk Spice up your life with eql list_nodes_by_kind talk Strategic Domain Event Design Lightning Talk list_nodes_by_kind talk SUPER AIN'T SUPER From OOP To FP and Beyond! list_nodes_by_kind talk Testing Randomness list_nodes_by_kind talk The Curse of Service Object list_nodes_by_kind talk The good, the bad and the remote — collaborative domain modeling with EventStorming list_nodes_by_kind talk The pillars of Domain Driven Design list_nodes_by_kind talk Toolbelt of a Seasoned Bug Hunter list_nodes_by_kind+search_nodes talk To Refine or Not to Refine list_nodes_by_kind talk Towards the post framework future list_nodes_by_kind talk Typical DDDomains In Rails Apps list_nodes_by_kind talk Understanding coupling list_nodes_by_kind talk Under The Hood And On The Surface Of Sidekiq list_nodes_by_kind talk UringMachine — High Performance Concurrency for Ruby Using io_uring list_nodes_by_kind+search_nodes talk Webmock unmocked list_nodes_by_kind talk When REST is Not Enough: Implementing Alternative Protocols in Ruby on Rails list_nodes_by_kind talk Why I Like Mentoring Lightning Talk list_nodes_by_kind+search_nodes talk Working with RailsEventStore in Cashflow Management System list_nodes_by_kind talk Write a Blog Lightning Talk list_nodes_by_kind talk Writing a Game in Ruby on Rails Lightning Talk list_nodes_by_kind event Advent of Code list_nodes_by_kind event Brighton Ruby list_nodes_by_kind event EmberConf list_nodes_by_kind event Eventide Summit 2023 list_nodes_by_kind event Hacktoberfest list_nodes_by_kind event KanDDDinsky list_nodes_by_kind event Rails World list_nodes_by_kind event wroclove.rb 2018 list_nodes_by_kind event wroclove.rb 2019 list_nodes_by_kind event wroclove.rb 2022 list_nodes_by_kind event wroclove.rb 2023 list_nodes_by_kind event wroclove.rb 2024 list_nodes_by_kind event wroclove.rb 2025 list_nodes_by_kind event wroclove.rb 2026 list_nodes_by_kind person Aaron Patterson list_nodes_by_kind person Adam Okoń list_nodes_by_kind person Adam Piotrowski list_nodes_by_kind person Adrian Marin list_nodes_by_kind person Agnieszka Małaszkiewicz list_nodes_by_kind person Akira Matsuda list_nodes_by_kind person Alberto Brandolini list_nodes_by_kind person Amanda list_nodes_by_kind person Amelia Walter-Dzikowska list_nodes_by_kind person Andrei Bondarev list_nodes_by_kind person Andrei Kaleshka list_nodes_by_kind person Andrew Kane list_nodes_by_kind person Andrey Sitnik list_nodes_by_kind person Andrzej Krzywda list_nodes_by_kind person Andrzej Śliwa list_nodes_by_kind person Andy Kroll list_nodes_by_kind person Andy Maleh list_nodes_by_kind person Anita Jaszewska list_nodes_by_kind person Anton Davydov list_nodes_by_kind person Armin Pašalić list_nodes_by_kind person Arturo Herrero list_nodes_by_kind person Ayush Newatia list_nodes_by_kind person Bartosz Blimke list_nodes_by_kind person Ben Johnson list_nodes_by_kind person Bertrand Meyer list_nodes_by_kind person Caio Almeida list_nodes_by_kind person Charles Nutter list_nodes_by_kind person Chikahiro Tokoro list_nodes_by_kind person Chris Oliver list_nodes_by_kind person Claude Lévi-Strauss list_nodes_by_kind person Damir Zekić list_nodes_by_kind person Dan Kubb list_nodes_by_kind person David Halasz list_nodes_by_kind person DHH list_nodes_by_kind person Dimitry Salahutdinov list_nodes_by_kind person Elisabeth Kübler-Ross list_nodes_by_kind person Emiliano Della Casa list_nodes_by_kind person Eric Evans list_nodes_by_kind person Eric Normand list_nodes_by_kind person Erwin Kroon list_nodes_by_kind person Ethan Garofolo list_nodes_by_kind person Galileo Galilei list_nodes_by_kind person Garry Kasparov list_nodes_by_kind person G.K. Chesterton list_nodes_by_kind person Gottfried Wilhelm Leibniz list_nodes_by_kind person Greg Molnar list_nodes_by_kind person Greg Navis list_nodes_by_kind person Greg Young list_nodes_by_kind person Isaac Newton list_nodes_by_kind person Ismael Celis list_nodes_by_kind person Ivan Nemytchenko list_nodes_by_kind person Jakub Rodzik list_nodes_by_kind person Jan list_nodes_by_kind person Janko Marohnic list_nodes_by_kind person Jared list_nodes_by_kind person Joel Drapper list_nodes_by_kind person John Gallagher list_nodes_by_kind person John Hawthorne list_nodes_by_kind person Josef Strzibny list_nodes_by_kind person José Valim list_nodes_by_kind person Julik Tarkhanov list_nodes_by_kind person Karol Szuster list_nodes_by_kind person Koichi Sasada list_nodes_by_kind person Krzysztof Hasiński list_nodes_by_kind person Kuba Suder list_nodes_by_kind person Louis Antonopoulos list_nodes_by_kind person Lucian Ghinda list_nodes_by_kind person Łukasz Reszke list_nodes_by_kind person Łukasz Szydło list_nodes_by_kind person Maciej Rząsa list_nodes_by_kind+search_nodes+get_node_edges person Maciek list_nodes_by_kind person Magnus Carlsen list_nodes_by_kind person Marco Heimeshoff list_nodes_by_kind person Mariusz Gil list_nodes_by_kind person Markus Schirp list_nodes_by_kind person Mark Zuckerberg list_nodes_by_kind person Martin Fowler list_nodes_by_kind person Martin Gamsjaeger list_nodes_by_kind person Masahiro Nakagawa list_nodes_by_kind person Mateusz Nowak list_nodes_by_kind person Matthias Verraes list_nodes_by_kind person Matz list_nodes_by_kind person Max Howell list_nodes_by_kind person Michał Bronikowski list_nodes_by_kind person Michał (Helpling) list_nodes_by_kind person Michal Matyas list_nodes_by_kind person Michał Młoźniak list_nodes_by_kind person Michał Zajączkowski de Mezer list_nodes_by_kind person Mike Dalessio list_nodes_by_kind person Mike Perham list_nodes_by_kind person Miron Marczuk list_nodes_by_kind person Nate Berkopec list_nodes_by_kind person Nathan Ladd list_nodes_by_kind person Nick Schwaderer list_nodes_by_kind person Nick Sutterer list_nodes_by_kind person Nicolò Rebughini list_nodes_by_kind person Norbert Wójtowicz list_nodes_by_kind person Pavo list_nodes_by_kind person Paweł Dąbrowski list_nodes_by_kind person Paweł Pacana list_nodes_by_kind person Paweł Pokrywka list_nodes_by_kind person Paweł Strzałkowski list_nodes_by_kind person Peter Solnica list_nodes_by_kind person Piotr Solnica list_nodes_by_kind person Radoslav Stankov list_nodes_by_kind person Rafael Zamaris list_nodes_by_kind person Rafał Cymerys list_nodes_by_kind person Rafał Rothenberger list_nodes_by_kind person René Descartes list_nodes_by_kind person Rich Hickey list_nodes_by_kind person Robert C. Martin list_nodes_by_kind person Romeu Moura list_nodes_by_kind person Ryan Townsend list_nodes_by_kind person Sandi Metz list_nodes_by_kind person Scott Bell list_nodes_by_kind person Scott Bellware list_nodes_by_kind person Scott Wlaschin list_nodes_by_kind person Sean Schofield list_nodes_by_kind person Sebastian Wilgosz list_nodes_by_kind person Sergey Ivanov list_nodes_by_kind person Sergey Sergyenko list_nodes_by_kind person Seth Horsley list_nodes_by_kind person Sharon Rosner list_nodes_by_kind person Shona list_nodes_by_kind person Shugo Maeda list_nodes_by_kind person Stefan Wintermeyer list_nodes_by_kind person Stephan Schmidt list_nodes_by_kind person Stephen Margheim list_nodes_by_kind person Stephen Wolfram list_nodes_by_kind person Steve Ballmer list_nodes_by_kind person Szymon Fiedler list_nodes_by_kind person Szymon Kulec list_nodes_by_kind person Tomasz Donarski list_nodes_by_kind person Victor Shepelev list_nodes_by_kind person Vladimir Dementyev list_nodes_by_kind person Wojtek Wrona list_nodes_by_kind person Xavier Noria list_nodes_by_kind person Yaroslav Shmarov list_nodes_by_kind person Yatish Mehta list_nodes_by_kind person Yehuda Katz list_nodes_by_kind tool ChatGPT search_nodes tool RealtimeBoard search_nodes project Check search_nodes concept AI Agent search_nodes tool langchainrb search_nodes takeaway Name Things To Find Their Properties search_nodes tool PagerDuty search_nodes takeaway Spoken Test Feedback with say + iTerm Triggers search_nodes project Nerds and Threads search_nodes resource Rocket Real-Time Benchmark search_nodes takeaway Replay-Based Debugging search_nodes concept Exploratory Programming search_nodes takeaway Trailblazer tracing saves thousands of debugging hours search_nodes question How to do DDD remotely? search_nodes takeaway Mutation testing replaces dumb review questions search_nodes question Was debugging dev-environment performance worth it vs. ditching Spring/Guard? search_nodes takeaway Replay events to reproduce bugs search_nodes tool Apollo GraphQL search_nodes tool GraphQL search_nodes concept GraphQL query batching search_nodes concept Nested GraphQL query bottleneck search_nodes concept GraphQL query timeout search_nodes tool Relay search_nodes tool graphql-ruby search_nodes takeaway Graph resolvers compute minimal API calls automatically search_nodes tool Pathom search_nodes concept GraphQL performance regression tests search_nodes company Phusion Passenger search_nodes question Sidekiq Retry Race Condition Fixed In 7 search_nodes takeaway Timeline Diagrams Reveal Possible Race Conditions search_nodes concept Timeline Visualization search_nodes concept Lost Update Problem search_nodes concept Global Interpreter Lock search_nodes question Scaling receivers vs implementing idempotency search_nodes takeaway Don't kill dependencies — use backoff search_nodes concept Mentoring search_nodes takeaway Mentor by Guiding, Not Coding search_nodes takeaway Mentorship Grows Both Sides search_nodes concept Retrieval Augmented Generation search_nodes takeaway Compound Simple Habits to Reach Top Percentiles search_nodes takeaway Prompts as Business Logic search_nodes tool Puma search_nodes tool server-engine search_nodes concept HTTP/2 Server Push search_nodes tool Unicorn search_nodes tool Iodine search_nodes project raise_permanent_job search_nodes tool Plezi search_nodes tool Rack search_nodes takeaway Signed On-the-fly URLs search_nodes tool Docker search_nodes takeaway Dockerize Exotic Dependencies search_nodes tool Amazon ECS search_nodes concept Build Gems in Docker Isolation search_nodes takeaway Build your gem in a Docker container search_nodes question Scaling Sidekiq Elastically search_nodes takeaway Sign serverlessforruby.org petition search_nodes tool CircleCI search_nodes tool dry-cli search_nodes concept CI Matrix Strategy search_nodes takeaway Rails Tests Are Mostly Integration Tests search_nodes concept Mutation Testing search_nodes concept Rails Testing Pyramid (Ivan's version) search_nodes concept Incremental Mutation Testing search_nodes tool parallel_tests search_nodes concept Test Pyramid search_nodes takeaway Avoid logic in tests search_nodes question Are fake-dice tests enough, or should the real dice be tested too? search_nodes concept Logic in Tests search_nodes takeaway Use Ruby to debug Ruby search_nodes takeaway Port Python Libraries With ChatGPT search_nodes tool left-pad search_nodes concept Vector Embeddings search_nodes concept Large Language Models search_nodes tool ruby-openai search_nodes concept Transformers search_nodes tool Midjourney search_nodes takeaway Silver Bullet Anti-Pattern search_nodes concept Scaffolding Before Features search_nodes tool Release Drafter search_nodes concept Waterfall Analysis search_nodes takeaway Event Sourcing Mind Shift Trade-off search_nodes concept Application Layer vs Domain Layer search_nodes tool Traveling Ruby search_nodes tool Hatchbox search_nodes tool Jumpstart Pro search_nodes tool Action Cable search_nodes project AnyCable search_nodes question What is an enterprise Rails application? search_nodes tool TestBench search_nodes tool FactoryBot search_nodes tool Cells search_nodes tool Crystal Ball search_nodes tool power_assert search_nodes concept Fixtures over Factories search_nodes tool test-prof search_nodes tool Grafana search_nodes tool Honeycomb search_nodes tool Prometheus search_nodes tool New Relic search_nodes tool Datadog search_nodes tool Sentry search_nodes takeaway Monitoring is the most important optimization habit search_nodes concept Flame Graphs search_nodes

2 edges