Embedded Software Engineer

Position: Engineer – Embedded Software

Experience: 3-5 Years

Location: Bengaluru | Belagavi | Pune

 

Job Description

You will work on the development of Virtual models in C++. You will be responsible for designing, implementing, 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 that 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. On top of 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 and C++ programming languages.
  • Excellent programming skills – translating a high level problem to an implementation proposal and the final implementation
  • Design, Implementation, and debugging of Linux device drivers
  • Excellent understanding and hands-on experience in programming peripheral devices and controllers like SPI, I2C, UART, Timers, interrupt controller, ADC, etc.
  • Worked on low-level device drivers for the above controllers
  • Knowledge of processor architectures for ARM or RISC-V
    •  

Good to Have Technical Skills:

  • Exposure to SystemC / TLM concepts.
  • Exposure to programming complex devices like Ethernet controllers, PCIe controllers, etc.
  • Experience working on hardware simulators – e.g., Qemu, Synopsys Virtualizer
  • BSP (Board Support Package) bring-up experience including boot loader and U-boot.

Behavioral/ 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
0Dislike
50% LikesVS
50% Dislikes