Off The Chain Grid
My Off The Grid Experience
Participating in Off The Grid gave me experience working with Polymer and Neo4j as well as working together with new team members. I wanted to write about Off The Grid as I really thought that it was a fantastic opportunity to be a part of and it stands out to me during my time as an intern at NantHealth.
Off The Grid was a whole new experience for me. It was great seeing the office competing in a bit of healthy competition and provided everyone with the chance to work with people they wouldn’t normally work with. Being able to talk to employees from other offices and see what they were working on was great fun and extremely interesting.
As the NantHealth family is expanding at a vast rate, our team gathered together and discussed that trying to find a particular person, technology or piece of information, would soon become more difficult and more time consuming. We came up with the idea of being able to search for a piece of information, such as a person, product or technology, across the entire company, and having a list of results returned that are related to your search.
Here is an example of our search facility in our simple and modern landing page:
For example, if you search for Couchbase, like I have above, the results returned shows products, technologies and people. From here, you can then drill down further so you can see recent commits, MVFs and additional related technologies used.
A few of the team members suggested that they would like to use a graph database to implement the different relationships. Neo4j was suggested as it provided us with the functionality we needed to implement our project. A lot of members of the team had no experience of using Neo4j so Off The Grid would be the perfect opportunity to explore this!
Ricky, a member from the UI team, suggested that we use Polymer for our UI as he has previous experience with this technology. You can read about his blog post exploring Polymer here! He stated that Polymer would be beneficial for our project as it allows us to create a component which can be reused throughout our UI, ensuring that our project has a consistent look and feel.
I found working with Neo4j and Polymer extremely interesting and also quite challenging as it was a short time to become familiar with them. However, with the team’s help and the continuous supply of buns and cakes, I made it through! Both Polymer and Neo4j worked great within our project and it was a great decision from the team to use them.
Building the graph
For building the graph, we used Neo4j. We took information such as project details and technologies used from Jira, products and commit histories from Git and people information taken from wiki-confluence in order to build the data.
The key relationships that were created will be the results returned from our search. These include:
- People who own products
- Products that use technologies
- People who have contributed to projects
- People who have wrote about projects
- People who are mentioned in pages about the projects
Members of the team who were working on the graph database got together and began thinking about the data that should be returned. Cypher queries were created in order to define the many relationships within our database, such as a person who has worked on a certain project. We took data from Git, Wiki-confluence and Jira to build the relationships:
The relationships between the data from different sources:
In order to ensure our information was kept up to date, we used crawlers. They crawled the contents of our database and then pushed records from here to our API using feeds.
Building the UI
To build the UI, we used Polymer and decided on a material design to give it a modern look and feel.
From our simple landing page, you are able to search for a particular person or technology that you want to find and from this search, you can then drill down further to see the people who have worked on that project, recent commits, projects that have been completed, in progress or have yet to start and also related technologies which may be useful.
The information which was returned, from Git and Jira, is shown in cards to prevent the user from being bombarded and overwhelmed with lots of information, adding to the minimalistic design.
On the day of the presentations, we went to W5 where we conferenced the event with the Boston office. I thought this was fantastic as I was able to see the result of what everyone had been working on and finally putting names to faces! Each presentation could last no longer than seven minutes which meant that the morning of the final day was spent making sure we were within the time limit. I presented our team’s presentation with a fellow engineering intern, Margaret. This was extremely nerve wrecking but once it was over I felt great that I overcame my nerves and stood up in front of those there at W5 and those within Boston. This was a great experience for when I return to university as I will have to present my final year project.
After all of the presentations were finished, the judges decided on a winner for each of the categories and our team won best process! We were all really happy that all of the hard work and long hours had paid off and we celebrated by having a lot of pizza. Winning the ‘Best process’ category has given me more confidence to join external hackathons as I was previously worried about having no experience with the technologies that would be used.
What I took away from the experience
Overall, I thought that Off The Grid was a fantastic experience and would recommend everyone to get involved no matter how much or how little experience they have with the technologies being used, especially any external hackathons as it’s always great to meet and work with new people. Off The Grid really stands out to me during my time here as I was able to meet people from the different offices and see what other great ideas the other teams had.
My confidence has grown as before the presentation I was very nervous but I soon realised that there was nothing to be nervous about and that it was all for some fun and to have an enjoyable day. I was also nervous about exploring the new technologies and using them over the course of the three days. My team however were extremely helpful when I was stuck and made me feel at ease when we were implementing our ideas. I will definitely take part in any future hackathons as I had great fun with Off The Grid and it really was a fantastic opportunity to take part in.
Interested in joining the NantHealth team? Check out our current career opportunities.