TMC Romania

Software Engineer (Build & Artifact Engineering)

Posted: 1 minutes ago

Job Description

About the Role:As a Software Engineer for Build & Artifact Engineering, you are a hands-on implementer of the foundational toolchain for our embedded softwaredevelopment. 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 testcomplex software with confidence. You will translate user stories into technical tasks and implement high-quality solutions that directly address developerpain 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 targetenvironments. Tool Integration: Integrate and configure tools for static analysis (SAST), software composition analysis (SCA), and FOSS license complianceinto the build process. Optimization: Proactively identify opportunities to optimize build system performance, resource utilization, and caching strategies to provide fastfeedback 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 asprofessional 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 frictionlessbuild experience. Continuous Learner: A proactive mindset to stay current with the evolving C++ ecosystem.Required Qualifications & Skills: You must be a software engineer with a passion for the complexities of building and delivering embedded software at scale.Core Build & Toolchain Skills: 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 managingbinary 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 thecode being built.Foundational Engineering Skills: 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 youwill support.

Job Application Tips

  • Tailor your resume to highlight relevant experience for this position
  • Write a compelling cover letter that addresses the specific requirements
  • Research the company culture and values before applying
  • Prepare examples of your work that demonstrate your skills
  • Follow up on your application after a reasonable time period

You May Also Be Interested In