<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Harald Reingruber</title>
    <description>The latest articles on DEV Community by Harald Reingruber (@harald3dcv).</description>
    <link>https://dev.to/harald3dcv</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F274996%2F9c0015e4-b5e5-4e60-a1a2-18e9ded8cb07.jpeg</url>
      <title>DEV Community: Harald Reingruber</title>
      <link>https://dev.to/harald3dcv</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/harald3dcv"/>
    <language>en</language>
    <item>
      <title>Three.js Visualizations with Theo Armour (Week 2)</title>
      <dc:creator>Harald Reingruber</dc:creator>
      <pubDate>Wed, 29 Apr 2020 17:00:15 +0000</pubDate>
      <link>https://dev.to/harald3dcv/three-js-visualizations-with-theo-armour-week-2-1c40</link>
      <guid>https://dev.to/harald3dcv/three-js-visualizations-with-theo-armour-week-2-1c40</guid>
      <description>&lt;p&gt;&lt;strong&gt;- Week 2 of my Remote Pair-Programming Tour -&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/ta" rel="noopener noreferrer"&gt;Theo&lt;/a&gt; found out about my tour from my &lt;a href="https://dev.to/harald3dcv/pair-programming-tour-invite-me-for-free-sessions-sf-bay-area-5eci"&gt;outreach email campaign&lt;/a&gt; and liked the idea from the beginning. He even offered to cover my accommodation costs in San Francisco, but due to &lt;a href="https://en.wikipedia.org/wiki/Coronavirus_disease_2019" rel="noopener noreferrer"&gt;COVID-19&lt;/a&gt; I had to return to Austria before I was able to start my tour. Thankfully, Theo was still interested in continuing the collaboration and knowledge exchange online and I was happy to find out how he was using &lt;a href="https://threejs.org/" rel="noopener noreferrer"&gt;three.js&lt;/a&gt; for the COVID-19 visualization and his various other projects.&lt;/p&gt;

&lt;h2&gt;
  
  
  Shared passion for 3D visualization and three.js
&lt;/h2&gt;

&lt;p&gt;Theo is working on some really interesting projects, all &lt;a href="https://en.wikipedia.org/wiki/Free_and_open-source_software" rel="noopener noreferrer"&gt;FOSS&lt;/a&gt; and based on &lt;a href="https://threejs.org/" rel="noopener noreferrer"&gt;three.js&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;He is really passionate about how "easy" and fast you are able to visualize 3D content in the browser using &lt;a href="https://threejs.org/" rel="noopener noreferrer"&gt;three.js&lt;/a&gt;, and his excitement is not only justified but also very contagious. Collaborating on &lt;a href="https://threejs.org/" rel="noopener noreferrer"&gt;three.js&lt;/a&gt; projects was an awesome tour stop for me, and I enjoyed a lot figuring out how I can support Theo on his tasks and brainstorm with him about his future visions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Interesting projects Theo is working on
&lt;/h2&gt;

&lt;p&gt;Theo likes to create web apps with plain vanilla JavaScript and &lt;a href="https://threejs.org/" rel="noopener noreferrer"&gt;three.js&lt;/a&gt;. He has an uncountable number of projects and repositories on Github, which he created while experimenting with the reimagination of visualizing things (objects or information) in 3D.&lt;/p&gt;

&lt;h3&gt;
  
  
  COVID-19 Viz3D
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fharaldreingruber%2Fblog%2Fraw%2Fmaster%2Fimgs%2Frpp-tour-week2-theo%2Fcovid-19-viz_small.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fharaldreingruber%2Fblog%2Fraw%2Fmaster%2Fimgs%2Frpp-tour-week2-theo%2Fcovid-19-viz_small.png" alt="COVID-19 Statistics 3D Visualization"&gt;&lt;/a&gt;&lt;br&gt;
A couple of weeks ago, with the start of the &lt;a href="https://en.wikipedia.org/wiki/Coronavirus_disease_2019" rel="noopener noreferrer"&gt;COVID-19&lt;/a&gt; pandemic, Theo started a project to visualize the global statistics on a 3D globe in the browser, fetching data from the John Hopkins University and Wikipedia. Here is the &lt;a href="https://www.ladybug.tools/spider-covid-19-viz-3d/" rel="noopener noreferrer"&gt;COVID-19 Viz3D&lt;/a&gt;, which is also static HTML with plain vanilla JavaScript, only depending on &lt;a href="https://threejs.org/" rel="noopener noreferrer"&gt;three.js&lt;/a&gt; and fully running in the browser for desktop and mobile devices.&lt;/p&gt;

&lt;h3&gt;
  
  
  Spider gbXML Viewer
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fharaldreingruber%2Fblog%2Fraw%2Fmaster%2Fimgs%2Frpp-tour-week2-theo%2Fgbxml-viewer_small.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fharaldreingruber%2Fblog%2Fraw%2Fmaster%2Fimgs%2Frpp-tour-week2-theo%2Fgbxml-viewer_small.png" alt="Spider gbXML Viewer"&gt;&lt;/a&gt;&lt;br&gt;
One very remarkable project is the &lt;a href="https://www.gbxml.org/About_GreenBuildingXML_gbXML" rel="noopener noreferrer"&gt;gbXML&lt;/a&gt; viewer, which allows to view building data stored in Building Information Models (BIM). Check out this online demo of the &lt;a href="https://www.ladybug.tools/spider-gbxml-tools/spider-gbxml-viewer/" rel="noopener noreferrer"&gt;Spider gbXML Viewer&lt;/a&gt;, I especially like the exploded view and the possibility to toggle the view between interior/exterior surfaces which can be found in the popup menu on the right.&lt;/p&gt;

&lt;h3&gt;
  
  
  three.js cookbooks
&lt;/h3&gt;

&lt;p&gt;There are hundreds of HTML and JavaScript snippets, which Theo published in his "&lt;a href="https://en.wikipedia.org/wiki/Cookbook#Usage_outside_the_world_of_food" rel="noopener noreferrer"&gt;cookbooks&lt;/a&gt;", like &lt;a href="http://jaanga.github.io/index.html#cookbook-threejs/index.html" rel="noopener noreferrer"&gt;this one&lt;/a&gt;. The idea is to have browser-ready online demos, where also people new to JavaScript and programming in general are able to copy, paste and adapt the code snippets from the &lt;a href="http://jaanga.github.io/index.html#cookbook-threejs/index.html" rel="noopener noreferrer"&gt;github repository&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Time zone difference and common working hours
&lt;/h2&gt;

&lt;p&gt;Theo usually works in the afternoon and evening. Combined with the nine hour time zone difference between Pacific and Central European time, it was not so easy for us to find time slots which was working well for both of us.&lt;/p&gt;

&lt;p&gt;In the beginning we tried to do two 2-hour slots in the morning and evening, but we soon realized it is better to have only one session per day instead of switching back and forth. After several sessions, we decided that doing 2-hour sessions twice a week works best for us. I've kept "week 2" in the title of this article, which is the week of my tour where we started collaborating. We continued collaborating in the weeks after at a lower pace. &lt;/p&gt;

&lt;h2&gt;
  
  
  Topics Theo and I were collaborating on
&lt;/h2&gt;

&lt;p&gt;After Theo showed me what he was working on, we figured out which topics might be interesting to start working on and kicked off our collaboration.&lt;/p&gt;

&lt;h3&gt;
  
  
  three.js performance profiling and improvement
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.ladybug.tools/spider-covid-19-viz-3d/" rel="noopener noreferrer"&gt;COVID-19 Viz3D&lt;/a&gt; should run in browsers of mobile devices as well as desktop computers, which makes it especially difficult to stay within the 60 &lt;a href="https://en.wikipedia.org/wiki/Frame_rate" rel="noopener noreferrer"&gt;FPS&lt;/a&gt; goal.&lt;br&gt;
We noticed that mainly the CPU usage is our bottleneck, because we saw in the Windows task manager that the GPU utilization didn't seem to be very high. We used the &lt;a href="https://github.com/threejs/three-devtools" rel="noopener noreferrer"&gt;three.js inspector&lt;/a&gt; to disable certain three.js groups and saw that the cylinders seem to take most of the computation time. The scene contains more than 400k triangles, which seem to be too much to run well on all platforms, at least without further optimizations.&lt;/p&gt;

&lt;p&gt;From &lt;a href="https://unity.com" rel="noopener noreferrer"&gt;Unity3D&lt;/a&gt; I knew if the triangle count is the issue, there are tricks like batching draw calls for meshes with the same material. A first search how this could be achieved with three.js made us considering to use &lt;a href="https://threejs.org/docs/#examples/en/utils/BufferGeometryUtils.mergeBufferGeometries" rel="noopener noreferrer"&gt;BufferGeometryUtils.mergeBufferGeometries()&lt;/a&gt; to merge all cylinders into one triangle mesh, but this way the raycaster for showing the statistics for each country when hovering the cylinder would not be able to return which mesh was hit by the raycast as easily.&lt;/p&gt;

&lt;p&gt;A couple of days later Theo found out that there is a rather new functionality in three.js called &lt;a href="https://threejs.org/docs/#api/en/objects/InstancedMesh" rel="noopener noreferrer"&gt;InstancedMesh&lt;/a&gt;, which allows to create multiple/many instances of the same mesh. Bingo, now all 400k triangles are processed in one draw call a lot faster, and the three.js raycasting mechanism returns the corresponding instance ID which allows to display the data to the corresponding cylinder.&lt;/p&gt;

&lt;h3&gt;
  
  
  Calendar versioning and automated deployment
&lt;/h3&gt;

&lt;p&gt;Theo uses a &lt;a href="https://calver.org/" rel="noopener noreferrer"&gt;calendar versioning&lt;/a&gt; approach, which allowed him to run different versions (by date) directly in the browser from Github Pages. He tried to create a new feature for the &lt;a href="https://www.ladybug.tools/spider-covid-19-viz-3d/" rel="noopener noreferrer"&gt;COVID-19 Viz3D&lt;/a&gt; every day, and a &lt;a href="https://www.ladybug.tools/spider-covid-19-viz-3d/dev/covid-19-viz-3d-archive/" rel="noopener noreferrer"&gt;menu linking to all daily versions&lt;/a&gt; clearly shows the impressive progress the project had during a couple of weeks.&lt;/p&gt;

&lt;h4&gt;
  
  
  Separation of concerns
&lt;/h4&gt;

&lt;p&gt;While working with him, I noticed that because of creating copies of the source folders, Git can not be used to it's full extent as it looses the connection between the different versions. Still, the advantages of having all versions online in parallel is evident. My gut feeling was if the concern of versioning are separated from the concern of deployment, Theo could benefit from having all previous versions online while being able to use the full power of Git versioning.&lt;/p&gt;

&lt;h4&gt;
  
  
  Continuous deployment of tags/branches
&lt;/h4&gt;

&lt;p&gt;We made a plan, to experiment with a couple of workflow changes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Configure Github Pages to use a separate gh-pages brach, instead of master, which contains the sub-folder with all relevant source files&lt;/li&gt;
&lt;li&gt;Create a branch or tag for each version&lt;/li&gt;
&lt;li&gt;The development branch will only contain the current version&lt;/li&gt;
&lt;li&gt;A deployment script will update the gh-pages branch and copy the current version to a sibling folder named after the branch name&lt;/li&gt;
&lt;li&gt;The script will be executed on every new commit pushed to Github, by a continuous integration service like Github Actions, Travis CI, Circle CI, Gitlab CI, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ESlint
&lt;/h3&gt;

&lt;p&gt;Theo knew that there is value in using tools for auto-formatting your code and static code analysis, but ESLint has a high learning curve if you are not very familiar with the Node.js ecosystem and NPM.&lt;/p&gt;

&lt;p&gt;I know how much you can learn from the suggestions of static code analysis, and how much more readable code with consistent styling is. Our eyes and brain unconsciously detect even slight differences, which consumes cognitive energy you might want to reserve for the actual task you are working on. But you don't want to spend the cognitive energy on sticking to strict coding styles either, which is why tools doing that for you are very helpful.&lt;/p&gt;

&lt;p&gt;Helping Theo with a initial setup of ESlint and simple NPM scripts for linting and fixing the JavaScript files, allows him to step-by-step get used to the workflow and adjust the ESLint rules to his preferences. Later he will be able to copy the settings to other projects as well.&lt;/p&gt;

&lt;h2&gt;
  
  
  Looking back
&lt;/h2&gt;

&lt;p&gt;It is really impressive to see that the people involved in software development are as diverse as the topics and technologies we are working on. Theo studied and was working as an architect and was involved with developing &lt;a href="https://en.wikipedia.org/wiki/Computer-aided_design" rel="noopener noreferrer"&gt;CAD&lt;/a&gt; software. His enthusiasm is driven by working on prototypes and showing what can be achieved with technology.&lt;/p&gt;

&lt;p&gt;I recently heard about the difference between &lt;a href="https://corgibytes.com/blog/2015/08/14/makers-vs-menders/" rel="noopener noreferrer"&gt;Makers vs. Menders&lt;/a&gt;. Makers enjoy quickly building things while menders enjoy to analyze and improve things little by little looking for the mid-/long-term success.&lt;/p&gt;

&lt;p&gt;Not knowing how Theo would see himself in this categories, while working with him he reminded me of makers by this definition. I don't think this can or should be distinguished clearly, but it's definitely good to know the tendency. I would count myself as a mender, while I am also enjoying working on prototypes from time to time. Ultimately, you want to have both types of personas in your team to turn up the good. This is probably one of the reasons why our collaboration was inspiring and a valuable learning experience for both of us.&lt;/p&gt;

&lt;p&gt;Bottom line, collaboration is really awesome and I am already looking forward to my next sessions with &lt;a href="https://twitter.com/adibolb" rel="noopener noreferrer"&gt;Adrian Bolboacă&lt;/a&gt;. 😃&lt;/p&gt;

</description>
      <category>threejs</category>
      <category>pairprogramming</category>
      <category>codingtour</category>
      <category>craftsmanship</category>
    </item>
    <item>
      <title>Remote Mob-Programming @Hunter Industries (Week 1)</title>
      <dc:creator>Harald Reingruber</dc:creator>
      <pubDate>Wed, 08 Apr 2020 16:15:06 +0000</pubDate>
      <link>https://dev.to/harald3dcv/remote-mob-programming-hunter-industries-18ac</link>
      <guid>https://dev.to/harald3dcv/remote-mob-programming-hunter-industries-18ac</guid>
      <description>&lt;p&gt;&lt;strong&gt;- Week 1 of my Remote Pair-Programming Tour -&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;My &lt;a href="https://dev.to/harald3dcv/pair-programming-tour-invite-me-for-free-sessions-sf-bay-area-5eci"&gt;Pair-Programming Tour&lt;/a&gt; on the US West Coast ended right before it even began. The &lt;a href="https://en.wikipedia.org/wiki/Coronavirus_disease_2019"&gt;COVID-19&lt;/a&gt; pandemic forced me to return to Austria, a couple of days after I arrived in San Diego (California), where my tour would have started at &lt;a href="https://www.hunterindustries.com"&gt;Hunter Industries&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  From On-site to a Remote Pair-Programming Tour
&lt;/h2&gt;

&lt;p&gt;Thankfully all my 3 confirmed tour stops agreed that we can do the planned pair-programmed sessions also online. While I am very happy that I didn't have to cancel my tour completely, I am a bit sad that the opportunity of meeting very interesting developers, companies and humans in person. Also, the 9-hour time zone difference adds another challenge, which means we only can collaborate for half-day sessions in the pacific-time morning (evening in Austria).&lt;/p&gt;

&lt;h2&gt;
  
  
  Mob-Programming Invitation
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://twitter.com/mob__mentality"&gt;Austin Chadwick&lt;/a&gt; of the Mob Mentality Show pod-/videocast crew invited me to join the mob-programming sessions after I saw a tweet about their show from &lt;a href="https://twitter.com/schmonz"&gt;Amitai Schleier&lt;/a&gt; and I reached out to them. &lt;/p&gt;

&lt;p&gt;My only mob-programming experience before was a one-hour session at a &lt;a href="https://www.coderetreat.org/pages/about/"&gt;code retreat&lt;/a&gt; organized by the &lt;a href="https://www.softwerkskammer.org/groups/wien"&gt;Softwerkskammer Vienna&lt;/a&gt; group. Back then, I liked the idea but didn't pay more attention to it as in my experience it was already difficult to convince teams/employers of the advantage of pair-programming, so I assumed it would be even worse for mob-programming. &lt;/p&gt;

&lt;p&gt;My favorite quote from the Mob Mentality Show:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Solo development feels like sitting at home watching Netflix. &lt;br&gt;
Mob Programming feels like going out to a movie with friends. &lt;br&gt;
Pair Programming feels like going on a date.&lt;br&gt;
-- &lt;em&gt;&lt;a href="https://www.chrislucian.com/2019/09/mob-programming-financial-benefits.html"&gt;unknown&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Watching the &lt;a href="https://www.youtube.com/channel/UCgt1lVMrdwlZKBaerxxp2iQ"&gt;videocast&lt;/a&gt; of &lt;a href="https://twitter.com/mob__mentality"&gt;Austin&lt;/a&gt; and &lt;a href="https://twitter.com/ChristophLucian"&gt;Chris Lucian&lt;/a&gt; was really an eye-opener to me and I was very curious about joining their mob-programming sessions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mob-Programming at Hunter Industries
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6vpXQrWt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/haraldreingruber/blog/master/imgs/rpp-tour-week1/hunter-mob-programming-merged.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6vpXQrWt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/haraldreingruber/blog/master/imgs/rpp-tour-week1/hunter-mob-programming-merged.png" alt="Austin, Kirjsten and Matt during our group learning session."&gt;&lt;/a&gt;Mob-programming with at Hunter Industries.&lt;/p&gt;

&lt;p&gt;Last week my tour finally started and I joined the mob of Alex, Matt, and Austin   from remote from Austria. Because of COVID-19 they had to switch to working from home the week before as well. They were using Microsoft Teams for the online collaboration and accessing their on-site mob station via Anydesk. All of us were quite surprised that the oversea video-connection between us didn't cause a noticeable delay. They said they sometimes have more trouble talking to people (online) who are close by.&lt;/p&gt;

&lt;h2&gt;
  
  
  Dealing with Email in a Mob
&lt;/h2&gt;

&lt;p&gt;They had one mailbox for the mob, where all the development related Emails were sent to. Every morning after the daily meeting with the Product Owner (PO), they were dealing with the mails, in a mob-programming style (with Driver/Navigator roles). It took usually around 5-15 minutes, and that was it regarding mail for that day, no further interruptions for checking mailboxes. &lt;/p&gt;

&lt;h2&gt;
  
  
  Test-driving a small improvement
&lt;/h2&gt;

&lt;p&gt;The team is working on a mobile app of Hunter Industries Internet of Things (IoT) system. One of the first tasks was to add an "in-progress" feedback when fetching data, which could take a couple of seconds. From a user perspective, this improvement is actually not small at all, as it might avoid confusion when the app doesn't seem responsive. It was really nice to see how the development in the mob was working out very fluently. We were using the &lt;a href="http://mobster.cc/"&gt;Mobster&lt;/a&gt; pair-/mob-programming timer, switching Driver/Navigator roles every 6? minutes.&lt;br&gt;
First, we wrote a failing test, then the production code was moved forward. When the new test was succeeding it was time for refactoring, where we also watched out if the &lt;a href="https://dev.to/ben/the-boy-scout-rule-is-now-the-scout-rule-420g"&gt;Scout Rule&lt;/a&gt; can or should be applied.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mob-programming allows fast onboarding and contributing quickly
&lt;/h2&gt;

&lt;p&gt;It was interesting to see, that the mob was not slowing down much while I was learning and getting to know the project and the processes. In contrast to switching from solo-development to pair-programming, joining a mob is definitely less disruptive, which is probably not really surprising. Another interesting aspect was, that I was able to contribute ideas and solutions within the first couple of hours, even though I never worked with that specific platform-independent mobile app development framework before. As there were 3 other developers knowing the details and concepts of the framework it didn't really slow us down because I didn't know them. I have experience with similar frameworks and many concepts in programming are similar in many programming languages, so for many discussions I was still able to contribute valuable input. This was really motivating and quite a different experience compared to the usually very dense and at least perceived slow onboarding when you are working alone or with an expert developer of the new team, for example when starting working at a new company.&lt;/p&gt;

&lt;h2&gt;
  
  
  New (non-trivial) feature development felt a bit sluggish?
&lt;/h2&gt;

&lt;p&gt;In the middle of the week, we started to work on a feature that was new and more difficult. The feature was required in order to further improve the performance and responsiveness of the app.&lt;/p&gt;

&lt;p&gt;When we started, there were many questions and unknowns. How to test this? Which parts do we have to mock in order to be able to write tests and isolate the test units from each other? Do we start with the small technical details (bottom-up/Detroid School TDD) or with the top-level requirements (top-down/London School TDD)? As often the answers are to some extend also a matter of taste and the arguments for one or the other are not really known in the beginning the direction in which we were going was depending a lot on the current navigator. As the navigator role was switched, sometimes it was leading to a change of direction as the picture on which path was better was not yet developed and/or was perceived differently within the team.&lt;/p&gt;

&lt;p&gt;We talked about this later in the retrospective, that this was a bit of a surprise to me. It was probably also the case that in a mob, a process feels sluggish much earlier when 4 people are working on one task, compared to if a developer is struggling with starting a new feature for hours. Another difference is that when working alone, you sooner take one direction and continue as you don't have to justify or discuss the idea with others (ideally you had a discussion with the team before starting to work on the feature). This way, the development is perceived faster, but in some cases, you might have to invest more time in refactoring or changing the initial idea later (maybe already during the review). My mob was not surprised about my observation about this exploratory task and saying that this is quite certainly outweighed by the improved outcome and the much faster development time in other phases (bug fixing, refactoring, etc.).&lt;/p&gt;

&lt;p&gt;I really like this quote about mob-programming:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;In practice it feels more like a bulldozer than a race-car - unstoppable and thorough.&lt;br&gt;
&lt;em&gt;--unknown&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Splinter Group Pattern
&lt;/h2&gt;

&lt;p&gt;On Thursday, the mob had to prepare for the monthly department-wide status meeting, where the top-level management of Hunter Industries informed themselves about the current state of the developments. We still wanted to move the code forward, so we decided to create a &lt;a href="https://github.com/michaelkeeling/mob-programming-patterns"&gt;splinter group&lt;/a&gt;. Alex and me continued test-driving the new caching feature, while Austin and Matt were working on preparing the slides and reports for the meeting in the afternoon. After lunch, we joined the mob again and discussed the results of both teams.&lt;/p&gt;

&lt;h2&gt;
  
  
  Group learning session
&lt;/h2&gt;

&lt;p&gt;On Friday, we reserved 2 hours for a group learning session, which was announced department-wide and everybody who was interested was able to join. I shared my experience and the ideas of &lt;a href="https://dev.to/svettwer/automated-debugging-with-git-2pod"&gt;Git-bisect&lt;/a&gt;, the idea of my Pair-Programming Tour and asked several questions about mob-programming.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Xt_vN3uT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/haraldreingruber/blog/master/imgs/rpp-tour-week1/hunter-group-learning.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Xt_vN3uT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/haraldreingruber/blog/master/imgs/rpp-tour-week1/hunter-group-learning.jpg" alt="Austin, Kirjsten and Matt during our group learning session."&gt;&lt;/a&gt;Austin, Kirjsten and Matt during our group learning session.&lt;/p&gt;

&lt;p&gt;When I asked my mob-programming questions in the end, it led to a lively discussion which was very insightful and I'd like to share my takeaways from it:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Why is Hunter Industries cool with often having guests joining the mob-programming sessions?
&lt;/h3&gt;

&lt;p&gt;When I reached out to Austin during the preparation of my tour, he said that they have guests joining their mobs regularly, so the process would be simple for me as well. I asked them if it was difficult to get support from their managers, or which value they saw in having guests joining. The response was that there were 2 advantages they saw in frequently hosting guests. The obvious one is that next to sharing their knowledge and mob-programming experience their teams also often get very good input from their guests and different perspectives. The other advantage was that it is good PR for their recruitment efforts. Hunter Industries is known in the development and agile world as the inventor of what we today call mob-programming, and they are doing it already for almost 10 years. The guests who visit them talk and write about it, which in turn will raise the interest of developers sharing the same or similar values.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Would you say mob-programming might become the future for every developer?
&lt;/h3&gt;

&lt;p&gt;This was more a provocative question, which I told them, and I explained that I was more interested in their thoughts than the actual answer.&lt;br&gt;
I think there was a wide agreement that, similar to pair-programming also mob-programming is definitely not optimal for every developer, and that every team and every developer has to figure out themselves what works well and what doesn't work well for them.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ewUuTYaB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/haraldreingruber/blog/raw/master/imgs/rpp-tour-week1/hunter-group-learning-screenshot.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ewUuTYaB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/haraldreingruber/blog/raw/master/imgs/rpp-tour-week1/hunter-group-learning-screenshot.png" alt="Fred Zuill and Austin Chadwick on a screenshot during our group learning session."&gt;&lt;/a&gt;Fred Zuill and Austin Chadwick on a screenshot during our group learning session.&lt;/p&gt;

&lt;p&gt;I like how Fred Zuill, who also joined the group learning, explained his thoughts, saying that there is this thing called mob-programming today, which might develop into something that we will call differently tomorrow. One thing that will for sure spread to a big part of the industry is the need for faster innovation and that the close collaboration improves learning and leads to better results. How that collaboration will look like might vary and change.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Do you know small companies practicing mob-programming?
&lt;/h3&gt;

&lt;p&gt;The idea behind this question was that for small companies having the trust that forming a mob of 3-4 people, maybe having only a single mob working on the tasks for creating and improving their software seems to me to be more challenging than for a larger company, already having established a constant cash-flow.&lt;br&gt;
There were not really clear answers, there were one or two start-ups mentioned doing full-time mob-programming. Still, there was a general tone that even though the pressure for small companies might sometimes be higher, there are small companies doing mob-programming. Small companies often need to innovate faster, where mob-programming might come in handy.&lt;br&gt;
Chris Lucian, the director of software development at Hunter Industries, shared a link to his blog where he compiled a &lt;a href="https://www.chrislucian.com/p/companies-that-are-mob-programming.html"&gt;list of companies doing mob-programming&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. What would you recommend for introducing mob-programming to a team that never did it before?
&lt;/h3&gt;

&lt;p&gt;Austin shared a nice website about mob-programming patterns with me, which also has a pattern describing &lt;a href="https://jay.bazuzi.com/Mobbing-Pattern-Language/metapatterns/Beginning%20Mobbing.html"&gt;beginning mob-programming&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Impression and conclusions of my first week
&lt;/h2&gt;

&lt;p&gt;I really enjoyed my coding tour start with the team of Hunter Industries. Thanks Alex, Austin and Matt for inviting me to join their mob. Thanks Hunter Industries for having a guest-friendly mobbing policy, and being open to continue my visit from remote during the chaotic time of the COVID-19 crisis.&lt;/p&gt;

&lt;p&gt;I have heard about the high-bandwidth learning during mob-programming before and liked it a lot experiencing it with the mob at Hunter Industries. Also, I think that mob-programming created a very mindful company culture at Hunter Industries, or was it the other way around? What I already realized that I like about going on a coding tour is, the experience while working on real-world tasks. I think that practicing certain techniques and experimenting with coding katas, for example at coding dojos or code retreats is really important and helpful, it's still often difficult to apply certain ideas on the task in the every-day job.&lt;/p&gt;

&lt;p&gt;Looking forward to the impressions, conclusions and insights of the next week of my Remote Pair Programming Tour while working on projects using three.js with &lt;a href="https://twitter.com/ta"&gt;Theo Armour&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>remote</category>
      <category>pairprogramming</category>
      <category>codingtour</category>
      <category>craftsmanship</category>
    </item>
    <item>
      <title>Remote Pair-Programming Tour =&gt; Invite Me for Free Sessions</title>
      <dc:creator>Harald Reingruber</dc:creator>
      <pubDate>Tue, 03 Dec 2019 15:26:57 +0000</pubDate>
      <link>https://dev.to/harald3dcv/pair-programming-tour-invite-me-for-free-sessions-sf-bay-area-5eci</link>
      <guid>https://dev.to/harald3dcv/pair-programming-tour-invite-me-for-free-sessions-sf-bay-area-5eci</guid>
      <description>&lt;h6&gt;
  
  
  &lt;em&gt;Cover image credits: &lt;a href="https://commons.wikimedia.org/w/index.php?curid=16812850" rel="noopener noreferrer"&gt;Calqui - Own work, CC BY-SA 3.0&lt;/a&gt;&lt;/em&gt;
&lt;/h6&gt;

&lt;h3&gt;
  
  
  Update (March 24) - Transition to doing a Remote Pair-/Mob-Programming Tour:
&lt;/h3&gt;

&lt;p&gt;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 &lt;strong&gt;Remote Pair-/Mob-Programming Tour&lt;/strong&gt; instead, hence &lt;strong&gt;I can join you no matter where in the world you are located&lt;/strong&gt;. That is so cool 👌&lt;/p&gt;

&lt;p&gt;Are you interested in pairing/mobbing with me? Please reach out to me!&lt;/p&gt;

&lt;p&gt;Here is my current tour schedule:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Week&lt;/th&gt;
&lt;th&gt;Date&lt;/th&gt;
&lt;th&gt;Developer/Company&lt;/th&gt;
&lt;th&gt;Topics&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;March 23-27&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://twitter.com/mob__mentality" rel="noopener noreferrer"&gt;Austin Chadwick&lt;/a&gt;, Hunter Industries&lt;/td&gt;
&lt;td&gt;C#, Xamarin, .NET Core, TDD, Mob-Programming&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;March 30-April 3&lt;/td&gt;
&lt;td&gt;&lt;a href="https://twitter.com/ta" rel="noopener noreferrer"&gt;Theo Armour&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;JavaScript, three.js, Pair-Programming&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;April 6-10&lt;/td&gt;
&lt;td&gt;&lt;a href="https://twitter.com/adibolb" rel="noopener noreferrer"&gt;Adrian Bolboacă&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Dart, Flutter, Mobile, TDD, Pair-Programming&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;April 13-17&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://twitter.com/Johnicholas" rel="noopener noreferrer"&gt;Johnicolas Hines&lt;/a&gt;, Glitch&lt;/td&gt;
&lt;td&gt;TypeScript, Node.js, TDD, Pair-Programming&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;April 20-24&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://twitter.com/mdclement" rel="noopener noreferrer"&gt;Mike Clement&lt;/a&gt;, Emmersion Learning&lt;/td&gt;
&lt;td&gt;TypeScript, Angular, .NET Core, TDD, Mob-Programming&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;April 27-May 1&lt;/td&gt;
&lt;td&gt;&lt;a href="https://twitter.com/codecopkofler" rel="noopener noreferrer"&gt;Peter "Code Cop" Kofler&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Unity3d, TDD, Pair-programming&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;May 4-8&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://twitter.com/utopiah/" rel="noopener noreferrer"&gt;Fabien Benetou&lt;/a&gt;, European Parliament Innovation Lab WebXR&lt;/td&gt;
&lt;td&gt;A-Frame, Mozilla Hubs, Pair-Programming&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;May 12-15&lt;/td&gt;
&lt;td&gt;&lt;a href="https://twitter.com/kfarr" rel="noopener noreferrer"&gt;Kieran Farr&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;A-Frame, Streetmix3D, Pair-Programming&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;May 18-22&lt;/td&gt;
&lt;td&gt;&lt;a href="https://twitter.com/jitterted" rel="noopener noreferrer"&gt;Ted M. Young&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;JavaScript, TDD&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h1&gt;
  
  
  Original Pair-Programming Tour Article:
&lt;/h1&gt;

&lt;p&gt;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: &lt;del&gt;&lt;strong&gt;San Diego, San Francisco/Bay Area, Portland and Vancouver&lt;/strong&gt;&lt;/del&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;TL;DR&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;Invite me to join you for a couple of days pairing or mobbing with you, while working on your current tasks/project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who is Harald?
&lt;/h2&gt;

&lt;p&gt;I'm an enthusiastic software engineer with 10 years of professional experience working in different areas of visual and spatial computing.&lt;br&gt;
I have hands-on experience with delivering high-quality software, but I also like working on prototypes/MVPs for measuring traction &lt;em&gt;before&lt;/em&gt; adding unnecessary complexity. &lt;/p&gt;

&lt;p&gt;Together with friends, I am organizing the &lt;a href="https://www.meetup.com/Unity-Meetup-Vienna/" rel="noopener noreferrer"&gt;Vienna Unity 3D Meetup&lt;/a&gt;. 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.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is this Pair-programming Tour?
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;It’s when a programmer briefly visits several companies to join them in their coding work and to learn from each other.&lt;br&gt;
-- &lt;cite&gt;&lt;a href="https://latentagility.com" rel="noopener noreferrer"&gt;Amitai Schleier&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="http://blog.coreyhaines.com" rel="noopener noreferrer"&gt;Corey Haines&lt;/a&gt; coined the term &lt;em&gt;Journeyman Tour&lt;/em&gt;, an analogy to the journeyman years of medieval craftsmen (e.g. the German &lt;a href="https://en.wikipedia.org/wiki/Journeyman_years#The_German_%22Walz%22" rel="noopener noreferrer"&gt;"Walz"&lt;/a&gt;), who were visiting several master after their apprenticeship in order to grow professionally and to become a master of their field themselves.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fharaldreingruber%2Fblog%2Fraw%2Fmaster%2Fimgs%2Fjourneymen.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fharaldreingruber%2Fblog%2Fraw%2Fmaster%2Fimgs%2Fjourneymen.jpg" alt="German journeymen (craftsmen) in traditional dress"&gt;&lt;/a&gt;German journeymen (craftsmen) in traditional dress. Photo credits: &lt;a href="https://commons.wikimedia.org/w/index.php?curid=1780852" rel="noopener noreferrer"&gt;A.stemmer, CC BY-SA 3.0&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;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. &lt;a href="https://wwoofusa.org/about/what-wwoof" rel="noopener noreferrer"&gt;organic farming&lt;/a&gt;), 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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h3&gt;
  
  
  How does it work?
&lt;/h3&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why would a skilled developer offer his services for free?
&lt;/h3&gt;

&lt;p&gt;Exactly. I am offering to share my knowledge and provide new insights for free. Why I am doing this? &lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  What can Harald offer to me and/or my company?
&lt;/h2&gt;

&lt;p&gt;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. &lt;/p&gt;

&lt;p&gt;I have hands-on experience in the following areas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Software Engineering&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;C++20, CMake, Make&lt;/li&gt;
&lt;li&gt;C# and Java&lt;/li&gt;
&lt;li&gt;TypeScript, JavaScript, Node.js, React, ReactNative&lt;/li&gt;
&lt;li&gt;Object-oriented and functional programming&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.pearson.com/us/higher-education/program/Martin-Clean-Code-A-Handbook-of-Agile-Software-Craftsmanship/PGM63937.html?tab=overview" rel="noopener noreferrer"&gt;Clean Code&lt;/a&gt;, &lt;a href="https://martinfowler.com/books/refactoring.html" rel="noopener noreferrer"&gt;Refactoring&lt;/a&gt;, Loose coupled architecture&lt;/li&gt;
&lt;li&gt;Unit, Integration, Acceptance and UI Testing&lt;/li&gt;
&lt;li&gt;TDD&lt;/li&gt;
&lt;li&gt;Creating tests for legacy applications&lt;/li&gt;
&lt;li&gt;Performance profiling and memory leak analysis&lt;/li&gt;
&lt;li&gt;Open source license compliance&lt;/li&gt;
&lt;li&gt;Diving into new technologies/languages really quickly!&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;Visual Computing&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://unity3d.com/de/unity" rel="noopener noreferrer"&gt;Unity3D&lt;/a&gt;, &lt;a href="https://www.ogre3d.org/about" rel="noopener noreferrer"&gt;OGRE3D&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://structure.io/structure-sensor" rel="noopener noreferrer"&gt;3D scanning&lt;/a&gt; and scan processing (hole filling, volume computation, etc.)&lt;/li&gt;
&lt;li&gt;3D cloud rendering service&lt;/li&gt;
&lt;li&gt;OpenGL, DirectX&lt;/li&gt;
&lt;li&gt;Augmented and virtual reality&lt;/li&gt;
&lt;li&gt;Video processing and streaming&lt;/li&gt;
&lt;li&gt;Image processing and analysis&lt;/li&gt;
&lt;li&gt;Medical visualization (radiology image data)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/DICOM" rel="noopener noreferrer"&gt;DICOM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Volume_rendering" rel="noopener noreferrer"&gt;Volume rendering&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://en.wikipedia.org/wiki/SIMD" rel="noopener noreferrer"&gt;SIMD&lt;/a&gt;, SSE, AVX, Arm Neon&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://emscripten.org/docs/introducing_emscripten/about_emscripten.html" rel="noopener noreferrer"&gt;Emscripten&lt;/a&gt;/WebAssembly&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;DevOps&lt;/p&gt;

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


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Also, if we discover topics of general interest I am happy to give talks or workshops to the whole team.&lt;/p&gt;

&lt;h2&gt;
  
  
  What’s it like to code with Harald?
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;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.&lt;br&gt;
-- &lt;cite&gt;Ferdinand Pilz, three10 GmbH&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
&lt;p&gt;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.&lt;br&gt;
-- &lt;cite&gt;Alexander Hörmandinger, Agfa Healthcare GmbH&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
&lt;p&gt;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!&lt;br&gt;
-- &lt;cite&gt;Robi Hammerle, three10 GmbH&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  How can I get my own impression?
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  Did Harald come up with this idea himself?
&lt;/h2&gt;

&lt;p&gt;There are several software craftsmen who did similar tours and inspired me a lot:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Journeyman Tour by &lt;a href="http://blog.coreyhaines.com" rel="noopener noreferrer"&gt;Corey Haines&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Probably the first coding tour, which inspired many others. The tour was also featured on &lt;a href="https://www.infoq.com/news/2008/12/haines-pairing-tour" rel="noopener noreferrer"&gt;InfoQ&lt;/a&gt;. Corey is also one of the inventors of the &lt;a href="https://www.coderetreat.org/pages/about" rel="noopener noreferrer"&gt;Code Retreat&lt;/a&gt; format.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Code Cop Tour by &lt;a href="http://blog.code-cop.org/p/journeyman-tour.html" rel="noopener noreferrer"&gt;Peter "Code Cop" Kofler&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Coding Tour by &lt;a href="https://schmonz.com/2018/04/23/coding-tour" rel="noopener noreferrer"&gt;Amitai Schleier&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Craftsman Swap by &lt;a href="http://nicolerauch.de/posts/2016-08-29-craftsman-swap-and-journeyman-tour.html" rel="noopener noreferrer"&gt;Nicole Rauch&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;and many more crafters...&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  What about my project/company secrets and intellectual property?
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  Let's talk! &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Reach out to me, and let me figure out how I can create value for you:&lt;/p&gt;

&lt;p&gt;Twitter: &lt;a href="https://twitter.com/messages/compose?recipient_id=388416466" rel="noopener noreferrer"&gt;@Harald3DCV&lt;/a&gt; or &lt;br&gt;
Email: harald.reingruber AT gmail.com&lt;/p&gt;

&lt;h2&gt;
  
  
  Thanks
&lt;/h2&gt;

&lt;p&gt;Big thanks to &lt;a href="https://twitter.com/codecopkofler" rel="noopener noreferrer"&gt;@codecopkofler&lt;/a&gt;, &lt;a href="https://twitter.com/schmonz" rel="noopener noreferrer"&gt;@schmonz&lt;/a&gt; and &lt;a href="https://twitter.com/nicolerauch" rel="noopener noreferrer"&gt;@nicolerauch&lt;/a&gt; for the great support and valuable feedback while I was planning my pair-programming tour.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ask me anything!
&lt;/h2&gt;

&lt;p&gt;Leave your questions in the comments section, or contact me directly.&lt;/p&gt;

</description>
      <category>codingtour</category>
      <category>journeymantour</category>
      <category>pairprogramming</category>
      <category>craftsmanship</category>
    </item>
  </channel>
</rss>
