What are the responsibilities and job description for the Embedded Software Engineer position at United Software Group?
Hope you are doing well.
Job Title : Embedded Software Engineer
Location : Palo Alto, California
Duration : Fulltime
Job Description :
Key Responsibilities :
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.
Development on 8255 PPI Hardware
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.
QNX Operating System
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.
Hardware Abstraction Layer (HAL) Design
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.
Cross-Platform Development
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.
Modular Architecture
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.
Testing & Debugging
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.
Keep a pulse on the job market with advanced job matching technology.
If your compensation planning software is too rigid to deploy winning incentive strategies, it’s time to find an adaptable solution.
Compensation Planning
Enhance your organization's compensation strategy with salary data sets that HR and team managers can use to pay your staff right.
Surveys & Data Sets
What is the career path for a Embedded Software Engineer?
Sign up to receive alerts about other jobs on the Embedded Software Engineer career path by checking the boxes next to the positions that interest you.