The AI team at is looking for exceptional research software engineers to join the growing team. The team undertakes projects involving the application of cutting-edge research into proof-of-concept and commercial products for devices and services.The prospective candidate will have the opportunity to be part of building next generation mobile devices The candidate will contribute to software development and research of new functionalities or enhancement current pipelines on flagship mobile devices. We encourage enthusiastic researchers and engineers with a strong academic background and expertise in development of audio/speech related applications to apply. You will be poised to grow and expand your programming skills and expertise into a dynamic new set of research problems.
This position will require you to work closely with researchers and engineers to enable and accelerate new research efforts for personalised ML.
Role and Responsibilities
As a Research Software Engineer, you will:
Perform software engineering and development activities including requirements analysis, design, implementation, testing, deployment, and code maintenance.
Understand and address software engineering questions that arise in research planning.
Maintain knowledge of current and future software development tools and techniques for machine learning and AI research.
Develop novel methods to improve on-device system performance, model size and accuracy.
Develop and deploy state-of-the-art solutions for real-world large-scale AI problems with commercialization goals on devices.
Have technical responsibility for one or more significant sections of the assigned research project.
Translate complex functional and technical requirements into detailed design.
Skills and Qualifications
PhD or MSc degree in Artificial Intelligence, Computer Science/Engineering, Electronics, Mathematics, or related disciplines (an equivalent period of industrial experience may be substituted).
Professional software development experience with C++/ Python is required.
Consistently using conventional and readable coding style.
Performing test-driven development.
Creating comprehensive and well-written documentation.
Participating in regular code reviews.
Developing and maintaining reproducible build systems.
Familiarity with software engineering practices and tools such as Git, CI, Agile, etc.
Excellent knowledge of fundamentals of machine learning and deep-learning concepts such as deep neural networks and personalisation is required.
Research and development expertise of speech processing, and language modelling (e.g. speech recognition, NLP/NLU etc.) A proven track record in AI model development and deployment (on embedded devices is a plus).
Experience with programming using machine learning frameworks (strong experience in Tensorflow is a plus).
Good familiarity with relevant python libraries (such as NumPy) and tools (such as TensorBoard).
Experience with speech recognition algorithms.
Expertise in deploying AI on Android.
Publications in top ML/AI conferences (e.g. ICML, NeurIPS, Interspeech, SysML or similar).
Contribution to open source ML frameworks such as -TensorFlow, TensorFlow Lite, etc.