Software Developer/ Engineer/ Architect

Staff Engineer, Machine Learning

35 YEARS AND GROWING

Our inventions are foundational to the global entertainment ecosystem and our products and data improve every aspect of the digital entertainment experience, from choice to consumption.

Xperi invents, develops and delivers technologies via its brands (DTS, HD Radio, IMAX Enhanced, Invensas, TiVo), and by its startup, Perceive that enable extraordinary experiences. We make entertainment more entertaining, and smart devices smarter.

Job Description

  • You’ll be part of the team that develops the embedded software and hardware simulators.
  • The software is meant to run image and audio processing algorithms and it may interface with the HW developed in our company.
  • The algorithms are heavily based on neural network technologies.

Responsibilities:

  • Design & develop embedded SW running on XPERI’s HW.
  • Design & develop SW that will simulate the HW behaviour. Also develop SW tools to support the XPERI’s HW.
  • Work closely with Machine Learning and Hardware Design teams to identify optimal SW architecture and implementation solutions.
  • Assist with customers’ requests, provide support or travel to support on site if necessarily.
  • Additionally, for Sr. position:
    • Drive embedded software development from initial concept to implementation, platform optimization and performance validation. Establish performance evaluation methodology, generate technical documentation and test procedures.

Required Skills:

  • 5+ years of experience as a software engineer.
  • Strong knowledge of C, good C++.
  • Strong analytical and troubleshooting skills and drive to solve problems.
  • Proven SW design experience.
  • Ability to work with Linux (GCC toolchain) and Windows (Visual Studio) development environment.
  • Experience with real time and multitasking programming.
  • Experience with embedded tools and SDKs.
  • Experience with programming hardware (interrupts, registers, etc.).
  • Knowledge of system architecture (different types of memory, cores, caches, buses).
  • Experience in developing portable code.
  • Familiarity with version control systems, preferably Git.
  • Good written and spoken communication skills.
  • Ability to work in a team.

Additional Skills (would be added advantage):

  • Experience with image or/and audio processing. Including algorithm development and optimization.
  • Experience in Neural Networks / Machine Learning domain.
  • Python programming.
  • Experience with GPU/parallel programming.
  • Knowledge of embedded Operating Systems.
  • Health Benefits
  • Retirement Options
  • Charity Match
  • Professional Development Classes
  • Volunteer Opportunities
  • Team Building Outings
  • Life Insurance
  • Tuition Reimbursement
  • Other awesome benefits - site specific