Software Developer – Computer Vision and Machine Learning

Waterloo / Ottawa / Ontario /
Research and Development – Engineering /
Full-Time
/ Hybrid
Who We Are, What We Do, Where We Are Going
 
Magnet Forensics is a global leader in the development of digital investigative software that acquires, analyzes and shares evidence from computers, smartphones, tablets and other IoT related devices. We are continually innovating so that our customers can deploy advanced and effective tools to protect their communities, countries and companies. 
 
Headquartered out of Waterloo, ON but with over 400 employees spread out globally, Magnet is continuing to expand and grow. Where we are today, is not where we want to be tomorrow. 

Your Team 
The Video Forensics team within Magnet Forensics is responsible for the development and support of Magnet DVR Examiner. This software has revolutionized the process of recovering video evidence from surveillance DVRS and is used by hundreds of federal, state, local, and international law enforcement agencies. 
 
Reporting to an Engineering Manager or Technical Manager, this role uses computer vision technologies to create and improve features and functionality within our product portfolio and machine learning technologies to create and improve features and functionality within our product portfolio.     
 
A quote from your leader… 
 
“Efficiency is critical in time-sensitive investigations. This role will leverage computer vision technologies to make our users more efficient whenever possible.”   
 
What You Will Accomplish 
·                     Works with OpenCV or similar libraries 
·                     Develops using Python 3, C, or C++
·                     Writes efficient pixel-based image filters
·                    Works with neural networks using technologies like TensorFlow and PyTorch
·                     Utilizes Jupyter Notebooks
 
What We Are Looking For 
We’re looking for someone who checks off most, but not all, of the boxes. It’s more important to us to find a candidate who can display indicators of success through skills they have developed and experience they have been a part of, than to find folks who have “been there, done that”. We want to be a part of your development journey, and we’ll learn as much from you as you learn from us. 
 
Available titles for this position include Software Developer, Senior Software Developer, and Staff Software Developer. The specific position offered will depend on your skills and years of experience. 
 
There are a few must haves, but we will keep that list short: 
·                     A degree is not required for this position, however a Bachelor’s degree in Computer Science or similar field is preferred 
·                     Experience working OpenCV or similar libraries. 
·                     Experience working with neural networks using either TensorFlow or PyTorch. 
·                     Ability to develop using at least one of the following: Python 3, C, or C++. 
·                     Ability to understand simple image filters such as convolution, morphological operations, Laplacian and Canny edge detection. 
·                     Ability to write pixel-based image filters while considering speed of execution.
 ·                    Ability to develop using Python 3 and Jupyter Notebooks.
 
A few nice-to-haves: 
·                     Ability to develop using C, C++, or C#. 
·                     Ability to understand video filters such motion detection using any common method (e.g. Mixture of Gaussians). 
·                     Experience with FFmpeg libraries. 
·                     Experience with machine learning and neural network based methods for tasks like image classification. 
·                     Experience with video and image compression technologies such as H.264, H.265, JPEG, etc. 
·                     Experience working with TensorRT. 
·                     Experience preparing training, validation, and test data for training neural networks. 
·                     Experience with convolution neural networks.
·                     Understanding of evaluation metrics such as confusion matrices, AUC, F1 scores, and Average Precision. 
·                     Experience with computer vision technologies such as OpenCV. 

 
The Most Important Thing 
We’re looking for candidates that can provide examples of how they have demonstrated Magnet InteGRITy in their previous experiences: 
Greater Good – We think beyond our own interests and strive to improve communities around the world. This demonstrates our passion for making a difference in the world. 
Respect – We hold ourselves accountable through transparent sharing of information and we have faith in each other’s abilities 
Innovation – We lead the industry in excellence and reliability while keeping the user experience simple and relevant. We are not afraid to push the boundaries to stay ahead of our competitors. 
Teamwork – We collaborate internally and externally, while caring about each other and listening to our customers. 
 
 

We’re committed to continuous learning and are focused on building a diverse and inclusive workforce. This commitment will be reflected in our hiring processes and embedded in our values and how we treat one another. If you’re interested in this role, but do not meet all of the qualifications listed above, we encourage you to apply anyways.
 
Magnet Forensics is an Equal Opportunity Employer and considers applicants for employment without regard to race, colour, religion, sex, orientation, national origin, age, disability, genetics or any other basis forbidden under federal, provincial, or local law.
 
We are committed to providing an inclusive, accessible recruitment process and work environment. Accommodation is available to all applicants upon request throughout the hiring process. If you require accommodation, please let our talent team know, or you can email aoda@magnetforensics.com.