Rubber Duck Sessions

What’s standing in your way? Let’s talk about it.

We’ve all been there: frustrated, uncertain, struggling with the sense that you really ought to know the answer to this one. From debugging nightmares, to tough architecture decisions, to deciding what’s the next step to level up as a developer… there’s one thing that has always helped me when I’ve been at an impasse: a conversation with a trusted peer who’s been around the block a few more times than I.

Hi, I’m Avdi. I’m not a real duck, but I am a real programmer. I’ve been at it for twenty years, and along the way I’ve helped a lot of other developers become more effective at what they do. Book a consultation with me, and get un-stuck.

I have, at various points, worked for the same company as Avdi, engaged him for remote pair-programming sessions after that because I missed his enthusiasm and insight, bought copies of “Exceptional Ruby“ and “Confident Code” for all the junior developers on a team because that seemed the quickest way to bring everybody up to speed and give them a common idiom, and had a prototype rubber duck session earlier this year. When it has been necessary to reignite enthusiasm or provide a lateral insight into an intractable problem, Avdi has at more than one point proven invaluable.

Brilliant. Two examples, six years apart, of things I would not have thought of but were evidently true once Avdi pointed them out were that Cucumber need not be restricted to integration tests but could usefully build unit tests where the SUT has sufficiently complex logic that expressing the behaviour in words as well as code would very likely result in a clearer understanding and therefore a clearer implementation, and that “marketing“, while not an obvious example of the Pragmatic Programmers’ “learn one new language a year”, was potentially the most important of all.

Sean Miller

I was really struggling with the Big Question of being a super-senior developer: Build a business of my own? Stick with my job? Become a consultant? Find a different job or role? I started to chase all of these, and so I made progress on none of them. And I was getting increasingly frustrated about it.

Working with Avdi helped guide my thinking. In a short conversation, he was not only able to help me find the confidence and clarity I needed, but was able to talk about each of the different possibilities in enough detail that, even after my personal situation changed, it was perfectly obvious which new path I should take.

More than anything else, Avdi helped me understand what I'd be best at and what would make me happiest, and which directions would likely make me unhappy. That's knowledge I'll be able to fall back on, no matter what comes next.

Justin Weiss

I just wanted to chat about the future, the industry and very complex high-level stuff. He spent a lot of time listening because there was quite a bit of context to baseline. Avdi is a great listener. He's a "reference spec" listener to me.

Chris Dillon

We were replacing some MVP logic involving state machines, guards and callbacks at the time. Avdi asked poignant questions, shared his wisdom and helped to vet the direction I was taking. Years later, the solution has held up well and been easy to maintain and build upon.

While we only had one pair session, I reflect on it from time to time and believe that my time with Avdi did convince me to think more about what the patterns we chose give back to us over time.

Kenny Johnston

its been a few years since I paired with Avdi, but I still draw from that experience to this day. I was hoping to get some clear direction on schema and architecture and get me going down a decent path with my project. Avdi was very helpful and we broke the problem domain down and created an approach to solve it.

Pairing with Avdi was a bit intimidating at first, but that quickly turned into excitement. I never felt like I was 'inferior' or the lesser 'half' of the pair (even if that was definitely the case). He always went at my pace, and stopped to explain each step along the way. And more importantly the reasoning behind the decision.

I think I went into our first session with a bit of an inferiority complex, and when we got into a a bit of a corner, Avdi actually had to look up something in the rails documentation. I thought "wow" even someone as "ruby famous" as Avdi has to look up stuff! Just like me! Reflecting back, of course he does not have the entire Ruby and Rails API memorized, but I no longer feel inferior when I have to reference documentation.

Jason Fraley

Rubber ducks facing one another

Do you:

  • Need a second perspective on an architectural decision?
  • Want suggestions (or moral support) for refactoring a big ball of mud?
  • Want someone to help you hone a conference talk?
  • Desire to get better at knowing what to test, and how?
  • Want a third-party code review for yourself or your whole team?
  • Want help deciding what to study next?
  • Crave feedback on an API design?
  • Want some company for a gnarly debugging session?
  • Want to talk about making the transition from being “just a coder” to someone who teaches, mentors, and disseminates ideas?

I’ve helped programmers with all of these things and more, and I can probably help you too.

Book a Rubber Duck Session

  • What would you like to consult with Avdi about?


What if I'm not satisfied?
Then I’ll give you a full refund.
What if I can't make it, or there's an interruption?
Life happens. I’ll make sure you’re re-booked to get the balance of your time.
Success message!
Warning message!
Error message!