Position Responsibilities:
- Decompose Tier 3 System requirements into Tier 4 Software requirements for the identified system features.
- Estimate Software development effort.
- Develop High Level and Low Level Software requirements
- Estimate Code, test software development effort.
- Develop Code, test cases and test procedure for High Level and Low Level Software requirements
- Ensure SW architecture and Design is per the Software requirements.
- Develop Software integration test Scripts to verify the correct implementation of Tier 4 requirements
- Establish traceability from Tier 3 requirements to SW Requirement and Test.
- Perform peer review on System and Software Requirements, Design and Test.
- Support SRR (Systems Requirements Review), PDR (Preliminary Design Reviews), CDR (Critical Design Reviews), TRR (Test Readiness Review) and Formal Qualification.
- Support project management by providing periodic status and required metrics data.
- Be a good team player in the agile team. Candidate should possess excellent communications skills to participate in Requirement/Design/Code/Test reviews, have a thorough understanding of version control and software quality attributes, such as testability, portability and maintainability, and enjoy a self-driven and collaborative development approach.
- Be dynamic and support management and leads to ensure successful product deliveries.
- Identify, communicate and mitigate the Risk, issues and Opportunities on a timely manner.
Employer will not sponsor applicants for employment visa status.
BasicQualifications (Required Skills/Experience):
- A Bachelors degree or higher in Engineering required as a BASIC QUALIFICATION
- The Engineer should have desire to work in all aspects of the product life cycle development process
- The ideal candidate is a self-starter and someone who works well within a team
- Solid programming knowledge (12+ years) with C/C++
- Real Time Operating System (RTOS) experience
- Experience writing and developing software requirements with little or to no existing requirements
- Strong experience with Linux experience
- Proficiency in building, integrating with, and supporting Application Program Interfaces (APIs) using a variety of languages, data formats, and data transformations
- Exposure to Python
- Experience in automated and functional testing is desirable.
- Exposure to BDD (Behavior Driven Development)
- Experience in working in Agile development model
- Experience in Software integration testing in integration Lab Environment.
- 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 recommendations from appropriate data sources.
Desired Skills:
- Strong experience with modern open source technologies and tools
- Strong understanding of system and software architectures
- Strong experience developing software products, scalable applications using a range of software models including Object-oriented and functional design patterns
- Strong experience writing software drivers for hardware interfaces on new boards
- Strong Embedded Application Programming experience
- Ability to quickly diagnose and resolve issues in a lab environment
- Ability to create tools/functions for Platform (glue layer) between the OS and apps
- Experience with application hosting solutions (such as jails, docker and Virtual Machines)
- Agile development experience
Preferred Qualifications (Desired Skills/Experience):
- Bachelor's degree or higher
Typical Education & Experience:
- Education/experience typically acquired through advanced education (e.g. Bachelor) and typically 12 or more years' related work experience or an equivalent combination of education and experience (e.g. Masters + 11 years' related work experience, etc.).
Relocation:
- This position offers relocation.
Education
Bachelor's Degree or Equivalent Required