Find Jobs
Find Jobs Near You – Available Work in Your Location
Skip to job details
RE
RFA Engineering
Embedded Software Developer C++
Career Insights for Embedded Software Engineer
See where this job fits in the broader career landscape. Knowing your career path helps you see what's possible from here.
Scorecard
Based on Illinois data
Review key factors to help you decide if this role fits your goals. How is this calculated?
What they do
An Embedded Software Engineer designs or improves the embedded computer software that supports specialized hardware for certain products, devices or systems. Oversees the entire software development process. Analyzes customer or user needs, designs programs, writes code or instructs computer programmers, tests design, and documents programs. May assist with upgrades or maintenance.
$112,640 / year median in Illinois
+7% projected growth
Job Description
RFA Engineering ( www.rfamec.com ) is an engineering service provider dedicated to delivering our clients with timely engineering support and expertise. We are seeking an entry-level to experienced candidate to become an integral part of our engineering team. The selected candidate will work with an experienced engineering staff using state-of-the-art engineering tools & processes. This position will operate onsite at our customer's world-class engineering and manufacturing facility. This is a full-time position with a full benefit package listed below that includes opportunities for professional growth, direct hire by our customers, and additional opportunities within our own organization. Embedded Software Developer C++ The main function of this position is to apply the principles of computer science and mathematical analysis to the design, development, testing, and evaluation of the embedded software and systems that make computers work. A typical embedded software engineer researches, designs, develops and tests operating systems-level software, compilers, and network distribution software for medical, industrial, military, communications, aerospace, business, scientific and general computing applications. Responsibilities Design, develop, and implement embedded software solutions in C++ for embedded devices and systems, supporting the full product lifecycle from requirements definition through production deployment and ongoing product support. Develop and maintain firmware and software architectures for real-time embedded applications, ensuring compliance with performance, reliability, and quality requirements. Analyze, debug, and optimize software performance to improve system efficiency, stability, scalability, and resource utilization across embedded platforms. Collaborate with cross-functional engineering teams to define software requirements, develop technical specifications, and integrate software with hardware components and communication interfaces. Design, implement, and maintain logical and physical database structures, data management solutions, and associated software interfaces to support application functionality and system performance. Perform software verification, validation, troubleshooting, and root-cause analysis to identify and resolve defects throughout the development process. Create and maintain technical documentation, including software design descriptions, test procedures, interface specifications, and user documentation. Evaluate project requirements, assess technical feasibility, and provide development effort, timeline, and cost estimates to support project planning and execution. Participate in code reviews and continuous improvement initiatives to ensure adherence to software development best practices, coding standards, and quality processes. Support product launch activities and provide ongoing enhancements, maintenance, and technical support for commercialized embedded software products. Develop and maintain firmware and software architectures for real-time embedded applications, ensuring compliance with performance, reliability, and quality requirements. Analyze, debug, and optimize software performance to improve system efficiency, stability, scalability, and resource utilization across embedded platforms. Collaborate with cross-functional engineering teams to define software requirements, develop technical specifications, and integrate software with hardware components and communication interfaces. Design, implement, and maintain logical and physical database structures, data management solutions, and associated software interfaces to support application functionality and system performance. Perform software verification, validation, troubleshooting, and root-cause analysis to identify and resolve defects throughout the development process. Create and maintain technical documentation, including software design descriptions, test procedures, interface specifications, and user documentation. Evaluate project requirements, assess technical feasibility, and provide development effort, timeline, and cost estimates to support project planning and execution. Participate in code reviews and continuous improvement initiatives to ensure adherence to software development best practices, coding standards, and quality processes. Support product launch activities and provide ongoing enhancements, maintenance, and technical support for commercialized embedded software products. Requirements BS in Software, Computer, Electrical, or other relevant Engineering degree. Experience with C or C++ development. Strong verbal and written communication skills. Self-motivated, quick learner, with an any-problem-can-be-solved attitude. Good organizational and time management skills. Ability to identify needed actions and act to resolve issues. Ability to communicate technical information effectively. Ability to thrive in a team environment. Must have a valid Driver's License. Desired Attributes Strong verbal and written communication skills with the ability to effectively collaborate across engineering, manufacturing, and cross-functional teams. Proven analytical, troubleshooting, and problem-solving abilities with a customer-focused approach to identifying and resolving technical issues. Ability to read and interpret electrical schematics, circuit diagrams, component datasheets, and hardware interface documentation. Understanding of the complete Software Development Lifecycle (SDLC), including requirements gathering, system analysis, software design, development, testing, deployment, and maintenance. Experience debugging embedded software and hardware issues, performing root-cause analysis, and implementing corrective actions to improve system reliability. Knowledge of computer hardware architectures, microcontrollers, embedded systems, real-time operating systems (RTOS), and peripheral interfaces. Strong programming experience in C and/or C++ , including object-oriented design principles, data structures, memory management, and embedded software development best practices. Familiarity with embedded development tools, IDEs, debuggers, version control systems (Git), and software configuration management processes. Experience developing, maintaining, or interacting with databases and software applications utilizing technologies such as SQL , Visual Basic, or similar programming languages and development environments. Ability to create and maintain software design documentation, test plans, technical specifications, and validation reports. Knowledge of communication protocols such as CAN, UART, SPI, I2C, Ethernet, or similar embedded networking technologies is preferred. Experience with software testing, verification, validation, and continuous improvement methodologies in embedded product development environments. Visa sponsorship is NOT available for this position.