Software Engineer C++, Python

Employer

Job Description

Q Analysts is seeking a team of Tools Engineers/Software Developers to join our Client's Core Technologies team. Our Client's team applies a range of software, computer vision and robotics techniques to build systems and tools that enable accurate quality evaluation and regression testing of tracking systems and algorithms.


Our team will help develop software for computer vision (CV) and mixed reality (MR) features on virtual reality (VR) and augmented reality (AR) head-mounted devices (HMDs). This challenging role participates in activities such as prototyping, unit testing, regression testing, end-to-end testing, debugging, computational performance evaluation, quality assurance, etc., of systems, platform, and infrastructure.


Our team of Engineers will be responsible for contributing to daily work on building software products and features shipping on the HMDs. Engineers are not expected to design and lead the implementation of complete features; however, a substantial degree of independence and self-drive are required to minimize onboarding and supervision.


Example tasks

  • Debugging and upgrading tools used and/or implemented by the team.
  • Evaluating performance implications (CPU, GPU, memory, thermal impact) of features deployed to HMDs.
  • Developing and/or improving tools for visualizing data collected from the HMDs.
  • Contributing to improved code quality by participating in code reviews, design document reviews, etc, implementing extensive tests, etc.
  • Participating in on-call rotations, mitigating and resolving incidents, writing postmortems.


Preferred Skills

  • Solid engineering skills in the relevant programming languages and operating systems (C++, Python, Linux, Android).
  • Knowledge in at least one of the following domains: Computer Vision (CV), Virtual/Augmented/Mixed Reality (XR), Computer Graphics (CG), Machine Learning (ML).
  • Experience in a fast-paced technology environment with extensively cross-functional (XFN) work, and be able to thrive in ambiguity.


Other Desired Skills:

  • Extensive hands-on knowledge of C++, ideally with good familiarity of the recent standards (C++17, C++20) and corresponding standard libraries.
  • Good understanding of advanced template metaprogramming.
  • Good knowledge of C++ testing with libraries such as Googletest.
  • Familiarity with the Buck build tool.
  • Efficiency in Python, command line Python scripting, and explorative work with Python notebooks, using modules such as numpy, scipy, matplotlib, etc.
  • Knowledge of CV and relevant libraries such as OpenCV.
  • Knowledge of CG and relevant standards such as OpenGL and their implementations, such as Qt.
  • Knowledge of game development engines such as Unity, Unreal.
  • Knowledge of Android development and debugging, ideally in the context of XR on mobile and HMDs.
  • Practical knowledge of ML, neural networks, and deep learning, with focus on developing and using infrastructure for deploying models in production (ML Engineering, ML Ops).