CodeX 2016 - ThoughtSpot Annual Hackathon

We just wrapped up our annual hackathon, and we’re excited to share a list of huge new features that will soon be a part of the ThoughtSpot platform! Per tradition, we give people the opportunity to work on a project of their choice for three full days. On the fourth day, everyone presents their work to the rest of the organization, and we vote on our favorites.

Those unfamiliar with hackathons might wonder why we allow our entire engineering staff to drop everything and work on a passion piece for 3.5 days. Our CTO Amit Prakash has given his reasons in the past, you can read more about them here. Simply put, this is part startup R&D, part team building exercise, and part intellectual fun. It’s a great way to get to know your colleagues, encourage professional creativity, and refresh everyone with a fun challenge outside of their regular purview.

13 Teams >> 3 Winners

This year we had 13 teams, and coincidentally  the projects focused on three main themes:

  • Automating data discovery—leveraging machine learning algorithms and AI to identify important insights in data

  • Exploration through collaboration—accessing and sharing data from ThoughtSpot through channels commonly used today, such as email or messaging apps

  • Scaling the platform—we’re always thinking about ways to optimize processes and performance for speed and how to effectively balance data governance with data discovery

Though only 3 teams won, everyone brought amazing ideas and valuable learnings to share. Read on to learn more about the winning teams and the innovative ideas they were able to put together in 3 short days.


3rd Place: “BotSpotters”

Meet Maria, she’s here to help you.

Team members: Rakesh, Vijay, Rahul, Priyanshi, Supriya, Francois, Ashish, Alonzo

What did you build?

We built an AI powered bot named Maria, that allows users to analyze data in ThoughtSpot from any platform. In this case, we connected Maria to Slack. Instead of logging into ThoughtSpot, a user can simply ask a question in Slack, which will generate a new query in ThoughtSpot, run an analysis, and send back a chart in Slack.

Why did you choose to work on this?

Conversational bots powered by AI are the future of user interfaces. They are personalized and empower the users in new ways. Thoughtspot is positioned really nicely to solve this, as it already builds on our search-based interface.

How did you build it?

We used an AI platform called api.ai to train our models. The conversations with the bot are analyzed using these models to identify tokens. These tokens are important for providing answers—they are sent over to ThoughtSpot, and ThoughtSpot returns charts, tables, and numbers. These results are what the bot contributes to the conversation. We made sure ThoughtSpot’s Relational Search engine would resolve the tokens effectively while also retaining conversational context.

What was your biggest challenge?

Our team was bigger than others, and our project had a lot of moving parts. There was the bot which we deployed on Heroku because it provided https based api endpoints. A middle layer deployed on AWS, which made requests to Thoughtspot. A server turned Chrome browser instance, which was the biggest hack of the century. And the ThoughtSpot backend cluster itself.

The biggest challenge was to have this setup work smoothly. We had latency problems during the demo (Murphy's law)—but when it worked, it worked really well.<br> 


2nd Place: “Traveling Salesman”

Search-driven linear optimization has arrived.

Team members: Anand, Jordie, Raj, Sandeep, Shikhar, Sunny

What did you build?

For our hackathon project we incorporated a prediction and optimization engine into ThoughtSpot. Our system allows users to figure out optimal allocations of resources based on their business data, and then project these allocations into future periods.

Why did you choose to work on this?

We chose to work on this project because of a challenge and use-case at one of our customers, a Fortune 100 financial services company.  This customer has a securities lending group that is always balancing their efforts to maximize profits with constraints on how much they can lend. Due to the high volume of stock lending, it is not feasible to arrive at an optimal strategy manually. This is where we can combine ThoughtSpot's querying abilities with linear programming to solve a useful customer need.

(Note: Demo given shows a student balancing his food budget by taking into account nutrition and variable food costs over time.)

How did you build it?

Our project involved adding a new user interface to allow specifications of optimization problems, business logic to convert system tables into input for the optimization problem, and implementing an optimization and prediction engine in the backend.

What was your biggest challenge?

The biggest challenge was implementing a feature that touched (almost) all the pieces of the ThoughtSpot system in three days. Moving fast enough to make this happen while making sure we didn't break anything was quite difficult.<br> 


1st Place: “CrystalBall”

Taking smart data discovery to the next level with instant automatic insights.

Team members: Amit, Pradeep, Zaki, Shailesh, Amit, Jasmeet, Shveta, Swati, Kaushik, and Lisa

What did you build?

We built an automated analytics engine for smart data discovery in ThoughtSpot.  So when a user uploads or refreshes data in ThoughtSpot, we can automatically generate charts and dashboards with valuable insights for the user to look at. For example, identifying total opportunity amount by region, frequency of data by stage, and total amount by revenue bucket when you refresh your weekly sales data.

Why did you choose to work on this?

We have a very powerful and fast database, and we can leverage that to enhance the user experience. What we built explores multiple dimensions of data to automatically find insights and simplify a user’s life.

How did you build it?

Crystal Ball uses a set of machine learning algorithms that are activated every time a user uploads a new data set or updates existing data. Crystal Ball understand the characteristics in the dataset, and combines that with usage history and a set of insight generation templates, to then calculate a set of answers from the data.  Our visualization engine then takes those insights and produces a set of best-fit charts, and along with text descriptions of top insights from the data. And because ThoughtSpot’s calculation engine is so fast, Crystal Ball is able to do all of this in seconds as soon as your data is uploaded or refreshed.

What was your biggest challenge?

This was a new area for all team members. For some people the challenge was to work in a new development environment, with regard to the programming language, etc. For others it was to get a deeper understanding of the already available parts of the stack. The domain here is very extensive, so picking the battles was also an interesting challenge. We solved those issues by focusing on specific aspects of the problem that we thought would have the biggest impact.<br> 


<br>All the features described here will soon be a part of the ThoughtSpot platform. If you want to learn more about new features as we release them, or best practices for your team, subscribe to our blog to keep up with the latest from the ThoughtSpot team.