Programming.com · 1 hour ago
Senior Diagnostic Software Engineer
Programming.com is seeking an experienced Senior Diagnostic Software Engineer with a strong background in real-time embedded systems. The role involves designing, developing, and debugging diagnostic and control software for performance-critical embedded platforms.
Responsibilities
Design, develop, and maintain diagnostic and control software for embedded real-time systems
Develop firmware on STM32 microcontrollers using bare-metal and lightweight RTOS architectures
Implement and tune PID control loops for real-time control applications
Write efficient, reliable, and maintainable C/C++ code for resource-constrained environments
Debug complex real-time issues using JTAG/SWD, logic analyzers, and oscilloscopes
Optimize system performance with respect to timing, memory, and CPU utilization
Collaborate with hardware, systems, and test teams to integrate and validate software
Support bring-up, validation, and diagnostics during development and production phases
Review code, enforce best practices, and contribute to software architecture decisions
Qualification
Required
Strong experience in embedded software development
Strong hands-on experience with STM32 microcontrollers
Proven experience working with lightweight RTOS (e.g., FreeRTOS or similar)
Solid understanding and implementation experience with PID control algorithms
Excellent proficiency in C and C++ (embedded-focused, not application-level only)
Strong knowledge of real-time systems, task scheduling, interrupts, and concurrency
Experience with embedded communication protocols (SPI, I2C, UART, CAN, etc.)
Ability to debug low-level firmware and hardware–software interaction issues
Familiarity with version control systems (Git) and embedded build systems