27 Sep
|
Avench Systems
|
Delhi
27 Sep
Avench Systems
Delhi
- We are seeking a highly organized and disciplined professional with strong hands-on experience in both embedded software development and DevOps for embedded software tooling.
- The ideal candidate will have a proven track record of developing embedded software while also building and maintaining robust CI/CD pipelines, automation, build systems, testing infrastructure, and developer tools that enable efficient and reliable embedded software development.
- Overall experience of 5-8 years.
Code quality and static dynamic analysis
- Define and roll out an automated code-formatting and linting setup for embedded C, based on clang-format and clang-tidy, aligned with the coding style
- Integrate formatting and linting checks into the CI server so that patchsets receive automated feedback and voting on Gerrit
- Make the same checks available locally on developer machines, so that issues are caught before review
- Extend the TWK coding style with rules for header-file duplication, include order and line endings, and enforce these automatically
- Automate large-scale reformatting of the existing firmware code base and submit the results to Gerrit as reviewable commits
- Evaluate and introduce and agile analysis tooling such as Valgrind, for embedded C code
- Analyse existing firmware projects for structural gaps, risks and quality problems, and propose a prioritised improvement path CI/CD and build infrastructure
- Design and maintain a shared Jenkins pipeline library, and simplify the individual Jenkinsfiles across firmware projects
- Migrate existing firmware projects to CMake as the common build system
- Package the complete TWK firmware toolchain in Docker, so that builds run identically on CI and on developer machines
- Implement CI checks that verify consistency between uploaded patchsets,
commit messages, linked Jira tickets and the changed source code
- Introduce automated review feedback on Gerrit as a recommendation to human reviewers
- Continuously improve pipeline runtime, reliability and developer feedback loops Developer experience
- Build internal developer tooling - for example, a tool that gathers information from Gerrit and Jenkins and gives each developer a clear summary of their open patchsets and build status
- Establish Visual Studio Code as a supported, pre-configured IDE setup for TWK firmware development
- Reduce module dependencies in the existing unit-testing structure so that tests are faster, more isolated and easier to maintain
- Document tooling and workflows clearly, and support developers in adopting them Traceability, reproducibility and compliance
- Establish end-to-end traceability between requirements, implementation and tests, using scripted tooling where appropriate
- Make development and test environments fully reproducible and archivable over long product lifecycles, including several years after release
- Evaluate and introduce a requirements-management tool with snapshot and versioning capabilities
- Introduce SBOM generation into the build process and establish the associated processes for third-party and open-source components
Evaluation of AI-assisted tooling : -
- Assess where AI-based approaches can add genuine value in our toolchain - for instance in firmware code analysis, automated review recommendations, commit and ticket consistency checks, or developer summaries
- Prototype, evaluate and, where the benefit is proven, productise such approaches with clear attention to determinism, reviewability and data protection
Qualification : -
- A completed degree in computer science, technical computer science, electrical engineering, systems engineering or a comparable qualification
- Software infrastructure or tooling, ideally in an embedded context
- Strong practical experience with CI/CD systems, in particular Jenkins, including pipeline libraries and pipeline-as-code
- Solid experience with Git and code-review workflows; experience with Gerrit is a clear advantage
- Strong scripting and automation skills in Python
- Proven experience in building PC software with UI for interacting with embedded devices
- Proven experience with REST API and tools like Postman
- Good working knowledge of embedded C, sufficient to reason about firmware code bases, build configurations and analysis findings
- Hands-on experience with build systems such as CMake and Make, and with crosscompilation toolchains for microcontrollers
- Practical experience with Docker and containerised build environments
- Experience with static and dynamic analysis tooling, such as clang-tidy, clangformat, or Valgrind
- Experience with Linux as a development and CI platform
- A structured, pragmatic approach that balances long-term architecture with visible short-term improvements
- The ability to work with developers as internal customers: gathering needs, explaining trade-offs and driving adoption
- Very good written and spoken English
📌 Senior DevOps Engineer - Embedded Software Tooling (Delhi)
🏢 Avench Systems
📍 Delhi