Principal Software Development Engineer
Noida, IN
Purpose of the job
The Lead Engineer will lead and oversee the design, development, and implementation of complex embedded SW engineering projects. This role requires an in-depth understanding of SW engineering principles and the ability to apply them to solve advanced technical challenges. The Lead Engineer will work autonomously and drive the engineering team and management to ensure the successful completion of projects
The successful candidate will be responsible for the development of Software for Image Processing products within the IX R&D team. These products perform real time video and image processing and compositing for display on LED, projection and other displays. The products are part of highly visible systems in environments such as corporate events, rock concerts, television studios, House of Worship, Trade shows and fixed installations. The candidate will take responsibility for the quality completion of designated features and design suitable solutions to complex problems while working as a member of the Image Processing R&D team.
General Job Responsibilities:
- Lead and oversee the design and development of highly complex embedded software projects.
- Lead Embedded SW Architecture discussions to drive to conclusion.
- Together with FPGA Architect oversee full solution architecture, feasibility and execution.
- Prepare and review comprehensive technical documentation and reports.
- Collaborate with cross-functional teams to ensure project alignment and integration.
- Perform rigorous testing and analysis to ensure project quality and compliance.
- Mentor and guide junior and mid-level engineers, providing technical expertise and support. Review code base of more junior engineers to be in line with agreed quality and architecture guidelines.
- Maintain strong communication and relationships with stakeholders, ensuring their requirements and expectations are met.
Detail Job Responsibilities and Requirements
- Masters’s degree in Computer Science, Computer Engineering, or equivalent.
- 12+ years of relevant experience in an engineering role.
- Excellent communication and technical writing skills
- Ability to work autonomously and manage assigned tasks
- Ability to work well with other team members on a global team
Must master the following:
- C++ software design and development with Object Oriented Design principles
- Multithreaded programming
- Embedded Software development in a Linux environment
Experience with the following is a benefit:
- Developing and debugging with ARM processors, microcontrollers and other ICs
- Bus protocols such as PCIe, USB, SPI, I2C
- Linux device driver development
- C and C++ libraries like STL, Boost, Qt, GStreamer, OpenCV
- TCP/IP and UDP network programming
- Video and audio processing
- Media streaming protocols and media processing APIs
- Software build automation and version control tools
- GPU programming