Jobs · Engineering · Iowa

Software Engineer

Actalent · Ames, IA · 1 wk ago
HybridEngineering$45–$60/hrContract

About the role

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.

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.
  • 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.
  • Facilitate cross-team collaboration, including organizing and leading meetings, aligning priorities, and helping resolve conflicts to maintain progress.
  • Show 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.
  • 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.

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.
  • Hands-on experience with embedded C in real-time and embedded environments.
  • 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.
  • 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.

Essential Skills

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

Similar jobs

Software Engineer

BAE Systems, Inc.Fort George G. Meade, MD· 1 wk ago
Engineering$133k–$226k/yrapply on jobs.baesystems.com

Software Engineer

EpicRound Rock, TX· 4 days ago
Information Technologyapply on epic.avature.net

Software Engineer

EpicGarland, TX· 4 days ago
Information Technologyapply on epic.avature.net