Preface
Both my winter 2024 and spring 2024 co-op terms were part of an 8-month co-op at Magnet Forensics. As a result, this post serves as a continuation of the previous post where I cover the background information on Magnet Forensics, job description, and my responsibilities. To avoid redundant information, this post will cover new developments over the second half of my co-op term.
Introduction
For the second half of my co-op term, the team continued working on Magnet Copilot. Unfortunately, due to confidentiality reasons, I cannot go into specific techniques or implementation details. However, I can give a very high-level overview of my summer term. With much of the infrastructure created, we had the groundwork to start building new features and refining Copilot. This included:
- Exploring and implementing new techniques to optimize the model.
- Adding new capabilities to the overall application i.e. letting the model interact with new kinds of data.
- Enabling the application/model to run on different platforms.
All the above work proved highly interesting and engaging, but my personal favourite was #3. Magnet Forensics products are used for digital forensics. As a result, a large portion of our customer base are law enforcement agencies. In the event of a criminal investigation, a forensic examiner will use your digital data (i.e. internet presence, personal devices, etc…) to prove or disprove your innocence. As you can imagine, there are very strict rules on how this data is acquired and interacted with (e.g. chain of custody, preventing evidence tampering, etc…). To mitigate these problems, many forensics examiners are required to use special computers in an air-gapped environment. This provides some unique problems when developing AI applications:
- These computers vary in their physical specifications. Some of these computers have underpowered CPUs, underpowered GPUs, no GPU at all, etc…
- Most AI applications host their models in the cloud where processing power isn’t an issue. The forensics examiners computers have no access to the internet. All the models must be able to be installed and run locally.
I can’t go into how we solved these problems, but this should give you an idea of the challenges I faced.
Goals
My goals were the same as my previous term with some minor alterations.
Depth & Breadth of Understanding
I wanted to utilize the opportunities of my co-op position to work on new and interesting technologies. Initially I wanted to be able to do self-guided research and present it back to the team. While I did get to learn new AI technologies, I didn’t have the opportunity to formally research or present them. The team structure rapidly evolved over the course of my term. The research side of the team was split into their own group while I remained on the traditional programming side. With that in mind I would consider this goal a partial success.
Personal Organization/Time Management
I would like to improve my ability to organize work at a larger scale. This includes breaking out tickets from an epic, participating in architecture design decisions, and estimate time requirements for milestones. I was able to achieve this goal by pairing up with a senior developer. Together, we were in charge of a project from beginning to end. In addition, I learned numerous project management methodologies that will be useful in many aspects of my life.
Teamwork
During my time at Magnet, the team has grown considerably. All of these people have knowledge and insights on topics that I find interesting. I would like to learn to work with them and learn from their years of experience. I was able to work with everyone on the expanded team at least once. I gained a lot of new knowledge from their varying backgrounds. I expanded my understanding of programming, data science, machine learning, and software testing. In addition, I was able to form new relationships and strengthen existing ones. I would consider this goal a complete success.
Conclusion
As I enter my final year of schooling, I can say beyond a doubt that the co-op experience has given me an advantage in terms of career prospects, real life experience, professional development, and personal growth. I am grateful for the opportunities that co-op has provided me.