← 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ąsa → authored → Debug like a scientist
context (empty) → Single-speaker author of the wroclove.rb 2024 talk.
update Debug like a scientist → presented_at → wroclove.rb 2024
context (empty) → Talk delivered at wroclove.rb 2024.
create Maciej Rząsa → attended → wroclove.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ąsa → works_at → Chattermill
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 scientist → about → Hypothesis-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 scientist → about → Michelson–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 scientist → about → Special 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 scientist → about → Albert 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 scientist → about → Puma
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 scientist → about → Docker 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 scientist → about → Bootsnap
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 scientist → about → Passenger
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 scientist → about → Rubber 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 scientist → about → Grafana
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ąsa → recommends → Hypothesis-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ąsa → recommends → Rubber 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 Chattermill → uses → Puma
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 Chattermill → uses → Passenger
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 Chattermill → uses → Bootsnap
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 Chattermill → uses → Docker 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 Chattermill → uses → Grafana
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 Passenger → related_to → Passenger
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 Juniors → from_talk → Debug 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 Fix → from_talk → Debug 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 Debugging → from_talk → Debug 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 Time → from_talk → Debug 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 Debugging → from_talk → Debug 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 It → from_talk → Debug 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 It → from_talk → Debug 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 Juniors → about → Hypothesis-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 Debugging → about → Hypothesis-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_at → Debug 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_at → Debug 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? → about → Hypothesis-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