Sr Software Engineer (Multiple Positions) (REF261570L)
Bosch
**Company Description**
Robert Bosch LLC seeks Sr Software Engineer (Multiple Positions) at its facility located at 15000 N Haggerty Rd, Plymouth, Michigan 48170. Produce high quality, efficient and maintainable code to implement innovative solutions and integrate on automotive platforms work according to agile methodology (scrum), including performing code reviews, design reviews, testing and writing documentation. Analyze high-level requirements and translate these into detailed specifications and designs. Propose innovative solutions to technical issues and communicate with the team to collaborate accordingly. Write unit test code, structures, and scripts and support the testers with identifying and solving test issues. Engage with product managers, hardware engineers, and stakeholders to understand system requirements and constraints. Architect embedded software systems, balancing performance, power consumption, and memory footprint. Write, test, and maintain high-quality, efficient, and reliable embedded software in C, C++, or assembly. Implement signal processing, control algorithms, or data handling routines based on system requirements. Adapt existing software or firmware to new hardware platforms or across different microcontrollers/SoC architectures. Collaborate in initial hardware bring-up activities, ensuring correct software configuration for hardware components (e.g., processors, sensors, communication interfaces). Develop and integrate low-level device drivers to interface with peripherals like GPIOs, ADCs, DACs, communication interfaces (e.g., UART, SPI, I2C, CAN).Work closely with hardware teams to debug and resolve issues related to signal integrity, timing, and hardware-software interaction. Integrate and manage interactions with various sensors, actuators, displays, and other peripherals. Design and implement multi-threaded, real-time applications using RTOS (e.g., Free RTOS, VxWorks) with strict timing requirements. Optimize CPU usage, scheduling tasks to meet real-time constraints while managing memory, power, and other hardware resources efficiently. Develop and fine-tune interrupt service routines (ISRs) for efficient response to asynchronous events. Use profiling tools and techniques to identify bottlenecks in system performance and implement optimizations. Implement power-saving modes and strategies for battery-operated or low-power systems. Write unit tests for individual software components to ensure correct behavior under various conditions. Validate the interaction between software modules, ensuring they work cohesively as part of the larger system. Perform system-level testing in real-world scenarios to validate the overall performance and robustness of the software. Utilize debuggers (JTAG, ICE), oscilloscopes, logic analyzers, and other tools to identify and resolve issues at the hardware/software boundary. Develop scripts or tools (e.g., Python) for automated testing of embedded systems where applicable. Investigate root causes of system failures, working across both software and hardware domains to implement corrective actions. Create and maintain detailed documentation including software architecture, flow diagrams, and functional descriptions. Ensure that code is properly commented and follows company standards, facilitating future maintenance and debugging. Ensure the software complies with industry-specific standards (e.g., MISRA for automotive, IEC 62304 for medical devices, DO-178 for aerospace). Use Git or similar version control systems to track and manage changes, ensuring collaborative development is synchronized across teams. Write low-level, bare-metal code that runs directly on microcontrollers, ensuring real-time responses to system inputs and conditions. Design and implement custom bootloaders for embedded systems to enable secure, reliable firmware updates. Develop Over-The-Air (OTA) or other mechanisms for firmware updates, ensuring reliability, security, and integrity of the update process. Work closely with hardware, software, QA, and product teams to deliver integrated solutions. REQS: This position requires a bachelor's degree or foreign equivalent in Computer Engineering, Electrical Engineering, Electronic Engineering, Computer Science or a related field. Plus 5 years of experience as a Software Engineer, Senior Software Engineer or an occupation involving embedded software development. Additionally, the applicant must have employment experience with: (1) Specifying and implementing Automotive Diagnostics (Do IP, or Do CAN) in the architecture based on the UDS standard; (2) Configuring and utilizing Vector CANoe or its extensions for simulation, debugging, and verification of embedded automotive systems; (3) Creating, implementing, and testing network communications for automotive ECUs; (4) Integrating secure elements with encrypted firmware-over-the-air (FOTA) updates for firmware integrity verification and secure vehicle access; and (5) Adhering to industry standards like A-SPICE and ISO 26262, ensuring compliance throughout the development lifecycle. Applicants who are interested in this position should apply online at https://www.bosch.us/careers/ , search **[Sr Software Engineer / Reference # -REF261570L** ].
**\#LD-NI**
**Job Description**
**Qualifications** **Additional Information**
**Equal Opportunity Employer, including disability / veterans**
***Bosch adheres to Federal, State, and Local laws regarding drug-testing. Employment is contingent upon the successful completion of a drug screen and background check. Candidates who have been offered the position must pass both screenings before their start date.**
Por favor confirme su dirección de correo electrónico: Send Email