Role: Lead Software Engineer
Job Purpose:To lead technical requirements of the assigned project and deliver fully functional high-quality tested software that complies with stated and implied requirements and also in accordance with agreed time, quality, and cost standards by leading the team , setting the direction for the team during project work and engaging throughout the Project lifecycle.
Responsibilities:
- Develop and maintain C++ based software code.
- Collaborate with cross-functional teams.
- Optimize and improve the performance of the written code.
- Troubleshoot and resolve issues during software development.
- Document code and processes, ensuring best practices are followed.
- Device driver development in Linux
- Interface with the customer to understand requirements, report progress, investigate issues reported on a day-to-day basis
- Closely Interact with Project Leader/Project Manager for task planning, estimation, scheduling, and staffing in accordance with time, quality and cost standards
- Closely Interact with Architect(s) to prepare high-quality design including the software, hardware and communications, to support the total requirements, as well as to provide for present and future cross-functional requirements and interfaces in accordance with agreed time, quality and cost standards
- Review code, design of the software and suggest improvements to ensure conformance with Software requirements, performance and software maintainability
- Responsible for integrating all software components into a fully functional software system and troubleshoot and debug software systems to fix issues
- Encourage team members to create POCs ideas into solutions, contribute to future technology development and reusable development towards building organizational capacity
- Technically screen and select a suitable team for the project, mentor/Coach team members for setting team objectives, driving their realization, maintaining team engagement, inspiring, and motivating the team
- Strong knowledge in software design patterns
- Excellent analytical and problem-solving abilities
- Expertise in multiple technologies to provide technical leadership in design & development
Requirements analysis, management and estimation skill
-
Mandatory Skills:Practical knowledge of the following tools & technologies :
- C++ 11 / 14 or above
- Linux
- GTest
- Hands experience in Device Drivers development
- SDLC tools – Git
- Protocols: Serial (RS 232) & TCP/IP
Functional/Technical Competencies :
- Strong knowledge in software design patterns
- Excellent analytical and problem-solving abilities
- Expertise in multiple technologies to provide technical leadership in design & development
- Requirements analysis, management and estimation skill