About Cadence :
Cadence Design Systems is a global leader in computational software for electronic design automation (EDA). Our Intelligent System Design strategy powers innovation in electronic products, delivering software-driven solutions that help build next-generation systems across AI, automotive, 5G, hyperscale, consumer, and industrial applications. As a part of Cadence, Invecas drives innovation in system-level software design and optimization.
Role Overview :
As a Software Engineer 1, you will play a pivotal role in designing and developing scalable, modular, and reusable software solutions for chiplet and subsystem platforms. This includes embedded software components, drivers, system software, and tooling that support the full software stack from the lowest levels to the application interface. You will be engaged in architecture, design, implementation, testing, and optimization of software that supports advanced SoC features and cross-chiplet interoperability.
This role offers an opportunity to shape the direction of Cadence's software ecosystem for chiplet-based designs and to work closely with multidisciplinary teams across the organization.
Key Responsibilities :
- Design and implement embedded and system-level software for chiplet-based subsystems.
- Develop drivers, board support packages (BSPs), and firmware for various IP and SoC configurations.
- Create software that is highly configurable, reusable, and automated for various product variants.
- Collaborate with architecture teams to define the software abstraction layer and interfaces.
- Define and implement robust software development processes including version control, static analysis, code reviews, CI / CD integration, and test automation.
- Debug and troubleshoot complex software issues, both independently and in collaboration with internal teams.
- Review technical documentation, system designs, and contribute to technical decision-making.
- Participate in architectural reviews, software planning, and requirement discussions.
Technical Skills & Experience :
2- 5 years of hands-on experience in embedded systems or system-level software development.Proficient in C / C++ programming with strong software engineering fundamentals.Solid understanding and practical experience in :1. RTOSes (e.g., FreeRTOS, Zephyr, VxWorks) or embedded Linux systems.
2. Device driver development, especially for I / O peripherals.
3. Firmware and BSP development for multi-core SoCs.
Software boot sequences, initialization flows, and interrupt handling.Good understanding of software constructs in multi-threaded / multi-core systems.Familiarity with software interfaces and protocols such as SPI, I2C, I2S, USB, PCIe, MIPI, etc.Knowledge of processor architectures such as ARM Cortex-A / M or RISC-V is an advantage.Exposure to software simulation, emulation, or pre-silicon development environments is a plus.Experience in scripting languages (Python, Bash) for automation and toolchain orchestration is desirable.Preferred Qualifications :
Bachelor's or Masters degree in Computer Science, or a related field.Experience working in agile or iterative software development methodologies.Familiarity with version control systems (e.g., Git), bug tracking tools, and CI pipelines.Exposure to software security, code quality metrics, and release management is beneficial.Behavioral Competencies :
Strong analytical and problem-solving skills with a detail-oriented mindset.Excellent verbal and written communication skills.A collaborative approach to working with cross-functional teams.Self-driven with a high level of ownership and accountability.Ability to learn and adapt quickly to evolving technologies and customer requirements.ref : hirist.tech)