Find Jobs
Find Jobs Near You – Available Work in Your Location
Skip to job details
A
Actalent
Software Engineer
Career Insights for Software Developer / 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 Iowa data
Review key factors to help you decide if this role fits your goals. How is this calculated?
What they do
A Software Developer or Engineer designs or improves computer software. 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. May specialize in the design of computer applications or computer systems.
$114,158 / year median in Iowa
+9% projected growth
Job Description
Job Title:
Software Engineer Job 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.