Algolux is an industry-leading software provider with technology at the intersection of AI, computer vision, and computational imaging. Our award-winning products address mission-critical applications for the Advanced Driver Assistance Systems (ADAS), Autonomous Vehicle (AV), Smart City, and video security markets.
Your mission and day-to-day tasks
As a key member of our Engineering team, the DevOps Specialist supports the Algolux team with the infrastructure needed to run our products reliably. You will advise on and deploy new technologies required for our products, monitor and improve the performance of infrastructure systems, support Continuous Integration, and analyze the need for Continuous Deployment. Automation is at the heart of solving most of our challenges.
You will be a key part of a multidisciplinary team that develops machine learning solutions for digital cameras in self-driving cars.
Responsibilities:
- Use automation to deploy, configure, manage, and monitor our products
- Select, develop, and maintain repeatable build systems for C++ source code base
- Build out and expand our CI/CD systems for multiple projects/releases
- Work with the QA team to increase automated testing
- Evaluate and evolve ongoing design, architecture, and standards for our underlying infrastructure and services
- Plan service capacity and spec new systems needed to meet growing demand
- Develop and articulate a robust release engineering strategy
- Resolve service problems for the systems you maintain
- Scale current infrastructure; help migrate to better platforms if needed
- Develop tools to assist other developers and researchers in their tasks
- Write maintainable, legible CI/CD and build related scripts
- Mentor and share knowledge with team members
Requirements
- 5+ DevOps years experience administering and developing in Linux
- Mastery of containerization, packaging, and deployment tools (Docker, deb/apt)
- High proficiency in a scripting language (Python, Bash, Lua, etc.)
- Understanding of C++ build toolchains and systems (CMake/Make is a must)
- Understanding of static and dynamic library linking process. Ability to manage library interdependencies.
- Experience with CI services such as GitLab, Jenkins, Travis, or CircleCI
- Proven track record of delivering reliable solutions
- Strong communication skills
Desirable Requirements:
In addition to the above, the ideal candidate would have:
- Real-world experience developing code in C++
- Hands-on experience with Conan build system
- Understanding of software packaging and distribution solutions (deb, apt)
- Experience with CD and orchestration workflows on Public Cloud Infrastructures
- Experience with deployment tools like Kubernetes
- Knowledge of various database technologies (SQL or NoSQL)
- Familiarity with distributed storage systems (S3, SAN, etc.)
- Judgment with regard to technical decisions, and an appreciation for the trade-offs taken when making those calls
- Ideas on how to streamline the software development lifecycle, and the ability to articulate those to the team and implement them as real practice