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.
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.
Pay Range: $75,000-$115,000 – Commensurate with experience
About RFA Engineering
RFA Engineering has provided product development and engineering services to industry leading customers since 1943. Our primary focus is the development of off highway equipment including agricultural, construction, mining, recreational, industrial, and special machines. Our work includes concept development, product design, documentation, problem-solving, simulation, optimization, and testing of components, systems and complete machines. Our engineering staff is located at our Engineering Center in Minneapolis, branch office in Dubuque, IA, and at numerous customer sites throughout the U.S.
Competitive Benefits
- Health and Dental Insurance
- Health Savings Account
- TelaDoc: Virtual Health Care
- Vision Insurance
- Company Paid / Supplemental Life Insurance
- Company Paid Long-Term Disability
- Supplemental Short-Term Disability
- Retirement Savings Account (Traditional 401k & Roth 401k)
- Flexible Spending Plan Dependent Care
- Bonus Plan (Exempt Employees Only)
- Paid Time Off (PTO)
- Paid Holidays
- Bereavement Leave
- Employee Assistance Programs (EAP)
- Education Assistance
Equal Opportunity and Veteran Friendly
#ZR
Qualifications Skills Required Soft - LIN Bus Novice Soft - CAN Bus Some Knowledge Soft - Agile Some Knowledge Soft Lang - C Intermediate Behaviors Preferred Team Player: Works well as a member of a group Detail Oriented: Capable of carrying out a given task with all details necessary to get the task done well Education Preferred Bachelors of Science or better. Bachelors of Science or better. Bachelors of Science or better. Bachelors of Science or better. Equal Opportunity EmployerThis employer is required to notify all applicants of their rights pursuant to federal employment laws. For further information, please review the Know Your Rights notice from the Department of Labor.
Skills Required
- Bachelor of Science degree in Software, Computer, Electrical, or another relevant engineering discipline
- Experience with C or C++ development
- Strong verbal and written communication skills
- Self-motivated, quick learner with a problem-solving attitude
- Good organizational and time-management skills
- Ability to identify necessary actions and resolve issues
- Ability to communicate technical information effectively
- Ability to work effectively in a team environment
- Valid driver's license
- Ability to collaborate across engineering, manufacturing, and cross-functional teams
- Analytical, troubleshooting, and problem-solving abilities
- Ability to read electrical schematics, circuit diagrams, component datasheets, and hardware interface documentation
- Understanding of the software development lifecycle
- Experience debugging embedded software and hardware issues and performing root-cause analysis
- Knowledge of computer hardware architectures, microcontrollers, embedded systems, real-time operating systems, and peripheral interfaces
- Strong C and/or C++ programming experience, including object-oriented design, data structures, memory management, and embedded development practices
- Familiarity with embedded development tools, IDEs, debuggers, Git, and software configuration management
- Experience with databases and software applications using SQL, Visual Basic, or similar technologies
- Ability to create software design documentation, test plans, technical specifications, and validation reports
- Knowledge of CAN, UART, SPI, I2C, Ethernet, LIN Bus, or similar communication protocols
- Experience with software testing, verification, validation, and continuous improvement methodologies
What We Do
RFA serves 100's of clients ranging in size from Fortune 500 to entrepreneurial start-ups. We deliver engineering services from our Engineering Center in Eden Prairie, MN and at our client’s own facilities. Regardless of the manner which we deliver services, our goal is to please our clients, through consistent value of services which are aligned to the standards of our clients. We strive to work as a transparent extension of our client’s own engineering staff. We work in all areas of mechanical, software and electrical design, including off-highway mobile equipment and mechanical power transmission, consumer, recreational, industrial, medical products and one-of-a-kind special manufacturing machines. To see a complete listing of our open positions, please go to http://www.rfamec.com/careers/career-opportunities.html









