The jbrains Experience

Affordable personal mentoring to help you start getting unstuck!

"We (you and me) had one year of fruitful email conversations and I learned a lot from you and your courses. I think we accomplished a lot of the things we talked about in the beginning on how I can get better in software development and why I need to change a job: I got a new job, I leave my old company changed by your and my ideas and the situation is much better there than last year. My colleagues are still motivated to someday break through the management problems or work around them in a way, that the whole company benefits from it even more."

- M. S.

What you offer is totally unique and no other services I am currently using offer something like that. It is exciting and motivating for me to be able to speak freely over email with an influential authority as you are. So again, thank you so much to provide an affordable way for all to learn from you (and hopefully help you to learn as well).—A.A.

I was stressing about non-business related personal finance issues. Your advice was that the business should be working for me or there's really no point in having it. [After talking with you for an hour] I turned the corner and understood what I needed to do to make the business enjoyable and successful.

- A. E.

You need a mentor, but you can't justify the expense of a full-time coach. Maybe you're not yet sure about buying real-time one-on-one sessions. You can't figure out how to convince your employer to pay for the mentoring you need. You need more than what the world offers you for free, but your budget doesn't have room for enterprise-level consulting. I would like to help you.

Do any of these sound like you?

  • I can get free advice from random people on the internet, but I don't know whom to trust and most of what I read is just kinda OK. I can't hang out on Reddit all day! (or Quora. or Stack Overflow. or Hacker News.)
  • I can read books, but I already have a backlog of 50 books that I'll probably never get around to reading. I don't know which books will help me, so I don't know how to prioritize. And after I've read a great book that helps me, reading more in that topic area feels like it doesn't give me much more.
  • I have about 200 ideas for things to try, but I can't decide where to start, I can't do them all at once, and I'm worried that I'm going to choose the wrong thing!
  • I can talk to people at meetup groups and I learn some things from them, but I don't feel comfortable just asking them outright for help. It feels like taking advantage of them.
  • I can get help from my friends, but I worry that they generally won't tell me what I need to hear.
  • I want to do most of the learning on my own, but I don't have the time or energy to just try everything to see what helps. I need some direction!

In the space between Do It Yourself and intensive 1-on-1 coaching lies The jbrains Experience. The "hop-on, hop-off tour" of personal mentoring. It works like this:

  • Subscribe as long as you need help.
  • Read as much as you have energy for.
  • Ask questions to guide the conversation towards the topics that matter most to you right now!
  • Join Office Hours sessions either by chat or by video conference. (NEW! for March 2021.)
  • Add personal working sessions if you need it and once I've earned enough of your trust
  • When you've got what you needed, leave (but please don't forget us).

What You Get

  • Access to a back-catalog of well over 125,000 words of questions and answers, including some code samples.
  • Access to a private Slack workspace for Office Hours: ask questions, get answers, chat with the other members of the group.
  • Free access to Office Hours Live sessions every month. (Regular price: CAD 59 per session.)
  • Access to individual working sessions at more than 75% off the price that companies pay to hire me.
  • The chance to discuss these matters with other members of the group.
  • The "Bat Phone": rapid, direct access to me by email for especially sensitive questions.
  • Advance notice of special events and programs, such as group practice sessions and micro-training courses, and at discounted prices. (Sometimes free!)
  • Cancel your subscription any time if you decide that you've got what you needed.

I've chosen to eliminate annual subscription options so that you retain the freedom to leave at any time. No guilt, no pressure, no expectations: stay as long as it's helping and leave when you've got what you needed!


"I really feel like your teachings are helping to usher me into a new phase as not only a developer/test engineer but as a human, too. From getting things done, to improving finances, to testing, to debugging conversations, I'm learning so much thanks to you. Thank you again!"

- Jayson Smith, struggling with the feeling of knowing where they want to go, but not getting there sooner.

"Talking to you back then helped me a big deal, I found my footing again. [...] I took a lot of motivation away from our chat. Thank you so much for this."

- A. L., who went through a phase of significant anxiety about the path of their career

When I paid your invoices, my wife told me that it was the best money I'd spent all year!

- G. N., who hired me to prepare him to interview with a large software company. He got the job.

Which topics can you expect help with?

If you want to get to know me better first, then please read my past work at blog.jbrains.ca and blog.thecodewhisperer.com. If you prefer video talks, then search YouTube and I hope you'll find something that matches your needs and helps you decide whether you like my ideas and my style.

If you'd prefer an overview, here are some areas in which I have been helping people since the early 2000s:

  • Evolutionary design: test-driven development, testing, incremental design, modular design... techniques for smoothing out the cost of adding features over time.
  • Value-driven product development: deliberate discovery, exploring and refining product ideas, writing examples, communicating effectively among the people requesting features and those delivering them... techniques for investing more wisely in delivering products to markets
  • Organizing personal work: tracking tasks, increasing focus, reducing stress, balancing responsiveness with completing tasks... techniques for achieving more and sustaining your energy while doing it.
  • Interacting better with others: understanding motivation, adapting your communication style to others, increasing empathy and compassion, improving resilience... techniques for interacting more harmoniously with other people, both on the job and at home.
  • Guiding groups to change how they work: coaching the coach, adopting new practices safely, running effective retrospectives... techniques for helping groups on path of continuous improvement.

I call myself "an Agile Coach, but actually Agile and actually a coach", but that's mostly because it's cute and concise. I don't push Agile frameworks, although I have benefited much over the years from lightweight, iterative and incremental approaches to delivering software. I value feedback and simplicity, I recognize the power of habits, and I like to help people figure out when the need to increase capacity and when they need to reduce interference. We focus on the nature of the problem and potential solutions present themselves.

Although it's mostly programmers who find me, we also address issues that go far beyond writing code, cultivating design, and testing. I have also helped individuals with other aspects of their life and work beyond the specific responsibilities of a software development professional.

  • Managing personal finances and lifestyle design
  • Becoming a freelancer
  • Public speaking, writing, and other forms of presenting ideas
  • Fundamentals of marketing and ethical selling

No, I'm not a "life coach" and I'm definitely not a licensed therapist. I commit firmly to avoid stepping over that line, and if you think I've overstepped, then you should fire me immediately.

Often I start working with clients by discussing software delivery techniques, but as we start addressing those issues, it becomes clear that we need to account for outside forces. This mostly means some combination of "other people" and "the stories I tell myself". We start trying to split features into thin slices and we end up talking about the problem of the eternally impatient customer. We start trying to refactor code and we end up talking about the technical lead who refuses to write anything down. We start trying to write smaller tests and we end up talking about how hard it will be to justify this approach to their co-workers. I learned it from Jerry Weinberg: every problem eventually becomes a "people problem". And remember that we are also people, so we are often part of the problem!

A Note To Companies

I offer this mentoring service to individuals, but companies are increasingly hiring me for this style of incremental mentoring at a distance. If you're bigger than a "one-person show", then please read more about how to book a working session with me. This service is not suitable for me to mentor a team nor to do roving consulting for various teams within a larger organization. If you need a more comprehensive program than merely the occasional working session, then find out more at https://consulting.jbrains.ca.

If you're an individual working in a larger organization, then please join us! If, over time, you decided that it would benefit the organization to engage me, then we would know enough by then to start designing a coaching program that fits your wider community

I might just find a way to inspire you...

One of the problems of a software developer is about how to handle apathy. Every 2-3 years (or often) I feel like my passion/motivation/vision for software dies, then I need to find a “switch” to turn on my internal “engine”. As I see many “dead” developers I start thinking that it is a sort of “common issue” along developer’s career path. So this course was a good spark for the end of this year. —An anonymous student from a live training course

I want to help you stop doing wasteful work out of habit, inertia, or just because you're trying to "follow the book".

I think it's my mental inertia in action: [the] idea that I can have gherkin-syntax test cases written but not automated never ever came into my mind before. –M.S.

Your Instructor


J. B. Rainsberger
J. B. Rainsberger

J. B. (Joe) Rainsberger is one of the "second wave" of TDD practitioners and Extreme Programming enthusiasts: he learned directly from the pioneers of the field. His book, JUnit Recipes, was the standard for over a decade for Java programmers who wanted to do what we today call developer testing or programmer testing. He has taught thousands of programmers around the world to bring high discipline to their work since 2003.

Since 2010, J. B. has wandered Europe teaching people how to manage the never-ending onslaught of work, how to adopt new working practices safely and effectively, how to understand and even grow to respect their most annoying co-workers, and how to find the time and energy to improve as though finding loose change in the couch cushions. He helps not just software development professionals turn their dreary day job into a Dream Job, including sharing how he engineered his first extended retirement period from age 34 to 40!


Course Curriculum


  How To Participate
Available in days
days after you enroll
  The Junk Drawer (Everything Else)
Available in days
days after you enroll
  Evolutionary Design, including Test-Driven Development (TDD)
Available in days
days after you enroll

I have read this article of yours a couple of years ago (and it changed my life completely)... This is amazing! I must reorganize my life according to this project-centric way like, right now. — M.S., a student, in response to an article describing how anyone can organize their own personal workload.

Frequently Asked Questions


When does this group start and finish?
It starts now (for you) and only ends when nobody wants to participate any longer.
How long do I have access to this group?
Think of it like a library where there's an author on site from whom you can commission new work. And when you try to talk to the other people, nobody will shush you. As long as you subscribe, you have access.
What if I am unhappy with this group?
If you are unsatisfied with your purchase, contact me in the first 30 days for a full refund.
How is this different from your other online training?

The World's Best Intro to TDD, for example, is a pre-packaged training course, with fixed topics. Here, the topics vary and you help guide the discussion. You might want to start with training, then join us here when you need something more personalized and flexible.

What if I just want to do work with you, like writing examples or pair programming?
As long as you keep your subscription here, you have the option to hire me for personal working sessions at a much lower price than I charge to companies. In fact, if you subscribe here for one month, book a session with me, then cancel your subscription, that's perfectly OK!

"[After my first session] I already feel more confident, because you've given me some concrete ways to make progress... You hit the nail on the head [regarding what I need to do next]."

- A. W., worried about moving from a tester/leadership role into one as a programmer/technical lead