Senior Software Engineer

  • Backend, Full Stack
  • Permanent
  • London, UK

As a Senior Software Engineer, you will take higher responsibilities and supervision of our SWE team and also be working closely with our research and design teams to bring our AI services to our customers around the globe. These include multi-modal systems, speech AI and animation based services. Our core stack is a collection of services built on Linux with a focus on throughput and reliability. The majority of services are implemented in Rust, however our codebase does contain some C++11, Go and Java code. Additionally, you will work alongside researchers to bring their prototypes and models to production so an understanding of Python and Machine Learning frameworks like TensorFlow and Torch are desirable.

We are looking for problem solvers, who have a passion for tackling challenging problems and coming up with practical solutions. You will be technically leading and take ownership of at least one larger project at Emotech and supervise less senior engineers. That also includes occasional conversation with a client to better understand their requirements and needs. You will be collaborating with a cross-functional team of talented scientists, engineers and designers who are equally driven. You will also be encouraged to promote Emotech’s technology and solutions in development communities and contribute to open-source projects.

As a Senior Software Engineer, your main responsibilities:

  • Higher level system architecture and design

  • Working with customers to work out system specifications and requirements for new products

  • Identifying new opportunities for the business such as related products or industries

  • Creating well-scoped work packages for other employees or contractors

  • Mentoring other employees and improving knowledge continuity

Requirements:

  • Minimum of 4 years of software development experience in industry

  • Deep knowledge of a programming language (e.g. Rust, C++11) in a Linux environment; working knowledge of multiple languages

  • Degree in Computer Science or other relevant area

  • Experience in team management

  • Strong communication skills and ability to communicate deeply technical concepts to stakeholders. Present hidden risks and potential solutions.

  • Strong grasp of data structures, algorithms and communication protocols

  • Great understanding of TDD, unit tests, end-to-end tests

  • Understanding of Tensorflow, Keras or PyTorch

  • Basic Docker, Kubernetes, dev-ops knowledge

Advantageous:

  • Audio/speech applications or computer vision, understanding of basic ML/DL models (SVM, CNN and LSTM etc), Tensorflow, Keras or PyTorch

  • Computer graphics and animation or experience with modern game engines

  • AWS, HW Cloud, Google Cloud services