Overview
As a Software Virtual Platform Engineer, you will develop high-level system virtual models of complex SoC hardware, including virtual platforms based on SystemC TLM and QEMU. You will collaborate with hardware, software, systems, and test engineers to design system-level software solutions.
What you'll do
- Design and develop SystemC TLM models to accurately represent SoC architectures.
- Integrate processors, interconnects, peripherals, and custom IP blocks into the SystemC simulator.
- Collaborate with hardware designers, software engineers, and other stakeholders to understand system requirements and translate them into detailed SystemC models.
- Design, develop, create, and modify virtual models using advanced software and hardware systems knowledge.
- Define software requirements for complex SoC TLM models.
- Design and implement TLM models for complex, large-scale products and systems.
- Lead design, coding, and testing efforts to complete projects to specifications and schedules.
- Perform code reviews and regression tests.
- Triage and fix issues to ensure code quality.
- Collaborate with hardware, systems, and test engineers to design solutions that work with other project components.
- Work independently with minimal supervision.
- Make critical decisions that significantly impact program, product, or project success.
- Convey complex information using strong verbal and written communication skills, often requiring negotiation, influence, and tact.
- Perform tasks requiring multiple steps, extensive planning, problem-solving, and prioritization.
What you'll need
- Bachelor's degree in Engineering, Information Systems, Computer Science, or related field and 4+ years of Software Engineering or related work experience, or Master's degree in Engineering, Information Systems, Computer Science, or related field and 3+ years of Software Engineering or related work experience, or PhD in Engineering, Information Systems, Computer Science, or related field and 2+ years of Software Engineering or related work experience.
- 2+ years of work experience with a programming language such as C, C++, Java, Python, etc.
- Extensive experience with C++ programming.
Nice to have
- 10+ years of Software/Firmware Engineering or related work experience.
- 5+ years of experience developing Virtual Platforms or Simulators.
- Open Source Development experience.
- Experience in Unit Testing.
- Experience in Continuous Integration.
- Experience with ARM Fast Models.
- Experience with Server Architecture, including RAS and Manageability.
- Experience with SystemC TLM or QEMU.
- Experience with Modern C++.
- Experience with ARM Architecture, including CPU, GIC, and CoreSight Debug.
- Experience with Firmware and/or Device Driver Development and Debug.
- Experience with Git Revision Control.
Details
- Location: Bangalore, India.
Read the full description and apply on the company’s own careers page.