Software Engineer, Speech Recognition (C++)

Toronto, Canada
SoundHound Inc.
ago
fulltime Dev

SoundHound Inc. builds voice AI products that make it easier for people to engage with the world around them. We do this by creating custom voice assistants that make it possible for companies to extend their brand in new and meaningful ways. Today, our customized voice AI solutions allow people to talk to phones, cars, smart speakers, mobile apps, coffee machines, and every other part of the emerging ‘voice-first’ world.

We are looking for a C++ Software Engineer to join our Automatic Speech Recognition (ASR) Systems team. Our team designs and implements production-grade C++ software that uses models generated by our Machine Learning teams to produce high-quality transcriptions for audio queries. Our goal is to provide a more accurate and cost-efficient Houndify Voice AI Platform for our customers.

You will participate in enhancing and maintaining the core production speech recognition system architecture. This includes our decoders, which sit at the epicenter of SoundHound’s ASR and Natural Language Understanding (NLU) services. As such, you will collaborate closely with our Machine Learning teams and other Software Engineers to continuously improve our speech recognition capabilities. We believe that the best results come from an open collaborative culture and are looking to hire someone who feels the same.

In this role you will:

  • Enhance existing speech recognition algorithms as well as contribute to development of new algorithms
  • Contribute to other components in the core production speech recognition system architecture
  • Create value-add services on top of our speech recognition decoders, e.g. services related to transcription and speaker identification 

We would love to hear from you if:

  • You have experience writing clean high-quality C++ code, including using the Standard Template Library (STL) algorithms and data structures
  • You have proficiency with fundamental algorithms and data structures, including trees, graphs, and state machines
  • You are methodical and detail-oriented, especially when designing optimal solutions to novel problems, implementing/refactoring complex code, and communicating experimental results
  • You have foundational understanding of probability and statistics
  • You are experienced with Linux sufficient to build/test/debug C++ applications, implement basic Bash scripts, parse log files, and troubleshoot performance issues
  • You have working knowledge of basic matrix operations (addition, multiplication, etc)
  • You have a degree in Computer Science, Computer Engineering, or similar

We’d be especially excited if you have past experience working with machine learning models in production and are motivated to solve hard problems and never stop learning and improving.