Job
Description
Position Responsibilities: As a Lead Software Engineer - Embedded, you will be responsible for providing technical leadership and hands-on contribution across various stages of software development. Your key responsibilities will include: Requirements Management: Decompose Tier 3 System requirements into Tier 4 Software requirements for identified system features. Develop both High-Level and Low-Level Software requirements. Estimation & Planning: Estimate software development effort, including coding and testing. Software Development: Develop code, test cases, and test procedures for High-Level and Low-Level Software requirements. Ensure that software architecture and design adhere to software requirements. Integration & Testing: Develop software integration test scripts to verify the correct implementation of Tier 4 requirements. Perform software integration testing in a lab environment. Traceability & Quality: Establish traceability from Tier 3 requirements to software requirements and tests. Perform peer reviews on system and software requirements, design, and tests. Review Support: Support Systems Requirements Review (SRR), Preliminary Design Reviews (PDR), Critical Design Reviews (CDR), Test Readiness Review (TRR), and Formal Qualification. Project Support: Support project management by providing periodic status updates and required metrics data. Collaboration & Communication: Be a good team player in an agile environment with excellent communication skills to participate in requirement, design, code, and test reviews. Have a thorough understanding of version control and software quality attributes such as testability, portability, and maintainability. Proactive Leadership: Be dynamic and support management and leads to ensure successful product deliveries. Risk Management: Identify, communicate, and mitigate risks, issues, and opportunities in a timely manner. Basic Qualifications (Required Skills/Experience): Education: Bachelor's or Master's degree in a relevant engineering discipline. Programming Expertise: Solid programming knowledge (12+ years) with C/C++. Object-Oriented Programming: Good understanding of C++ and Object-Oriented Programming (OOP) concepts. Real-Time Systems: Experience with Real-Time Operating Systems (RTOS). Requirements Development: Experience writing and developing software requirements, even with minimal or no existing requirements. Operating Systems: Strong experience with Linux or Unix. API Development: Proficiency in building, integrating with, and supporting Application Program Interfaces (APIs) using a variety of languages, data formats, and data transformations. Agile Methodologies: Experience working in an Agile development model. Systems Thinking: Ability to understand the big picture and the inter-relationships between components of systems and plans, and anticipate future events. Analytical Skills: Skill and ability to collect, organize, synthesize, and analyze data; summarize findings; develop conclusions and and recommendations from appropriate data sources. Full Lifecycle Desire: A strong desire to work in all aspects of the product life cycle development process. Self-Starter & Team Player: An ideal candidate is a self-starter and someone who works well within a team. Preferred Qualifications (Desired Skills/Experience): Open Source Technologies: Strong experience with modern open-source technologies and tools. Architecture Understanding: Strong understanding of system and software architectures. Software Product Development: Strong experience developing software products and scalable applications using a range of software models, including object-oriented and functional design patterns. Driver Development: Strong experience writing software drivers for hardware interfaces on new boards. Embedded Application Programming: Strong Embedded Application Programming experience. Troubleshooting: Ability to quickly diagnose and resolve issues in a lab environment. Platform Tooling: Ability to create tools/functions for platform (glue layer) between the OS and applications. Application Hosting: Experience with application hosting solutions (such as jails, Docker, and Virtual Machines). Testing: Exposure to Python for scripting and automated/functional testing. Exposure to Behavior Driven Development (BDD). Typical Education & Experience: Education/experience typically acquired through advanced education (e.g., Bachelor's Degree) with typically 12+ years of related work experience, or a Master's Degree with 11+ years of experience, or an equivalent combination of education and experience. Relocation: This position does offer relocation within INDIA based on candidate eligibility. Export Control Requirements: This is not an Export Control position. Visa Sponsorship: Employer will not sponsor applicants for employment visa status.