Embedded Software Engineer
BWI Chassis Dynamics (NA) Inc.
Moraine, United States of America
13 days ago
Role details
Contract type
Permanent contract Employment type
Full-time (> 32 hours) Working hours
Regular working hours Languages
English Experience level
IntermediateJob location
Moraine, United States of America
Tech stack
Testing (Software)
Board Bringup
Microsoft Word
Microsoft Excel
Automation of Tests
Unit Testing
AUTomotive Open System Architecture (AUTOSAR)
Bug Tracking Systems
C++
Program Optimization
Software Quality
Code Review
Communications Protocols
Computer Programming
Computer Engineering
Computer Literacy
Software Debugging
Dynamic Program Analysis
Embedded Software
Hardware Interface Design
Python
Microsoft Office
MISRA C (C Programming Language)
Network Protocols
Microsoft PowerPoint
Real-Time Operating Systems
Regression Testing
ISO/IEC 15504
SharePoint
Software Configuration Management
Software Engineering
Software Requirements Analysis
Systems Architecture
System Software
System Testing
Universal Asynchronous Receiver/Transmitter
Scripting (Bash/Python/Go/Ruby)
Enterprise Software Applications
Serial Peripheral Interface
Safety Critical Systems
Software Troubleshooting
Integration Tests
Information Technology
Process Control Systems
Production Code
Software Coding
Software Version Control
Job description
BWI Group is seeking an Embedded Software Engineer is responsible for executing the full embedded software development lifecycle, from requirements and design through coding, testing, and maintenance for microcontroller- and microprocessor-based systems. This role designs and implements efficient, reliable code in C/C++ (and related tools), integrates with hardware, and collaborates with cross-functional teams to deliver robust embedded products on time. JOB RESPONSIBILITIES:
- Design and implement software for embedded devices and systems from requirements through production and deployment.
- Develop, code, test, and debug system software in C/C++ (and other relevant languages) for microcontrollers and microprocessors.
- Collaborate with hardware engineers to define software requirements, interfaces, and integration strategies based on system architecture and constraints.
- Analyze and optimize code and system resources for efficiency, stability, real-time performance, and memory/CPU usage.
- Integrate and validate new product designs, including board bring-up, driver development, and HW/SW integration testing.
- Develop and execute unit, integration, and system tests; use debugging tools and instrumentation to diagnose and resolve issues.
- Review code and design for adherence to coding standards, safety/security requirements, and best practices.
- Support software QA, including defect analysis, regression testing, and continuous improvement of code quality.
- Provide post-production support, including troubleshooting field issues and implementing software updates and patches.
- Prepare and maintain technical documentation such as design specifications, interface descriptions, and user or maintenance notes.
- Stay current with embedded tools, RTOS platforms, communication protocols, and industry trends; recommend and adopt new techniques where appropriate.
- Design AUTOSAR compliant application and basic software for automotive embedded control systems; generate software design specifications to meet customer and internal requirements
- Develop and verify AUTOSAR and MISRA compliant software in accordance with software design specifications.
- Integrate and build software packages from modular code content, verify operation of integrated software to specifications, and release software packages for internal integration and validation testing.
- Lead root cause investigation of software issues that arise from customer and internal bench and vehicle testing.
- Adhere to corporate software process and quality standards and best practices for software development; Comply with ASPICE software process and quality requirements; maintain software quality documentation as required.
- Proactively participate as member of project teams, supporting team members in meeting project objectives and deliverables.
- Implement and document software in accordance with relevant safety, security, and coding standards (for example MISRA C, AUTOSAR, ISO 26262 guidelines)., Ability to define problems, collect data, establish facts, and draw valid conclusions. Ability to interpret an extensive variety of technical instructions and deal with several abstract and concrete variables. Able to read and understand engineering prints/drawings. Good level of analytical skills and interpersonal skills. Ability to work on a team. Ability to guide the efforts of support personnel. Good teambuilding skills. PHYSICAL DEMANDS: The physical demands described here are representative of those that must be met by an employee to successfully perform the functions of this job. Reasonable accommodations may be made to enable individuals with disabilities to perform the essential functions. While performing the duties of this job, the employee is regularly required to walk and to sit; use hands to manipulate objects, tools, or controls; reach with hands and arms. The employee is occasionally required to stand, stoop, kneel, crouch, or crawl; and to talk and hear. The employee must occasionally lift up to 30 pounds. Specific vision abilities include close vision, color vision, peripheral vision, depth perception and the ability to focus.
Requirements
- Bachelor's degree in Computer Engineering, Electrical Engineering, Computer Science, or related field.
- Hands-on experience developing and troubleshooting software on embedded targets.
- Strong programming skills in C and/or C++ for embedded systems.
- Experience with embedded systems design using preemptive, multitasking real-time operating systems (RTOS).
- Familiarity with software configuration management, version control, and defect tracking tools.
- Knowledge of OS concepts, IP/network protocols, and common hardware interfaces (UART, SPI, I2C, CAN, etc.) as appropriate.
- Ability to read schematics and component datasheets and to understand hardware constraints.
- Strong analytical, debugging, and problem-solving skills and attention to detail.
- Good communication skills and ability to work effectively within cross-functional engineering teams.
PREFERRED QUALIFICATIONS:
- 2+ years of embedded software development experience (more for senior roles).
- Experience in one or more domains: automotive ECUs, industrial controls, IoT devices, communications, or safety-critical systems.
- Experience with unit test frameworks, CI/CD pipelines, and static/dynamic analysis tools for embedded code.
- Knowledge of security practices for embedded systems and over-the-air (OTA) update mechanisms.
- Familiarity with scripting languages (for example Python) for test automation and tooling., >50% travel to meet customers and suppliers with day travel to the various manufacturing facilities as required., Ability to write reports, business correspondence, and procedure manuals. Ability to effectively present information and respond to questions from groups of managers, clients, customers, and the general public., Ability to calculate figures and amounts such as discounts, interest, commissions proportions, percentages, area, circumference, and volume. Ability to apply concepts of basic algebra and geometry.