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

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

I had a pair programming session with you a couple of years ago around a gem I was working on at the time and you were incredibly helpful and thoughtful and I really enjoyed it.

Nichol Alexander

In a word, excellent! Avdi was enthusiastic about making sure my questions were answered, as well as giving me design tips. At the end of the session he provided me with a list of notes and links that were relevant to the discussions I had with him during our time together.

[Afterwards] I was far more confident specing out systems with POROs and structs. Additionally I found myself thinking about the object design for a given project as a whole as opposed to a mish-mash of disparate entities.

Sean Williamson

I needed a different perspective on improving the code structure and interactions for a few SOA Ruby apps.

The pairing experience was natural, well-paced, insightful and, most important, helpful. We explored multiple alternatives, and sure enough, the optimal changes became clear and simple. Pairing is all about communication, and Avdi is an excellent communicator, it was a pleasure exploring different ideas.

Pairing with Avdi helped me slow down, learn to entertain ideas more and not become too attached to intermediary iterations. It taught me that all understanding is temporal and it's most valuable to continue exploring and improving, in the most playful and easy-going way possible.

Gerhard Lazu

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.