WINTER-SUMMER 2023

Digital Water Solutions is a company that creates technology for water distribution systems. The company has received multiple awards for their work in the water sector.

The main product DWS produces is hydrant.ai. This is a device that lives inside fire hydrants and collects sensor data. Clients can then view this data on their provided dashboard in an easy-to-understand format. The main goal of this product is to help clients detect leaks, extend asset life, reduce burst rates, and reduce water loss.

Some of the metrics collected:

  • Pressure
  • Temperature
  • Audio

DWS is working on AI models that use this data to predict when a leak will happen.

My position was called Machine Learning and IoT co-op but I did a variety of tasks, some involving ML and some not. A lot of my work involved analyzing the data received from the sensors and finding ways to make the results digestible for the client.

  • Uploading data to the dashboards
  • Analyzing the data for a given time period and client to look for potential leaks
  • Backfilling data on the website if there was a gap in data
  • Automating projects by creating pipelines on Azure
  • Creating dashboards or alarms on Grafana
  • Creating accounts for clients/people
  • Python
  • SQL
  • Grafana
  • Azure
  • Google Colab
  • VS Code
  • VMs
  • APIs
  • Python packages such as Keras, Torch, SKLearn, MiniRocket, NumPy, Pandas, Seaborn, Matplotlib

One of my main projects this work term was for a specific client. This was a client that did not have DWS hydrant.ai devices but was receiving similar data through alternative ways. My task was to use their data to create a dashboard for them. This was the first time DWS was experimenting with SaaS.

This task involved:

  • Accessing the data through CSV or API
  • Processing the data
    • this was the most time-consuming part. Some metrics were easy to find, it just involved resampling the data to be in the correct interval. Other metrics were harder to calculate as we sometimes did not have all the data and needed to use other methods.
  • Displaying the data on the website.

Another one of my main projects was learning how to interpret and analyze the data. Our main goal was to identify leaks in a given period of time for a client. This was a repeating task, I would often be given a period of time and a client and was asked to analyze.

As the semester unfolded, I would update my analysis method. By the end of the term, the other co-ops and I had created a program that just needed a few inputs and would creates an analysis document. This document contained a variety of graphs including FFTs, Spectrograms, etc.

My first goal was to take more initiative and be a leader. Not only in terms of leading other people but being in charge of my own learning as well. I chose this goal because I know this skill will be useful in future jobs. I believed it would help me be more confident in leadership roles and I would need less supervision. My action plan was to start coming up with my own ideas to work on. Or to expand off of work I was already doing. My measure of success was the amount of check-ins I needed with my boss. For the first half of my term, we would have almost daily check-ins. We would discuss current projects and new tasks. I was hoping that by taking more initiative, I would not need these daily check-ins because I would be able to move forward with less guidance. This turned out to be true, as the term progressed, fewer check-ins were needed. Although I would still sometimes have trouble determining how to move forward on a project, I made a lot of progress. By the end of the term, my boss and I only met as needed which would be about once or twice a week.

My second goal was to improve my front-end development skills. I was interested in learning JavaScript and React. I had some past experience on this topic from school but not enough to be confident in my skills. Front-end development is something I have been interested in for a while but I have not had many opportunities to explore it. I thought that practicing and finding more opportunities at work would help me reach this goal. I believed I would be successful if I could understand basic react code and could start a project of my own. Luckily, we had a few hackathons throughout the term and I took these opportunities to try out front-end projects. This gave me the time to follow a few tutorials and analyze code examples. I also helped a team member build some components on their front-end, react project. I can now create a basic react template.

My third goal was to gain a better understanding of AI and the work I was doing. This term has introduced me to many new AI tools and technologies and I wanted to ensure I understood them thoroughly. This is essential when working with AI because I need to know what is happening in the program to trust the results. I thought I could achieve this by researching tools before using them. If a technology was suggested to me, I would research it. Then, when I would incorporate it into my code, I would make note of what’s happening to the data, how it is structured, and the results. These notes made me pay attention to the small details and saved time when using the technology in the future. I thought I would be successful when I could explain my reasoning for choosing a tool, what its function was in my code, and my results. I also think it is important to be able to summarize my findings to a client or someone with no understanding of AI. Therefore, I set that as my measure of success as well. By the end of the term, I had gained a better understanding of a lot of technologies but would like to continue learning. I have researched many AI libraries and packages. I also know some basic steps to use when deciding which classifier to use. However, I am not at the point where I could explain why we received the results we did. I would like to keep working to reach this goal on my own time.

One of my goals was to improve my oral communication skills. This has been a recurring goal in a lot of my co-ops because communication is something I struggle with. Therefore, I need to continuously work on it. My specific goal this terms was to learn how to clearly communicate what I am working on, my progress, and the questions I may have. My action plan was to update my boss daily or weekly and look for opportunities to present. I believe I was successful at achieving this goal because my boss and I were able to have open conversations often about what I was working on currently and future ideas. At the beginning of the term, we had daily meetings with the other co-op s as well. I would present what I had been working on and then we would discuss how to continue and new tasks. We also had weekly meetings with the larger team where we had to share what we were working on. This forced me to get more comfortable with speaking and asking questions in a larger group. My boss has also brought me into multiple client meetings where I have explained my findings.

This 8 month co-op has taught me a great amount. I believe it has set me up well for my last year of school and to enter the workforce in the Spring. I am excited to see where this company goes in the future, they are working on a lot of exciting stuff that I would love to be a part of. I will be keeping in touch with my amazing boss Stan, who was an excellent employer. He taught me a lot and created a great working environment.