Loading Image
   Saving...
   Loading...
  Loading...

Embedded Software Architect

Embedded Software Architect

CMC Electronics (CMC) has earned an international reputation for innovation and excellence in the design, manufacturing and support of electronic products for the aviation markets. CMC is focused on delivering innovative cockpit and avionics system integration solutions to commercial and military customers worldwide.

Its principal facilities are located in Montreal, Quebec; Ottawa, Ontario; Chicago, Illinois; and Reston, Virginia. CMC is a major supplier to the aerospace and high-technology industries, airlines, military agencies and government customers worldwide.  This position is loacted in Sugar Grove, IL.

CMC is seeking an experienced Embedded Software Architect to lead the design and development of cutting-edge embedded systems for aerospace applications. The ideal candidate will have strong expertise in real-time software development, multicore processing, GPU-based systems, and safety-critical environments, combined with a passion for innovation in the aerospace industry. The work shall be performed in conformance with the product roadmap, standards and processes applicable to the aeronautical industry.

As Embedded Software Architect, your key responsibilities include:

Architectural Design:

  • Design and define software architecture for embedded systems in aerospace applications, adhering to safety-critical standards (e.g., DO-178C, DO-330).
  • Integrate multicore processors and GPU-based systems to enhance performance, real-time graphics processing, and computational capabilities.
  • Develop technical specifications, architectural documentation, and high-level system diagrams.

Safety and Compliance:

  • Ensure all software architectures meet aerospace safety and certification requirements, including functional safety, redundancy, and fail-safe mechanisms.
  • Work with regulatory bodies and certification teams to align the architectures with industry standards (e.g., ARINC 653, RTCA/DO-254).

Technical Leadership:

  • Evaluate and select appropriate real-time operating systems (RTOS), microcontrollers, GPUs and software frameworks for aerospace systems.
  • Identify and integrate best practices for secure and reliable software development in the aerospace sector.

Software Development:

  • Oversee the design and implementation of critical software components, including device drivers, GPU frameworks, communication protocols, and application layers.
  • Collaborate with hardware design teams to ensure seamless hardware-software integration, leveraging GPU and multicore architecture advantages.

Testing and Validation:

  • Define and implement rigorous testing strategies, including simulations, hardware-in-the-loop (HIL) testing, software-in-the-loop (SIL) testing, and multicore/GPU performance validations.
  • Lead debugging efforts for hardware-software interactions, GPU driver optimizations, and system anomalies.

Collaboration:

  • Work closely with multidisciplinary teams, including avionics engineers, systems architects, and product managers, to translate requirements into robust software solutions.
  • Participate in design reviews and technical audits.

Mentorship and Leadership:

  • Provide technical guidance and mentorship to software development teams.
  • Foster a culture of innovation, collaboration, and adherence to aerospace best practices.

Qualifications:

Education:

  • Bachelor’s or Master’s degree in Computer Science, Electrical Engineering, Aerospace Engineering, or a related field.

Experience:

  • Minimum 12 years of experience in embedded software development and architecture, preferably in the aerospace or defense industry.
  • Proven experience with real-time and safety-critical software development.
  • Deep understanding of multicore processors and GPU systems, including task scheduling, resource allocation, and optimization. 

Technical Skills:

  • Proficiency in programming languages such as C, C++, and Python
  • In-depth knowledge of RTOS (e.g., GreenHills, VxWorks, FreeRTOS) and avionics software architectures.
  • Expertise in multicore and GPU-based systems, including synchronization, workload distribution, and performance tuning.
  • Knowledge of Graphical Processor Unit (GPU) architectures.
  • Strong knowledge of communication protocols (e.g., ARINC 429, MIL-STD-1553, CAN).
  • Experience with graphics frameworks and APIs such as OpenGL, GLX and X Windows.
  • Knowledge of CPU architectures and common peripherals (RAM, Flash, EEPROM, MMU, PAMU, serial ports, SPI interfaces, I2C, PCIe, etc.).
  • Good understanding of the V-model for development, and of the requirement-code and requirement-test traceability principles.
  • Familiarity with avionics systems, flight control systems, and navigation systems.
  • Skilled with debugging tools, simulators, and testing equipment.
  • Experience with model-based design tools (e.g., MATLAB/Simulink, SCADE) is a plus.

Compliance and Standards:

  • Thorough knowledge of aerospace standards such as DO-178C, DO-254, ARINC 653, and ISO 26262.
  • Experience with certification processes for airborne software systems.

Soft Skills:

  • Strong problem-solving and analytical abilities.
  • Excellent communication and interpersonal skills.
  • Leadership and mentoring capabilities.

Preferred Qualifications:

  • Experience with secure software development practices for avionics systems.
  • Knowledge of emerging technologies in aerospace, such as UAVs and autonomous systems.
  • Certifications such as DO-178C Practitioner or equivalent.