Remote Pair-Programming Tour => Invite Me for Free Sessions
Tags: codingtour, journeymantour, pairprogramming, craftsmanship
Published: 2019-12-03 15:26:57

###### *Cover image credits: [Calqui - Own work, CC BY-SA 3.0][cover-image-credits]*

### Update (March 24) - Transition to doing a Remote Pair-/Mob-Programming Tour:
Due to the current pandemic situation, I had to return from the US right before my tour even started. The absolutely amazing thing is, that most of the developers I have had planned to visit are on-board continuing online. So I've decided to do a **Remote Pair-/Mob-Programming Tour** instead, hence **I can join you no matter where in the world you are located**. That is so cool :ok_hand:

Are you interested in pairing/mobbing with me? [Please reach out to me!](#lets-talk)

Here is my current tour schedule:

| Week | Date             | Developer/Company                                     | Topics                                               |
|------|------------------|-------------------------------------------------------|------------------------------------------------------|
| 1    | March 23-27      | [Austin Chadwick][austin], Hunter Industries          | C#, Xamarin, .NET Core, TDD, Mob-Programming         |
| 2    | March 30-April 3 | [Theo Armour][theo]                                   | JavaScript, three.js, Pair-Programming               |
| 3    | April 6-10       | [Adrian Bolboacă][adrian]                             | Dart, Flutter, Mobile, TDD, Pair-Programming         |
| 4    | April 13-17      | [Johnicolas Hines][johnicolas], Glitch                | TypeScript, Node.js, TDD, Pair-Programming           |
| 5    | April 20-24      | [Mike Clement][mike], Emmersion Learning              | TypeScript, Angular, .NET Core, TDD, Mob-Programming |
| 6    | April 27-May 1   | [Peter "Code Cop" Kofler][peter]                      | Unity3d, TDD, Pair-programming                       |
| 7    | May 4-8          | [Fabien Benetou][fabien], European Parliament Innovation Lab WebXR | A-Frame, Mozilla Hubs, Pair-Programming |
| 8    | May 12-15        | [Kieran Farr][kieran]                                 | A-Frame, Streetmix3D, Pair-Programming               |
| 9    | May 18-22        | [Ted M. Young][ted]                                   | JavaScript, TDD                                      |

[austin]: https://twitter.com/mob__mentality
[theo]: https://twitter.com/ta
[adrian]: https://twitter.com/adibolb
[johnicolas]: https://twitter.com/Johnicholas
[mike]: https://twitter.com/mdclement
[peter]: https://twitter.com/codecopkofler
[fabien]: https://twitter.com/utopiah/
[kieran]: https://twitter.com/kfarr
[ted]: https://twitter.com/jitterted

# Original Pair-Programming Tour Article:

I will be coming to the US in March/April 2020 for a pair-programming tour. My current plan is to have several stops along the west coast. Currently, I've planned to be touring in the following areas: ~~**San Diego, San Francisco/Bay Area, Portland and Vancouver**~~.

### *TL;DR*
<mark>Invite me to join you for a couple of days pairing or mobbing with you, while working on your current tasks/project.</mark>

[cover-image-credits]: https://commons.wikimedia.org/w/index.php?curid=16812850

## Who is Harald?
I'm an enthusiastic software engineer with 10 years of professional experience working in different areas of visual and spatial computing.
I have hands-on experience with delivering high-quality software, but I also like working on prototypes/MVPs for measuring traction *before* adding unnecessary complexity. 

Together with friends, I am organizing the [Vienna Unity 3D Meetup][unity3d-meetup]. Our motivation is to build up a local community for discussing how to apply software engineering best practices when developing graphics-intensive applications with a game engine like Unity.

[unity3d-meetup]: https://www.meetup.com/Unity-Meetup-Vienna/

## What is this Pair-programming Tour?
> It’s when a programmer briefly visits several companies to join them in their coding work and to learn from each other.
> -- <cite>[Amitai Schleier][amitai-schleier-website]</cite>

[Corey Haines][corey-haines-blog] coined the term *Journeyman Tour*, an analogy to the journeyman years of medieval craftsmen (e.g. the German ["Walz"][german-walz-wiki]), who were visiting several master after their apprenticeship in order to grow professionally and to become a master of their field themselves.

![German journeymen (craftsmen) in traditional dress][journeyman-photo-url]<figcaption>German journeymen (craftsmen) in traditional dress. Photo credits: [A.stemmer, CC BY-SA 3.0][journeyman-photo-credits]</figcaption>

Nowadays, there are similar programs in other industries that offer additional professional experience in exchange for supporting the host in their everyday work. It's probably more common in labor-intensive professions (e.g. [organic farming][wwoof-about]), which surprises because the software engineering discipline is relatively young, the development processes are far from obvious and the variety how we work towards our goals is several orders of magnitude bigger than compared to working on/with physical things. At least, I think that this complexity in our industry has something to do with most of our tools and frameworks being virtual.

Learning on the go, and generating value on the way is crucial in order to balance priorities between business and engineering, except if there is a huge research budget.

### How does it work?

The idea is simple: You (your employer) provide room and board. I pair/mob with you for a couple of days/weeks. We do it because we both expect to gain.

### Why would a skilled developer offer his services for free?

Exactly. I am offering to share my knowledge and provide new insights for free. Why I am doing this? 

I don't want to miss interesting opportunities because of troubles getting the budget approved. The risks and costs should be as low as possible. I will invest time and energy, but I should not have to invest my own money.

## What can Harald offer to me and/or my company?

An absolute requirement is that we set goals so that we both can expect to gain value from my visit. Besides my learning from you, you will learn from me as well, and probably (depending on the goals) receive a direct contribution from me to your work. 

I have hands-on experience in the following areas:

* Software Engineering
    * C++20, CMake, Make
    * C# and Java
    * TypeScript, JavaScript, Node.js, React, ReactNative
    * Object-oriented and functional programming
    * [Clean Code][clean-code-book], [Refactoring][refactoring-book], Loose coupled architecture
    * Unit, Integration, Acceptance and UI Testing
    * TDD
    * Creating tests for legacy applications
    * Performance profiling and memory leak analysis
    * Open source license compliance
    * Diving into new technologies/languages really quickly!

* Visual Computing
    * [Unity3D][unity3d-about], [OGRE3D][ogre3d-about]
    * [3D scanning][structure-scanner-website] and scan processing (hole filling, volume computation, etc.)
    * 3D cloud rendering service
    * OpenGL, DirectX
    * Augmented and virtual reality
    * Video processing and streaming
    * Image processing and analysis
    * Medical visualization (radiology image data)
    * [DICOM][dicom-wiki]
    * [Volume rendering][volume-rendering-wiki]
    * [SIMD][simd-wiki], SSE, AVX, Arm Neon
    * [Emscripten][emscripten-about]/WebAssembly

* DevOps
    * Advanced GIT (Git LFS, Submodules, etc.)
    * CI/CD Tools like Gitlab CI, Jenkins, TeamCity, Azure DevOps, Travis CI, CircleCI
    * Docker, Docker Compose
    * Cloud technologies (Google Cloud, Firebase, AWS, Azure, etc.)
    * Bash scripting, Batch scripting, PowerShell

I like refactoring, eliminating code smells, decouple components, discuss architecture pros and cons, automate everything, improve team development experience, single-action build and test workflows, improve docs, find out almost everything the involved tools have to offer functionality wise. We won't run out of ideas about how I can support you.

Also, if we discover topics of general interest I am happy to give talks or workshops to the whole team.

[clean-code-book]: https://www.pearson.com/us/higher-education/program/Martin-Clean-Code-A-Handbook-of-Agile-Software-Craftsmanship/PGM63937.html?tab=overview
[dicom-wiki]: https://en.wikipedia.org/wiki/DICOM
[emscripten-about]: https://emscripten.org/docs/introducing_emscripten/about_emscripten.html
[ogre3d-about]: https://www.ogre3d.org/about
[refactoring-book]: https://martinfowler.com/books/refactoring.html
[simd-wiki]: https://en.wikipedia.org/wiki/SIMD
[structure-scanner-website]: https://structure.io/structure-sensor
[unity3d-about]: https://unity3d.com/de/unity
[volume-rendering-wiki]: https://en.wikipedia.org/wiki/Volume_rendering

## What’s it like to code with Harald?

> Harald is a fun coworker and downright team player who always tries to improve his and the team's performance by encouraging regular code reviews and practicing pair programming. He always strives to find a clean and elegant solution to the problem that integrates well with the existing codebase.
> -- <cite>Ferdinand Pilz, three10 GmbH</cite>

#

> Harald's eagerness to grow as a developer in order to perfect coding skills, as well as his willingness to share knowledge make him a first-class software craftsman. His strong enthusiasm for software development and collaboration among developers is an inspiration to me.
> -- <cite>Alexander Hörmandinger, Agfa Healthcare GmbH</cite>

#

> I love Harald's passion to explore new things and to share his skills with others. He always strives for the best practices, instead of the quick, "naive" solution. I worked with him for over 2 years. He definitely made me a better programmer!
> -- <cite>Robi Hammerle, three10 GmbH</cite>

## How can I get my own impression?

Let's do a 1-hour remote pairing session. Send me a request with your preferred date+time. See the contact details on the [end of this article](#lets-talk).

## Did Harald come up with this idea himself?

There are several software craftsmen who did similar tours and inspired me a lot:

* Journeyman Tour by [Corey Haines][corey-haines-blog]

    Probably the first coding tour, which inspired many others. The tour was also featured on [InfoQ][corey-haines-tour]. Corey is also one of the inventors of the [Code Retreat][code-retreat-about] format.
* Code Cop Tour by [Peter "Code Cop" Kofler][peter-kofler-tour]
* Coding Tour by [Amitai Schleier][amitai-schleier-tour]
* Craftsman Swap by [Nicole Rauch][nicole-rauch-tour]
* and many more crafters...

It takes a lot of courage and effort planning and implementing such a tour, also it bears a risk when two parties who barely know each other agree to work together. My admiration for all the hosts and touring crafters who saw that the potential benefit is greater than the risks required to overcome.



[amitai-schleier-website]: https://latentagility.com
[amitai-schleier-tour]: https://schmonz.com/2018/04/23/coding-tour
[code-retreat-about]: https://www.coderetreat.org/pages/about
[corey-haines-blog]: http://blog.coreyhaines.com
[corey-haines-tour]: https://www.infoq.com/news/2008/12/haines-pairing-tour
[german-walz-wiki]: https://en.wikipedia.org/wiki/Journeyman_years#The_German_%22Walz%22
[journeyman-photo-credits]: https://commons.wikimedia.org/w/index.php?curid=1780852
[journeyman-photo-url]: https://github.com/haraldreingruber/blog/raw/master/imgs/journeymen.jpg
[nicole-rauch-tour]: http://nicolerauch.de/posts/2016-08-29-craftsman-swap-and-journeyman-tour.html
[peter-kofler-tour]: http://blog.code-cop.org/p/journeyman-tour.html
[wwoof-about]: https://wwoofusa.org/about/what-wwoof

## What about my project/company secrets and intellectual property?

I am not interested in your customer or the project itself, just the learning and sharing. I will sign any NDA. If you do not want to be mentioned, I will not use your company's name in any posts or tweets. I will blog about my experiences during the tour. If a post covers my visit at your company I will show it to you before I publish it.

## Let's talk! <a name="lets-talk" />

Reach out to me, and let me figure out how I can create value for you:

Twitter: [@Harald3DCV][harald-twitter-message] or 
Email: harald.reingruber AT gmail.com

[harald-twitter-message]: https://twitter.com/messages/compose?recipient_id=388416466

## Thanks

Big thanks to [@codecopkofler][peter-kofler-twitter], [@schmonz][amitai-schleier-twitter] and [@nicolerauch][nicole-rauch-twitter] for the great support and valuable feedback while I was planning my pair-programming tour.

[amitai-schleier-twitter]: https://twitter.com/schmonz
[nicole-rauch-twitter]: https://twitter.com/nicolerauch
[peter-kofler-twitter]: https://twitter.com/codecopkofler

## Ask me anything!

Leave your questions in the comments section, or [contact me](#lets-talk) directly.