Senior C++ Embedded Engineer
Sai Sreenath - LahariUnited StatesSENIORPosted 10d ago
C++CEmbedded C/C++Object-Oriented ProgrammingData StructuresAlgorithmsEmbedded SystemsMicrocontrollersARMRTOSLinux EmbeddedEmbedded LinuxDevice DriversKernel ProgrammingFirmware DevelopmentBare-Metal ProgrammingInterrupt HandlingMemory ManagementMultithreadingIPCReal-Time SystemsHardware-Software IntegrationUARTSPII2CCANEthernetTCP/IPUSBBootloadersBSPHALGPIOADCDACPWMJTAGGDBUnit TestingIntegration TestingGoogle TestGoogle MockCMakeMakeGitGitHubCross-CompilationStatic Code AnalysisMISRA C/C++Software ArchitectureDesign PatternsPerformance OptimizationMemory ProfilingPower OptimizationAUTOSARISO 26262Technical DocumentationAgileScrumTroubleshootingRoot Cause Analysis
About the Role
We are actively hiring experienced Senior C++ Embedded Engineers for exciting opportunities across the USA. This role requires 8+ years of experience in embedded systems development.
Key Responsibilities
• Design and develop embedded systems using C and C++
• Implement object-oriented programming principles in embedded environments
• Develop and debug firmware for microcontrollers and microprocessors
• Work with ARM-based microcontrollers and processors
• Develop device drivers and kernel programming for embedded Linux systems
• Implement real-time operating systems and design real-time systems
• Integrate hardware and software components
• Develop communication protocols including UART, SPI, I2C, CAN, Ethernet, and USB
• Perform debugging using JTAG, GDB, and hardware debugging tools
• Conduct unit testing and integration testing
• Configure cross-compilation and toolchain
• Ensure code quality and compliance with MISRA C/C++ standards
• Optimize performance, memory, and power consumption
• Support production, troubleshoot issues, and perform root cause analysis
Requirements
• 8+ years of experience with C and C++ programming
• Strong experience in embedded C/C++ development
• Expertise in object-oriented programming and design patterns
• Knowledge of data structures and algorithms
• Experience with embedded systems design and development
• Familiarity with microcontrollers and microprocessors
• Experience with ARM-based microcontrollers and processors
• Knowledge of RTOS and real-time system design
• Experience with Linux embedded systems and embedded Linux development
• Skills in device drivers and kernel programming
• Experience with firmware development and debugging
• Knowledge of bare-metal programming and interrupt handling
• Understanding of memory management and optimization
• Experience with multithreading and inter-process communication
• Familiarity with communication protocols – UART, SPI, I2C, CAN, Ethernet, TCP/IP, USB
• Experience with bootloaders and firmware updates
• Knowledge of board support packages (BSP) and hardware abstraction layer (HAL)
• Skills in GPIO, ADC, DAC, and PWM programming
• Experience with low-level hardware programming
• Proficiency in debugging using JTAG and GDB
• Experience with oscilloscopes, logic analyzers, and hardware debugging tools
• Knowledge of unit testing and integration testing
• Familiarity with Google Test and Google Mock
• Experience with CMake and Make build systems
• Proficiency in Git, GitHub, and version control
• Knowledge of cross-compilation and toolchain configuration
• Experience with static code analysis and code quality tools
• Familiarity with MISRA C/C++ coding standards
• Understanding of embedded software architecture and design patterns
• Skills in performance optimization and memory profiling
• Knowledge of power and resource optimization
• Experience with AUTOSAR (preferred)
• Understanding of functional safety standards (ISO 26262, preferred)
• Ability to perform requirements analysis and technical documentation
• Experience with Agile and Scrum development methodologies
• Skills in production support, troubleshooting, and root cause analysis
• Experience with firmware integration, testing, and maintenance