Software SDK Engineer
About The Position
We are seeking a highly skilled C++ and Python Software Engineer to join our dynamic team. The ideal candidate will have experience with AI and machine learning frameworks such as TensorFlow, PyTorch, or ONNX. This role involves designing and implementing advanced compiler optimizations for AI and machine learning workloads, enabling high performance and efficiency. In this position, you will also develop complex software infrastructure for AI pipelines deployment.
Responsibilities:
- Design, develop, and maintain software C++ and Python.
- Collaborate with cross-functional teams to define software requirements and specifications.
- Implement and test software modules to ensure they meet the necessary performance and safety standards.
- Debug and resolve issues in a timely manner, ensuring minimal impact on project timelines.
- Utilize Python for scripting, automation, and integration tasks.
- Document software design, implementation, and testing procedures.
- Be a part of the Compiler development of AI pipeline.
Requirements
- Bachelor’s or master’s degree in computer science, Engineering, or a related field.
- At least 5 years of experience in software development with C++ and Python.
- At least 3 years of experience with AI and machine learning frameworks such as TensorFlow, PyTorch, or ONNX.
- Proven experience in designing large Software Modules.
- Proficiency in multi-threaded and concurrent programming.
- Excellent problem-solving skills and attention to detail.
- Ability to work both independently and as part of a team.
- Strong communication skills to effectively collaborate with other team members and stakeholders.
Advantages:
- Experience in compiler development with a strong understanding of MLIR and LLVM.
- Familiarity with heterogeneous computing environments and hardware accelerators.
- Working with Dockers in a CI/CD environment.
- Knowledge of software development methodologies, including Agile and Scrum.
- Experience contributing to open-source projects.
- Understanding of parallel computing and multi-threading.