Work In Tech

Find your next role at Canada's fastest-growing tech companies

Senior C++ Software Engineer, Performance Specialist

IMAX

IMAX

Software Engineering
Waterloo, ON, Canada
Posted on Friday, March 15, 2024

IMAX is not your everyday entertainment experience. With over 50 years of history as a global innovator in entertainment technology, our employees and their careers have constantly gone beyond the ordinary at IMAX. We combine proprietary technology with industry-leading knowledge and relationships with top studios and filmmakers to create theatrical experiences that take audiences beyond the edge of their seats to a world they never imagined. IMAX has revolutionized the way people experience movies and continues to push the boundaries of entertainment experiences beyond blockbusters and into exciting new directions.

Come explore IMAX – where innovation, creativity and passion come together. Get inspired, get involved, and ignite your future with IMAX!

Job Description:

What You'll Do:

  • Take algorithm specifications, machine learning models, and other output from the research team and implement them in high performance software
  • Optimize existing algorithms for execution time, parallelism, or memory usage
  • Own your work from inception to deployment, driving the full software lifecycle
  • Contribute to the successful execution of an agile/scrum project
  • Help to build a world-class development team through knowledge sharing and co-mentorship
  • Work closely with executives and customers in a fast-paced agile scale-up environment

What You'll Need:

  • 5+ years software development experience in C/C++
  • A solid understanding of the principles of object-oriented programming
  • 2+ years experience in high performance algorithm development and performance optimization
  • Experience with and a thorough understanding of multi-threaded and asynchronous software and environments
  • Experience using performance profiling tools (such as google perf tools, dtrace, vtune, valgrind) to identify performance bottlenecks and areas for improvement
  • Experience optimizing the runtime performance of software, including the use of inline assembly, vector intrinsic and SIMD instructions.
  • Experience using, designing, and implementing neural networks or other AI/machine learning concepts
  • A thorough understanding of the C++ standard library
  • Experience writing and maintaining unit tests
  • Possess an eagerness to learn new tools and technologies
  • Passionate about developing high quality, high performing, robust software

Nice to Have:

  • A general understanding of the video/media industry (terminology, algorithms, technologies, e.g., scaling, encoding, transcoding etc.)
  • Experience developing software for the media industry (video and/or audio processing)
  • Exposure to video processing algorithms and libraries such as FFmpeg, LAV
  • Experience developing GPU-accelerated software with CUDA and/or SYCLScripting skills (Python, bash)
  • Experience using git for version control
  • Proficiency working in a Linux environment
  • Open community participation such as Stack Exchange, GitHub

At IMAX, you will be part of a culture built on respect – we are committed to creating a welcoming and diverse atmosphere across our organization.

For consideration, please apply online. We thank all applicants for their interest in IMAX but only those selected for an interview will be contacted.