Lead Software Development Engineer
Noida, IN
Purpose of the job
The Senior Engineer will play a key role in the design, development, and implementation of engineering projects. This position requires a solid understanding of engineering principles and the ability to apply them effectively. The Senior engineer will work autonomously and collaboratively with lead engineers and managers 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:
- To carry out the design, implementation and testing/verification of the modules within the given constraints: time, cost, specification & quality targets
- To ensure that the implementation conforms to the common guidelines and best practices
- Ensure that the relevant, available information gets collected, analyzed and considered for the proposed used for the solution
- To collect/prepare the documents (documentation and reports) of the related design/module/sub-assembly in time as per the project plan
- Solve practical problems and deal with a variety of concrete variables in situations where only limited standardization exists
- Effective time management - Carry out specific assigned tasks independently and/or in a group environmenton time with minimum supervision
- Communicate effectively and professionally with other members of the development team and product management.
Detail Job Responsibilities and Requirements
- Bachelor’s degree in Computer Science, Computer Engineering, or equivalent.
- 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 have experience with the following:
- C++ software design and development with Object Oriented Design principles
- Multithreaded programming
- 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