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