My Summer Internship with Tableau Software

By blake.walsh August 9, 2012

As part of my spring semester coursework at Harvard earlier this year, I attended a guest lecture for CS171 by Tableau's Jock Mackinlay.* He demonstrated the Tableau product to our class and showed how it can be applied to massive datasets in an effective and intuitive manner. It immediately became clear to me that Tableau is not only useful for putting together a visualization to gain insight into a dataset, but also for exploring that dataset in a dynamic, “drag-and-drop” interface which, in the end, can lead to conclusions far more valuable than the initial visualization.

There are countless data analysis tools that do not provide anything close to this level of friendly user interaction, and, having wrestled with many of them before, I left the lecture with a heightened interest in Tableau as a product and a company. In a matter of hours, I had applied for a summer internship and, after a steady stream of interviews and a couple of months, found myself in Tableau’s Seattle office on the verge of a fantastic experience.

A typical summer internship at any other company might consist of “boondoggle” work, without an end goal or even a purpose other than to occupy the intern with some sort of activity of questionable benefit. At Tableau, this could not be further from the reality. As a “Software Engineer Intern” at Tableau, the only significant detail that differentiates myself from a full-time employee is a pre-defined end-date to my employment: a limitation determined by my continuing coursework in the fall. Aside from that, Tableau interns work a typical 40 hour week, where the start and end times are flexible so long as they are reasonable. We are held to the same expectations as other employees. We are not given work for the sake of work; rather, all work we complete goes directly into future releases of the product. We sit in on interviews and provide input regarding the hiring process. And we attend meetings, where like everyone else, our opinions are valued. At Tableau, it does not matter whether an idea comes from a particular department, a full-time employee, or an intern. Where an idea comes from is completely irrelevant: a great idea is a great idea no matter the source.

A common saying I heard in my first few weeks with Tableau is that, given the sheer amount of information one must absorb, it is much like “drinking from a firehose”. Of course, the main difference here is that any “water” you miss on the first pass cycles around and right back to you for a second, third, or further number of passes until the information truly takes hold.

Blake Walsh

Through my work this summer at Tableau, I was provided great freedom in the specific aspects of my daily coding as well as excellent general, overarching guidance. The team I worked with provided support as I implemented a feature to augment the functionality of filters in the desktop product. Today, in Tableau 7, a filter can be applied locally (that is, to a specific worksheet) or globally (to every worksheet in a workbook), but there is no quick and simple way to apply a filter of interest to a subset of sheets. In using Tableau in my visualization course at Harvard, this was a barrier I quickly discovered as a user of the software, so I found it quite fitting to be responsible for the implementation of said feature a few months later! In fact, I am not the only one who sees the value in this new filter functionality, as it is at the time of writing the number one item on the Tableau ideas page. The fact I am working on implementing this highly-demanded feature reveals two key things about Tableau: (1) that Tableau listens to its customers and values their input, and (2) that interns here are indeed doing real work on future releases of the product.

My internship with Tableau has provided me with real-world experience in software engineering - something far more valuable than anything that can be learned in a classroom. Not only has my internship supplemented my education with great work experience, Tableau has been great fun these last few months. There are company-wide gatherings every six months, company parties with a band made up entirely of Tableau employees, the company picnic, and an open house for prospective customers and applicants. I have also enjoyed that it is a rare occurrence to walk into the kitchen without observing a fierce foosball match! I believe it is this relaxed work atmosphere combined with the freedom to do great things that allows Tableau's employees to feel enthusiastic and energized about what they do. As my internship winds down, I find myself extremely grateful for the opportunity I have had to work with such brilliant, interesting people, and hope that I will be able to contribute to Tableau in the future.

*To learn more about Tableau's Academic Programs, visit us at: tableausoftware.com/academic.

Comments

Submitted by Joe M. on

> "globally (to every worksheet in a workbook)"

In my experience, currently a global filter will apply the filter to all worksheets using the same primary data connection in the workbook, and not all worksheets in a workbook. A global filter is NOT workbook level filtering, it is data connection level filtering, and only when that connection is the primary for the worksheet.

If someone only used a single data connection in every workbook, and never tried a global filter in a workbook with multiple data connections, I can understand how the conclusion that a global effects every worksheet in a workbook can be reached, because it is true for workbooks that only have a single data connection.

Submitted by Blake P. on

Glad you were with us for the summer, Blake! Take care!

Submitted by Shawn W. on

(Hey Blake just between us, did you get the dashboard filter finished?)

Submitted by Mike Johnson (not verified) on

Be that as it may, your "comment" seems to really be splitting hairs. This article is not a technical specification; it is a brief, high-level overview of this guy's time at Tableau.

Those not so experienced with Tableau will likely be only using one data connection at a time anyway and do not care for more (so they are not at a loss for this colloquial summary of how global filters actually operate), and those who are already know about this technical difference and can easily infer what was meant by the statement you quoted.

Besides, we should be excited that the extension of filters functionality coming in the near future instead of critiquing a slight simplification of how filters work. I seriously doubt this verbage was an oversight - I'm sure it was a simplification to avoid convoluting the prose of this blog posting and make it read more cleanly. Take what you wrote in your "correction" as an example - if I were not familiar with how Tableau operates as someone casually interested in data and visualizations, I would much prefer to read the simpler statement above than your convoluted explanation, which involves 300% more words for only about a 10% gain in "correctness".

Just my two cents.

Submitted by Mike Johnson (not verified) on

@Joe Mako

Be that as it may, your "comment" seems to really be splitting hairs. This article is not a technical specification; it is a brief, high-level overview of this guy's time at Tableau.

Those not so experienced with Tableau will likely be only using one data connection at a time anyway and do not care for more (so they are not at a loss for this colloquial summary of how global filters actually operate), and those who are already know about this technical difference and can easily infer what was meant by the statement you quoted.

Besides, we should be excited that the extension of filters functionality coming in the near future instead of critiquing a slight simplification of how filters work. I seriously doubt this verbage was an oversight - I'm sure it was a simplification to avoid convoluting the prose of this blog posting and make it read more cleanly. Take what you wrote in your "correction" as an example - if I were not familiar with how Tableau operates as someone casually interested in data and visualizations, I would much prefer to read the simpler statement above than your convoluted explanation, which involves 300% more words for only about a 10% gain in "correctness".

Just my two cents.

Submitted by Joe M. on

Mike, I would like to better understand your viewpoint, I feel you have a perspective I could learn from, that there are things I did not fully consider in my comment.

Rereading my previous comment, I see that my use of the all caps "not" could be seen as inflammatory, but I did not mean it that way. My intent was to be emphatic.

Yes, I did use more words, even more words that what I currently see in Tableau's online documentation at http://onlinehelp.tableausoftware.com/current/pro/online/en-us/filtering... , but I feel that my description provided details that not present there either.

Are you saying that my comment was poor taste because users would not care about this detail? I consider myself a user, and I care about these details, and I believe other users care about these details. In fact, another user with years of Tableau experience contacted me to let me know that my comment "explained the biggest mystery of the month."

There is much that I still do not know, I learn something every day, and if I every say anything less than accurate, please correct me, because I would like to learn. Much of my understanding of Tableau is based on trial-and-error, and I have theories that I use until I learn about something better. You can find a great deal of old and incorrect content from me on the forum, my poor guesses. I wish there was a good way to address those posts. I try to share my knowledge as often as I can because I learn while sharing, and I feel it helps others. Some people believe that knowledge is power, and horde it, I believe knowledge is only powerful when shared.

I saw this lack of detail as an opportunity to share more detail, to raise awareness. I was only trying to help.

non-humans click here