Software Engineer
Role details
Job location
Tech stack
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, 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.
- Working on display and touchscreen systems
- Writing test cases and test procedures
- 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 environment encourages knowledge sharing, continuous learning, and active contribution to improving development processes and standards. This is a 2-4 months contract based in Cedar Rapids
Requirements
Tooling Robotics Perforce Debugging Usability Visionary Innovation Algorithms Embedded C QT Creator Mathematics Code Review Scalability Reliability Prototyping Test Design Communication Collaboration Visual Design Version Control Test Automation Software Design Computer Science Machine Learning Embedded Systems Agile Methodology Interaction Design Software Solutions Workflow Management Root Cause Analysis User Interface (UI) Software Engineering Software Development Constructive Feedback Requirements Analysis Sprint Retrospectives Continuous Integration Continuous Development New Product Development Artificial Intelligence Technical Documentation C (Programming Language) Engineering Design Process C++ (Programming Language) User Interface (UI) Design Software Quality (SQA/SQC) Qt Modeling Language (QML) User Experience (UX) Design Real-Time Operating Systems Scrum (Software Development) Test-Driven Development (TDD) Continuous Improvement Process Design Elements And Principles DO-178B/C (Software Considerations in Airborne Systems and Equipment Certification), * Bachelor's degree or higher in Computer Science, Software Engineering, or a related engineering discipline.
- 2+ years of product development experience focused on software products.
- 2+ years of professional experience and strong understanding of C++.
- Minimum 2 years of DO-178 experience
- 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.
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., Cedar Rapids, IA*Remote
Linux Tooling Robotics Perforce Debugging Usability Visionary Innovation Algorithms Embedded C QT Creator Mathematics Code Review Scalability Reliability Prototyping Test Design Communication Collaboration Visual Design Version Control Test Automation Software Design Computer Science Machine Learning Embedded Systems Agile Methodology Interaction Design Software Solutions Workflow Management Root Cause Analysis User Interface (UI) Software Engineering Software Development Constructive Feedback Requirements Analysis Sprint Retrospectives Continuous Integration Continuous Development New Product Development Artificial Intelligence Technical Documentation C (Programming Language) Engineering Design Process C++ (Programming Language) User Interface (UI) Design Software Quality (SQA/SQC) Qt Modeling Language (QML) User Experience (UX) Design Real-Time Operating Systems Scrum (Software Development) Test-Driven Development (TDD) Continuous Improvement Process Design Elements And Principles DO-178B/C (Software Considerations in Airborne Systems and Equipment Certification) +0
Google IT Automation with Python
Benefits & conditions
This is a Contract to Hire position based out of Cedar Rapids, 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