[SX/EIT-MM] Software Engineer (Build & Artifact Engineering)
As a Software Engineer for Build & Artifact Engineering, you are a hands-on implementer of the foundational toolchain for our embedded software
development. You will be responsible for the hands-on development of our build systems, dependency management solutions, and integrated quality tools.
You will work within our "Code-to-Artifact" team to create a robust, efficient, and secure "factory floor" that enables hundreds of developers to build and test
complex software with confidence. You will translate user stories into technical tasks and implement high-quality solutions that directly address developer
pain points.
Key Tasks & Responsibilities:
- Agile Team Participation: Actively participate in all team ceremonies, including sprint planning, daily scrums, and reviews to ensure alignment, share progress, and gather feedback.
- Build System Development: Design, develop, and maintain robust build systems using CMake and Conan.
- Dependency Management: Implement solutions for managing complex C++ dependencies and integrating third-party libraries for various target environments.
- Tool Integration: Integrate and configure tools for static analysis (SAST), software composition analysis (SCA), and FOSS license compliance into the build process.
- Optimization: Proactively identify opportunities to optimize build system performance, resource utilization, and caching strategies to provide fast feedback to developers.
- Developer Support: Troubleshoot complex build, compilation, and linking issues, acting as a knowledgeable resource for developer support.
- Continuous Improvement: Contribute to and maintain knowledge bases and internal best practices for build processes and development environments.
Professional Experience & Mindset:
- Software Craftsmanship: A deep-seated belief in writing clean, maintainable, and well-tested code, treating even simple build scripts as professional software.
- Systematic Problem-Solving: A relentless, hands-on approach to diagnosing and resolving complex, low-level technical issues in compilers, linkers, and build systems.
- Developer Empathy: A genuine passion for understanding developer challenges and a commitment to creating a fast, reliable, and frictionless build experience.
- Continuous Learner: A proactive mindset to stay current with the evolving C++ ecosystem.
- Bachelor in IT Software, Computer Engineering or related major
- 3+ years of relevant experience
- Build System Development: Strong, hands-on expertise in implementing scalable and maintainable build systems with modern CMake.
- Dependency Management: Proven experience with C++ package managers, specifically Conan, including creating recipes and managing binary packages.
- Embedded Toolchains: In-depth, practical knowledge of embedded compiler toolchains (GCC/Clang), linkers, and debuggers.
- Software Development: Strong programming skills in Python for tool development and a solid understanding of C++ to effectively support the code being built.
- Software Design: The ability to apply core design principles (SOLID, DRY) and established design patterns to create maintainable tooling.
- Version Control: Strong knowledge of Git and proficiency with modern branching and integration workflows.
- Embedded SW Context: A background in embedded software development is highly desirable to understand the needs of the developers you will support.