Software Engineer

Actalent
2 days ago

Role details

Contract type
Temporary to permanent
Employment type
Full-time (> 32 hours)
Working hours
Regular working hours
Languages
English
Experience level
Senior
Compensation
$ 125K

Job location

Tech stack

Clean Code Principles
Adobe InDesign
Agile Methodologies
Automation of Tests
Bash
C++
CMake
Profiling
Software Quality
Code Review
Continuous Integration
Software Debugging
Linux
Embedded C
Design of User Interfaces
Interaction Design
Machine Learning
Motion Planning
Perforce
Scrum
Software Architecture
Qt Modeling Language (QML)
QT
Real-Time Operating Systems
Release Management
Software Engineering
Software Systems
YAML
Scripting (Bash/Python/Go/Ruby)
Test Driven Development
Gitlab
Containerization
Yocto
Git Flow
Information Technology
Integration Frameworks
Build Tools
Code Restructuring
Software Version Control
Docker
Jenkins
Artifactory

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., * 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., 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.

Requirements

  • 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.

Benefits & conditions

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

About the company

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.

Apply for this position