Role Overview
As a Software Engineer at Arm, you will join the Chip Methodology & Automation (CMA) team in the Solutions Engineering organization. This team creates scalable methodologies, workflows, and automation. These help engineering teams deploy Arm-based SoCs efficiently and consistently. Your role includes developing scalable Linux-based tools and shared infrastructure. You will focus on Python development, reusable automation, tool integration, performance, and reliability to improve engineering workflow efficiency.
Responsibilities
- Develop maintainable Linux tools and command-line applications, preferably using Python.
- Contribute to modular architectures supporting multiple tools, projects, and engineering teams.
- Identify workflow bottlenecks and implement automation that improves execution time, reliability, and efficiency.
- Build reusable infrastructure, APIs, interfaces, and integration patterns for engineering applications.
- Implement process execution, environment management, error handling, logging, and diagnostics.
- Build structured configuration and compatibility contracts using YAML, JSON, or schemas.
- Develop unit, integration, regression, performance, and system tests.
- Profile and optimize CPU, memory, filesystem, network, and batch-processing workloads.
- Support packaging, deployment, versioning, backward compatibility, and release automation.
- Participate in requirements analysis, technical development, code reviews, and validation planning.
- Build user documentation, provide integration mentorship, and develop material for fixing issues.
Requirements
- Software development experience in Python or a comparable language, with a strong preference for Python.
- Good understanding of Linux operating systems, command-line environments, processes, and filesystems.
- Experience crafting modular and reusable software components.
- Experience with Git, automated testing, debugging, and code reviews.
- Familiarity with shell scripting, process automation, YAML, and JSON.
- Understanding of software performance, reliability, error handling, and logging.
- Ability to independently deliver well-defined features with limited supervision.
- Effective communication and collaboration skills.
Nice to Have
- Experience with pytest, Python packaging, or extensible CLI frameworks.
- Familiarity with scalable platform architecture, plugins, APIs, or service-based integrations.
- Experience building secure and auditable execution frameworks.
- Familiarity with distributed computing, job schedulers, containers, or shared Linux environments.
- Experience with CI/CD pipelines and automated release workflows.
- Knowledge of concurrency, caching, profiling, or large-scale filesystem operations.
- Exposure to semiconductor, EDA, or engineering automation workflows.