Profiles:Engineer - Embedded Software


Experience- 3 to 5Yrs

Location - Pune(WFH-for some time),Bangalore (Hybrid or WFO)

  • Job Description

You will work on the development of Virtual models in C++. You will be responsible for design, implementation and testing these models. This role is ideal for programmers interested in furthering their Computer and SoC Architecture knowledge. Prior experience with simulators would be helpful, but even without that, embedded software engineers who are interested in getting a deeper understanding of the underlying hardware are also welcome to apply.

Job Brief:

Today software is proliferating in every sector. Automotive, Avionics, Data Centers, Space name any domain and you will notice huge lines of software code. It’s fair to say soon software will rule the world.

One of the big challenges for software teams is being able to start development of their software as early as possible. Software teams are gated by the availability of hardware to test the software. Top this, customers want high-quality products as early as possible.

One of the most common solutions to solve this problem is using Virtual models of the hardware (also called Virtual platforms or Virtual ECUs - VECU). VECU models the CPU, peripherals and other IP Blocks in the software itself and thus enables actual product software to be developed and tested very early in the product life cycle. All the major semiconductor and system companies are using VECU to accelerate development today.

Must Have Technical Skills:

  • Hands-on experience in C programming language
  • Excellent in programming - translating a high level problem to an implementation proposal and the final implementation
  • Proficient with Embedded Software/Firmware development.
  • Excellent understanding and hands on experience with peripheral devices and controllers like SPI, I2C, UART, Timers, interrupt controller, ADC etc.
  • Worked on low-level device drivers for above controllers - bare metal or Linux.

Good to Have Technical Skills:

  • Hands on experience with C++ / know-how of OOPS concepts
  • Exposure to programming complex devices like Ethernet controllers, PCIe controllers, etc.
  • Experience working on hardware simulators - e.g., Qemu, Synopsys Virtualizer

Behavioural/ Non Technical:

  • Self-managed and ability to learn and adapt
  • Eager to take on new challenging work
  • Strong analytical and problem-solving skills
  • Good debugging skills
  • Excellent verbal and written communication skills
  • Experience with interacting with customers