After completing two years of school towards a computer Science and math degree at Northeastern University, I needed to find a co-op position. So last July, I began working at NaviNet, now part of NantHealth, hired as one of five Engineering co-ops. I was excited to begin working at a company with a strong presence in healthcare technology, but more than a little nervous to start my first software engineering position. My overall hope was to gain knowledge and insight about the industry and career possibilities over the next six months. At NaviNet, I became a member of the Product Research team, where I researched and tried out many new and different technologies, discussed results of data analysis, helped implement some amazing ideas, and became a part of a group that wanted to make a difference in NaviNet.
The Product Research Team & Their Impact
The Product Research Team is a small group with big ideas. It was pretty clear from the start that the team overflows with ideas, intelligence, discussion, and drive. Each day, our daily stand ups in which we go over our progress and any blockers, started off light with laughter and jokes, but transitioned to serious discussions of our work and projects. This was also true for our weekly meetings. Discussing the impact of our projects on the product and in the healthcare industry as a whole was inspiring – there’s so much potential for their work to improve the product. Healthcare IT is such an exciting world to be a part of, but the Product Research Team’s creativity, passion, and vision, as well as the opportunity to be a part of the team, made my co-op experience meaningful and worthwhile.
Month One: Learning NaviNet Technologies
My first month at NaviNet, I started by familiarizing myself with a few of the technologies that the Product Research Team uses - node.js, Elasticsearch and Kibana, Neo4j, and tools like Maven and Git - all them were completely new to me at the time. I also began some of my first projects, which were focused on referral analytics. The opportunity to use the mathematical half of my major in my first month of co-op was a true surprise, and a great experience. I was thoroughly engaged with the predictions, charts, graphs, and results that were generated. In order to find patterns in the referral transactions, I used Elasticsearch which made it possible to look at millions of transactions and get results fast. This gave us more time to discuss questions about the data and the answers found in the results. Since Kibana works with Elasticsearch, I was able to use it to create graphs and charts of the referral prediction results. This entire process- from gathering the data, to running predictions, to calculating errors on our predictions, and finally presenting it in a visually comprehensive way- was fulfilling.
The Learning Never Ends
One key insight I did learn was that that research will not always pan out, dead ends will be found, and new directions will be taken. Our team had developed a graph database using Neo4j that captured referrals, additional events, and the relationships between the event’s entities. There was a question of whether or not referrals could be matched to claims, and if so, we hoped to further develop the graph and run more analytics. When it came time to enter additional referrals and claims into our system, initial analysis showed that the events we had would not be useful: there were no additional relationships to be added to the graph. The information from each event did not allow for a confident match between referrals and claims. This meant node.js scripts and cypher queries for Neo4j that I had prepared were never run. Although this work wasn’t used, I can’t ignore that I was constantly learning while using the new languages and investigating our graph database. I learned, as a member of the Product Research Team, to be flexible and open-minded, ready to take on a new task or to modify my goals.
The more time I was at NaviNet, the more I learned about new technologies and how they all connect with each other in our environment. This is definitely more complicated than my school work which usually only involves one programming language. The research team uses Apache Kafka to stream events such as referrals and claims, and I was tasked with researching and using MuleSoft to build a Kafka connector. This connector was specific to MuleSoft, but would allow for an extremely simple connection. No matter how we wanted to process the events in Kafka, using the connector we could easily pull and push the events to and from Kafka, without having to repeatedly rewrite the consumers and producers for different transformations. I also created a Normalizer, to convert all of our old events with varying formats to one JSON object. There were two pieces to this: the working Kafka connector and a mapping file written in MuleSoft’s DataWeave language. With Mule, the Kafka connector is installed, packaged into a jar, and is always available for use, so you’ll never find yourself in the situation where you have to copy the Kafka files from a previous project to a new one.
A second project, similar to the Normalizer, was an event scrubber. The only difference was that we wanted to take out all protected health information (PHI) from the events, instead of converting one JSON object to another. The program connects to Kafka, reads in events, scrubs all PHI, and then writes the scrubbed event to a separate Kafka instance. Throughout the implementation process, there was a lot of discussion and communication that needed to happen. Different people in NaviNet needed to be aware of and a part of the process. We needed their help to follow the security guidelines and ensure our work was compliant.
Though I’ve now left NaviNet, I’ve returned to class with many positive takeaways. My co-op with NaviNet has secured my confidence in my chosen major and career path. Software engineering opens a world of endless possibilities with an exciting abundance of ideas. Applying my skills in healthcare helped give my work a sense of importance. My work here was constantly engaging and challenging, with the interesting twists and turns that come with research. Being able to apply computer science and math skills from the classroom to real world data and projects has been invaluable. Along with the independence, new skills, experience, and knowledge I have gained, I have a renewed energy for classes and my continuing education. I am proud and grateful to have worked with such an outgoing and innovative group of people.
Interested in more posts like this?