Job Title: Software EngineerJob Description
This role leads the design, implementation, and testing of innovative software solutions that exceed customer needs, with a strong focus on Linux-based embedded systems and modern C++ development. You will act as a technical leader, mentoring less experienced engineers, championing continuous improvement and agile practices, and modeling best practices in software design, architecture, and code quality. The position requires a deep understanding of software engineering principles, automated testing, and development tooling, as well as the ability to collaborate across teams and clearly communicate technical concepts to stakeholders.
Responsibilities
Lead the design, implementation, and testing of robust software solutions that meet and exceed customer requirements.
Mentor and guide less experienced team members, providing technical assistance, constructive feedback, and ongoing support across teams.
Serve as a technical leader in discussions and initiatives to improve software solutions, development processes, and engineering practices.
Champion continuous improvement, agile practices, and change initiatives by identifying issues and resolving them using root cause analysis or similar methods.
Model best practices in code quality and actively lead code reviews to foster a culture of clean, maintainable, and well-documented code.
Facilitate cross-team collaboration, including organizing and leading meetings, aligning priorities, and helping resolve conflicts to maintain progress.
Create, update, and maintain technical documentation, development processes, and coding standards to ensure clarity and consistency.
Deliver high-quality, working code and effectively demonstrate product features to stakeholders and broader internal audiences.
Actively participate in retrospectives, showing openness to feedback and a commitment to continuous team and personal growth.
Develop and maintain a comprehensive understanding of the products and their impact in the field to inform design and implementation decisions.
Apply software design and architecture principles, including SOLID and clean architecture concepts, to build scalable and maintainable systems.
Use automated testing frameworks and test-driven development practices to ensure reliability and stability of software components.
Employ debugging and profiling tools to diagnose complex issues and drive them to resolution.
Utilize continuous integration tools and workflows to maintain a high level of build and release quality.
Essential Skills
Bachelor's degree or higher in Computer Science, Software Engineering, or a related engineering discipline.
5+ years of product development experience focused on software products.
5+ years of professional experience and strong understanding of C++.
Strong professional experience with Linux and embedded systems.
Proficiency in C and C++ for systems and application-level development.
Hands-on experience with embedded C in real-time and embedded environments.
Solid understanding of real-time operating systems (RTOS) concepts.
Strong software engineering fundamentals, including requirements analysis, design, implementation, testing, and maintenance.
Experience with software design and architecture, including applying design principles such as SOLID and clean or pragmatic architecture.
Proficiency with test-driven development and design, continuous integration, and Scrum or Agile development methods.
Experience with clean coding practices, refactoring, and writing clear code specifications.
Practical experience with Git-based workflows and tools such as GitLab.
Experience with build and integration tools such as CMake and Jenkins.
Familiarity with containerization and build systems such as Docker and Yocto.
Experience with package and artifact management tools such as Conan and Artifactory.
Hands-on experience with automated testing frameworks, for example gtest and QML testing frameworks.
Proficiency in debugging with tools such as gdb or lldb and using profiling tools to optimize performance.
Ability to perform structured root cause analysis to identify and resolve complex issues.
Scripting experience with Bash and configuration using YAML.
Additional Skills & Qualifications
Experience with Qt Designer and QML for user interface development.
Understanding of UI/UX design fundamentals, including visual design, interaction design, prototyping, and usability testing.
Exposure to or experience with vision processing and machine learning concepts or applications.
Experience with robotics and robotic path planning.
Familiarity with geospatial functions and concepts.
Ability to read and interpret electrical schematics and pinouts.
Strong foundations in mathematical concepts relevant to software engineering, algorithms, and problem solving.
Experience with Perforce as an additional version control system.
Comfort working in cross-functional, collaborative teams and presenting technical topics to varied audiences.
Work Environment
This is an office-based role supporting software development activities. You will work in a collaborative engineering environment that emphasizes agile practices, continuous integration, and automated testing. The team relies on modern tools and technologies, including Linux-based development environments, embedded hardware platforms, GitLab, Perforce, Jenkins, Artifactory, Docker, Yocto, CMake, Conan, and a variety of debugging and profiling tools. Work typically involves close collaboration with other software engineers and cross-functional stakeholders, participation in design discussions, code reviews, and regular agile ceremonies such as stand-ups and retrospectives. The environment encourages knowledge sharing, continuous learning, and active contribution to improving development processes and standards.
Job Type & Location
This is a Contract to Hire position based out of Ames, IA.
Pay and Benefits
The pay range for this position is $45.00 - $60.00/hr.
Eligibility requirements apply to some benefits and may depend on your job classification and length of employment. Benefits are subject to change and may be subject to specific elections, plan, or program terms. If eligible, the benefits available for this temporary role may include the following: - Medical, dental & vision - Critical Illness, Accident, and Hospital - 401(k) Retirement Plan - Pre-tax and Roth post-tax contributions available - Life Insurance (Voluntary Life & AD&D for the employee and dependents) - Short and long-term disability - Health Spending Account (HSA) - Transportation benefits - Employee Assistance Program - Time Off/Leave (PTO, Vacation or Sick Leave)
Workplace Type
This is a hybrid position in Ames,IA.
Application Deadline
This position is anticipated to close on Jun 15, 2026.
About Actalent
Actalent is a global leader in engineering and sciences services and talent solutions. We help visionary companies advance their engineering and science initiatives through access to specialized experts who drive scale, innovation and speed to market. With a network of almost 30,000 consultants and more than 4,500 clients across the U.S., Canada, Asia and Europe, Actalent serves many of the Fortune 500.
The company is an equal opportunity employer and will consider all applications without regard to race, sex, age, color, religion, national origin, veteran status, disability, sexual orientation, gender identity, genetic information or any characteristic protected by law.
If you would like to request a reasonable accommodation, such as the modification or adjustment of the job application process or interviewing process due to a disability, please email actalentaccommodation@actalentservices.com for other accommodation options.
San Francisco Fair Chance Ordinance: Pursuant to the San Francisco Fair Chance Ordinance, for all positions located in the city and county of San Francisco, we will consider for employment qualified applicants with arrest and conviction records.
Massachusetts Lie Detector: It is unlawful in Massachusetts to require or administer a lie detector test as a condition of employment or continued employment. An employer who violates this law shall be subject to criminal penalties and civil liability.
Use of Artificial Intelligence (AI): We may use Artificial Intelligence (AI) to support parts of our hiring process, including sourcing, screening, and evaluating candidates. AI helps assess applications and qualifications, but final decisions are made by our hiring team. By applying, you acknowledge and agree that your application may be reviewed using AI tools.