Embedded Software Engineer
: Job Details :


Embedded Software Engineer

United Software Group

Location: Palo Alto,CA, USA

Date: 2024-11-14T20:36:07Z

Job Description:

Hi, 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.
  • 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.
Preferred Qualifications:
  • 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.
Thanks & Regards, Ranjith Kumar Vemula Account Manager Phone: 614-###-#### / 614-###-#### Ext: 261 | Fax: 866-###-#### Email ID: ...@usgrpinc.com
Apply Now!

Similar Jobs (0)