Job Description:
We are seeking an experienced Development Toolchain Specialist with deep expertise in Linux environments, toolchain management, build systems, and productivity tools. This role requires proficiency in C++ and Python, along with strong hands-on experience with toolchains, compilers, and cross-compilation for multiple architectures. You and your team will be responsible for building and maintaining a seamless development environment, managing simulators, and enhancing CI/CD pipelines.
Key Responsibilities:
- Linux Development Environment: Manage and optimize the development environments, primarily on ubuntu.
- Programming Expertise: Lead development efforts using C++, Python and provide mentorship on best practices. Experience with TypeScript and JavaScript is a plus.
- Developer Tools: Develop and maintain onboarding scripts, optimize developer workflows, and develop custom extensions for VSCode to enhance productivity.
- Toolchain Management: Manage and optimize development environments using tools like WSL2, VSCode, and custom extensions tailored to project needs.
- Build Systems: Implement and maintain build systems like CMake and Bazel. Lead distributed builds and use caching mechanisms and incremental linking to improve build efficiency.
- Compilers & Linkers: Evaluate and benchmark compilers like GCC and Clang. Work with linkers such as Mold, Wild, and Gold to ensure optimal performance.
- Cross-Compilation & Multi-Architecture Support: Develop and maintain builds for multiple architectures, ensuring seamless cross-compilation processes.
- Debugging: Provide advanced debugging, including core dump analysis, using tools like GDB.
- CI/CD Pipelines: Configure, manage, and optimize CI/CD pipelines, focusing on Azure Pipelines to streamline deployment and testing processes.
- Testing & Evaluation: Perform thorough testing and evaluation using structured frameworks and tools to ensure code quality and performance.
Skills Required:
Category
Skills/Characteristics
Operating Systems
Linux, Ubuntu
Programming
C++, Python, TypeScript / Javascript (optional)
Virtualization
WSL2, Docker, Containers
IDEs
VSCode, custom extensions development
Build Systems & Linkers
CMake, Bazel, distributed builds, cache mechanisms, incremental linking
Educational and Work Experience:
- Bachelor's or master's degree in computer science, Software Engineering, or a related field.
- 8+ years of software development experience, focusing on Linux environments.
- Demonstrated ability to manage complex build systems and toolchains.
- Strong communication and documentation skills.
Personality Requirement:
- Enthusiastic, positive minded and able to work well in an international client environment.
- Good interpersonal, communication and analytical skills
- Self-starter and goal oriented
- Attention to details and strong inclination to learn.
- Team player - open-minded and flexible
Location:
This position is located in
Bangalore, India.
In this recruitment process we review applications continuously. Welcome with your application as soon as possible, but no later than
30th September 2024.
United. Inspired. Performance unites us, Innovation inspires us, and commitment drives us to keep moving forward.
In the 150 countries where you can find Epiroc, we encourage our employees to take ownership of their own development and careers with the support from their leaders. We are committed to give you every opportunity to succeed in a culture of innovation, diversity and collaboration, combined with a caring atmosphere. Diversity and sustainability are key to grow fresh and innovative ideas and solutions for our customers. Epiroc is a leading manufacturer for the mining and infrastructure industries. Learn more at www.epirocgroup.com