About Wipro:
Wipro Limited (NYSE: WIT, BSE: 507685, NSE: WIPRO) is a leading technology services and consulting company focused on building innovative solutions that address clients' most complex digital transformation needs. We leverage our holistic portfolio of capabilities in consulting, design, engineering, operations, and emerging technologies to help clients realize their boldest ambitions and build future-ready, sustainable businesses. A company recognized globally for its comprehensive portfolio of services, strong commitment to sustainability and good corporate citizenship, we have over 250,000 dedicated employees serving clients across 66 countries. We deliver on the promise of helping our customers, colleagues, and communities thrive in an ever-changing world.
Want more jobs like this?
Get jobs in Palo Alto, CA delivered to your inbox every week.
Job Title: Embedded Software Engineer
Location: Palo Alto, California
Job Description:
Key Responsibilities:
1. DDS Communication establishment on Embedded Systems
- Design and implement Data Distribution Service (DDS) communication layers for real-time data exchange between system components.
- Establish reliable, low-latency, high-throughput data communication between devices, focusing on QNX-based systems running on 8255 PPI hardware.
- Ensure efficient and scalable communication using DDS QoS (Quality of Service) policies for real-time embedded systems.
- Interface with the Intel 8255 PPI to control and communicate with external peripherals, such as I/O devices, ensuring compatibility and efficient data exchange.
- Develop low-level drivers and HAL to facilitate communication between the processor and the 8255 PPI peripheral device.
- Perform system bring-up and debugging of 8255 PPI interfaces for embedded software running on the QNX OS.
- Develop, port, and optimize embedded software for the QNX Real-Time Operating System (RTOS), ensuring compliance with real-time constraints.
- Utilize QNX features such as message passing, process scheduling, and multithreading to ensure efficient system performance.
- Implement embedded applications on QNX using POSIX APIs and QNX's proprietary communication and inter-process communication (IPC) mechanisms.
- Design and implement Hardware Abstraction Layers (HAL) to decouple core application logic from hardware-specific details.
- Enable portability of the software across different platforms by isolating hardware-specific code in HAL modules.
- Use cross-platform libraries (e.g., Boost, Qt, or SDL) for essential tasks like file handling, network communication, and graphics rendering to ensure that the system is modular and portable across different platforms.
- Work with hardware-independent libraries to abstract platform differences, ensuring scalability and ease of future integration.
- Design the system using a modular software architecture that breaks the system into independent components, such as communication, computation, and I/O.
- Implement clean, maintainable, and reusable code by isolating system functionalities into discrete modules, allowing for easy testing and integration.
- Conduct unit testing, integration testing, and system-level testing to validate embedded software components.
- Utilize debugging tools and techniques for real-time systems on QNX, such as QNX Momentics IDE, gdb, and hardware debuggers, to trace and resolve issues in the 8255 and DDS communication stack.
Required Qualifications:
- Bachelor's or Master's degree in Computer Science, Electrical Engineering, or a related field.
- 5+ years of experience in embedded software development, particularly with real-time systems and hardware interfacing.
- Proficiency in programming languages like C, C++, and Python for embedded systems.
- Strong experience with QNX RTOS (message passing, multithreading, memory management, etc.).
- Experience with DDS middleware (e.g., RTI Connext DDS, OpenDDS, Eclipse Cyclone DDS) for real-time communication in distributed systems.
- Deep understanding of Intel 8255 PPI hardware and peripheral interfacing techniques.
- Experience in designing and implementing HAL (Hardware Abstraction Layers) to separate core logic from hardware-specific details.
- Familiarity with cross-platform libraries such as Qt, Boost, or SDL for network communication, graphics, and file handling.
- Strong skills in modular software design, with the ability to break down systems into independent, reusable components.
- Experience in working with communication protocols such as SPI, I2C, and CAN.
- Familiarity with real-time communication protocols and design patterns.
- Experience working in automotive, aerospace, or industrial control systems.
- Knowledge of hardware debugging tools, emulators, and logic analyzers for low-level driver development.
- Experience in developing software that interfaces with DSPs, FPGAs, or other co-processors.
- Familiarity with version control systems like Git and continuous integration practices.
Soft Skills:
- Strong analytical and problem-solving abilities.
- Ability to work independently and as part of a cross-functional team.
- Excellent verbal and written communication skills, particularly in documenting complex technical designs.
- Strong attention to detail and a focus on delivering high-quality, reliable software.
"Wipro is committed to creating an accessible, supportive, and reasonable accommodations to all our applicates with disabilities throughout the recruitment and selection process. Should an applicant require accommodation or a special request due to a disability, Wipro encourages individuals to make their needs known in advance. Requests for accommodation will be considered on an individual basis and in accordance with the requirements of the applicable provincial laws. Wipro is dedicated to ensuring equal opportunities and a barrier-free recruitment process and employment for all qualified candidates".
#LI-AK7
Automotive