99P Labs Internship Reflection — Spring 2021

By Tommy Tran and Robert Sunderhaft

Over the past semester we had the privilege to intern with the 99P Labs Team. Reflecting on this incredible opportunity, we had many learning experiences from collaborating with a supportive research team and working on projects using the latest software. As a result, we have grown tremendously as developers in a short amount of time and the invaluable skills we’ve learned will push us towards success in our future endeavors.

Photo by Scott Graham

Lessons Learned from a Successful Team

Though an organized team is key for success, it would mean nothing without a great team culture. One of the critical components for building a solid team culture is creating connections within the team itself, which we both experienced at 99P Labs. Although the team took work seriously, they also made the effort to get to know each other, making tasks at hand more enjoyable. Over time we became more comfortable with the team which allowed us to try new things, make mistakes, and seek help without the fear of failure in front of others. Throughout the internship we learned that it is important to ask questions in order to resolve challenges effectively. It can be intimidating to ask questions at times especially when they seem simple, but a connected team environment eliminates the fear of judgement because we know the team wants to help us be successful.

Being interns we experienced first-hand what makes a successful team. We found that having a high level of organization coupled with a supportive team created an atmosphere where everyone could learn, be productive, and grow to the best of their ability. However, it is also important to build good relationships with the team to create an enjoyable culture where everyone strives to help each other be successful. In whole, the 99P Labs Team embodied these key characteristics for a successful team. It enabled us to learn many skills from our teammates and we hope to instill this similar culture in future teams.

Software & Project Learnings

Robert’s Experiences — Data Science

SQL

With my newfound SQL skills, I was tasked with creating a dashboard that contained visualizations showcasing sensor metrics within a vehicle. The biggest challenge that I found was that the collected data was never perfect and always had to be cleaned before use. This allowed me to understand the importance of data validation because inaccurate data can greatly impact your findings.

After cleaning the data, I started to become very fluent in SQL. With my prior experience in SQL, there was always one answer or one way to solve a problem, but within my project in the internship there never was just one solution. Some problems were even unsolvable. With this open-ended approach to drawing insights from the data, I was able to greatly improve my problem-solving skills and start thinking of multiple approaches to solving the same problem.

In the future, SQL will prove to be a very important tool as it is a crucial component to any data science project. Moving forward, SQL will enable me to make important discoveries from any dataset quickly and efficiently.

Visualizations

With no prior experience in making visualizations, it was great to learn how to take plain data and turn them into actionable insights. At the start of my internship I would take the datasets and put them into general visualization types, like histograms, but as the internship progressed, I was introduced to more complex graphics like GIS. Not only was I able to learn about new visualizations, but I was also able to improve my design skills. Design was very important to learn because it improves the user’s experience and allows them to find the information they want quickly. For my dashboard, this included organization, visualization titles and labels, and graphic type.

By learning how to use Superset, I was able to get a general understanding of how to make effective visualizations across all platforms. You can read some of my learnings here.Towards the end of my internship, I participated in a data visualization competition, run by The Ohio State University, where I was tasked with generating insights in drug abuse. Within this competition, I had to use a new visualization tool, which I was able to quickly learn due to my past experience with Superset. Overall, my experience with using Superset at 99P Labs has provided me with a solid foundation in generating visualizations that will carry on over to many different platforms and projects.

Machine Learning

To learn the basics, I utilized TensorFlow, a popular python library that is made for machine learning. From there I spent several weeks learning the topics, the basic logic, and the applications of machine learning to prepare for my project. Aside from learning how it works, I also had to become familiarized with the Jupyter Notebooks platform to run my model, add visualizations, and add text writeups all in one place. Getting exposure to Jupyter Notebooks was also vital to my data science journey as it is the go-to computational notebook for projects like these. Once I was comfortable with TensorFlow and Jupyter Notebooks, I was able to create my first model.

Since this was my first project utilizing machine learning, I started out very simple and made a neural network that was composed of a single node / neuron, which essentially models a linear regression line. With this model, I tried to describe the relationship between the fan speed used in the vehicle and the ambient air temperature outside the car. What I found reiterated one of the most important learning outcomes of this internship: initial results are rarely pretty. The model was very inaccurate due to confounding variables and taught me that good machine learning models take into account many factors to accurately model a solution.

With this project under my belt, I was able to demystify what the field of machine learning actually was and finally step into the realm of AI. Going forward, I can’t wait to take what I learned in this project and build upon it to create useful models in the future.

Tommy’s Experiences — Software Engineering

GraphQL APIs

Redesigning 99P Labs Developer Portal

Every week we would meet at least once to discuss the progress of the project with our partnered company. It was a good way to keep each other accountable, see if the product was moving towards the right direction and allowed for updates to the project if we had to change things based on new findings. Through these meetings I realized good communication is crucial for everyone to be on the same page. It is important to be detailed, but also concise because too much technical information leads to confusion and too little leads to incorrect assumptions. Therefore, a balance between the two is important for everyone’s understanding and if it is necessary to go into more detail, then you can explain further based on the questions that arise. Discussions can sometimes get in a loop of brainstorming ideas, which is useful for improving the product, but it can also lead to no clear path forward. Thus, it’s important to end these weekly meetings with a plan for the most actionable next steps to keep the project moving so it can be completed before the deadline.

At the end of a collaboration, we reflected on the project as a whole. We even wrote a blog post about this experience, check it out here. It was helpful to acknowledge the positive accomplishments as well as things that could be changed. I believe it is important to review and learn from each project so that future ones can be just as successful or hopefully, even better. In brief, collaborating with other companies has taught me many project management and communication skills that will be helpful in my future team projects.

Visualizations with Kepler and AG Grid

Software Development Kit (SDK)

Integration/Unit Testing SDKs

Additional Takeaways

Final Remarks

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store