A while ago, even before I got familiar with Tableau I started doing sketches for a visual interactive resume. I was in the recruitment and HR business for 5 years and I have to admit that it was sometimes boring staring at resumes that looked alike and tried to blend in. Occasionally there were some that would stand out and those were the ones that made my day and stayed in my memory the longest. They spoke more about the person than any other standard format resume. So, my aim back then was to create a resume that will be visually pleasing and will stand out from the crowd.

Here is the first drawing I did with the idea of someday, when I have the skills, having this visualized and digitized (in a much prettier format).


When I was finishing up with The Data School training I created my first interactive tableau resume, which I was happy to see being featured in the Tableau Interactive Resume Gallery.

After additional 6 months of experience I thought it would be good to do a revamp of my first interactive resume. Following is part of the process I went through when building the timeline view, which caused me few bumps along the road.

In the Tableau interactive resume gallery I also fount some that were quite inspiring, one of which was quite close to my initial sketched idea, so I decided to try and see how that will work on my resume.


First attempt

My main idea was to create a timeline where each bubble (or half bubble) will represent a separate experience and the size of the bubble will represent the length of that experience. So, the obvious first step was to use a date field on the columns shelf and the organization/role on detail. In order to position the bubble on the right spot I used the mid point for each experience calculated as: DATE(DATEADD(‘month’, INT([Duration]/2), [Start Date])). Next I used the duration of the experience for the size of the bubbles, calculated as DATEDIFF(‘month’,[Start Date], [End date 1]) and I thought this would create the view I expected.

While this approach gave me good starting point, it didn’t represent the reality in a reliable way. The picture above shows how this approach is misleading, leaving gaps and adding unintentional overlaps where there aren’t any in reality. Tableau was doing some relative sizing of the bubbles, where the largest experience is represented with the largest bubble, but the starting and the ending points weren’t right. And they couldn’t be simply fixed by playing with the marks sizing options in Tableau.

Here is a similar view as the one above, where I further thought the sizing of the graph might make a difference, but while it decreased the gaps, at the same time it created large overlaps for the other bubbles.


Troubleshooting and final results

There were two possible directions I could go for troubleshooting this problem, which I ended up combining and getting the result I imagined at first.

First – my assumption was that the date field used for the horizontal axis is incompatible with the integer that I was using for the experience duration that was sizing the bubbles.

Second – the duration variable doesn’t change the diameter but the area of the bubble, so I need a different calculation for the bubbles size.

In order to tackle the first issue, I created a supplementing field for the date. Instead of having a date field I created an integer field where each month-year has been allocated a number from a sequence of numbers. Since my experience starts somewhere in 2008, I built an additional spreadsheet where I listed all month-years since 2008 and I appointed them a sequential number starting from 1. I ended up with the following table (excerpt):

Next. I joined this table with the spreadsheet where I had listed each experience with the start and end dates and some additional information.

After bringing this to Tableau, I recreated the calculations for the mid-point and the duration, this time using the date supplement field.

Lastly, for the sizing of the bubbles this time I used formula for calculating the bubble area instead of their radius/diameter: PI() * SQUARE([Duration]/2). This time, the starting, mid and end point of each experience/each bubble was plotted on the exact spot where they should be.

The only downside I found with this approach is that the bubbles have their sizing limit and when the view is larger, they don’t scale up, which means they still leave blank spaces in-between. However, the overlaps are gone, and when I resize the graph they perfectly align. Just drag this chart to your dashboard, resize it and voila, you have your bubbly timeline!

click on the image above to see the interactive version of my resume.

I sign of with my favorite bubbly part of Finding Nemo: https://www.youtube.com/watch?v=s7IYR_rELyE