Software Requirements: Analyze, define, and document comprehensive software requirements based on system specifications and stakeholder needs.
Software Design: Create detailed software designs adhering to organizational process standards and architectural guidelines, ensuring scalability, maintainability, and efficiency.
Software Development: Develop high-quality embedded software using C language, meticulously following coding guidelines, setting up project environments, and leveraging modern development tools.
Code Quality & Documentation: Perform static code analysis, thoroughly comment and document code for clarity and future maintainability, and actively identify and correct coding faults.
Testing & Validation: Create and execute comprehensive test cases according to specifications, ensuring thorough validation of software functionality and performance.
Process Quality: Meet and exceed required process quality goals throughout the software development and testing phases, contributing to continuous improvement.
Software Integration: Integrate developed software modules according to predefined integration plans, ensuring seamless functionality within the larger system.
Integration Testing: Define and execute integration tests, meticulously documenting the results and addressing any integration-related issues.
Quality Assurance: Proactively contribute to achieving and maintaining high process quality goals throughout all stages of software development and testing.
Qualifications:
Bachelor's or Master's degree in Electrical Engineering, Electronics Engineering, Computer Science, or a related field.
Proven experience as an Embedded Software Engineer, with significant focus on Embedded C development within the automotive domain.
Strong proficiency in Embedded C programming and debugging techniques.
Experience with automotive communication protocols (e.g., CAN, LIN, FlexRay, Ethernet).
Familiarity with automotive software development processes (e.g., ASPICE, CMMI).
Experience with real-time operating systems (RTOS) for embedded applications.
Proficiency with version control systems (e.g., Git).
Strong understanding of software development lifecycle (SDLC) and quality assurance methodologies.
Excellent analytical, problem-solving, and communication skills.
Ability to work independently and as part of a collaborative team in a fast-paced environment.