Software Engineer
Role details
Job location
Tech stack
Job description
This role focuses on designing, developing, and maintaining embedded software and operating system components for advanced medical device products. You will help establish a new operating systems lifecycle management team, define its processes and goals, and drive projects from concept through release. The position combines hands-on software development, advanced problem solving, and cross-functional collaboration to ensure high-quality, compliant solutions that meet user needs and system requirements., * Conduct and design advanced prototyping and testing activities to validate concepts, components, and subsystems.
- Perform advanced problem solving by identifying potential solutions and evaluating them against component and subsystem requirements.
- Conduct and design research and studies that support advanced product and software design decisions.
- Translate user needs into clear design inputs and specifications, and produce advanced component- and subsystem-level designs.
- Analyze and correct complex product design issues using independent judgment and structured engineering methods.
- Independently balance design tradeoffs while designing components of the overall system, ensuring performance, reliability, and maintainability.
- Develop and design software systems in accordance with defined requirements and architecture.
- Design, develop, modify, evaluate, and verify software components for medical devices.
- Estimate development time and resources for code implementation to support project planning and scheduling.
- Generate, review, and maintain project documentation, including requirements, design, architecture, defect reports, and test documentation.
- Apply sound design principles, coding standards, and best practices during code reviews and daily development work.
- Work cooperatively with R&D, Quality, Manufacturing, Regulatory, Clinical, Marketing, and Project Management as a key member and leader within project teams.
- Support and execute segments of complex product development to advance projects through the design, development, and launch phases.
- Contribute to product development from initial concept through release, ensuring alignment with business and technical objectives.
- Identify and support the creation of, or improvements to, procedures, policies, processes, systems, and technologies related to software and operating system lifecycle management.
- Build strong working relationships and influence across engineering groups to drive alignment and successful project outcomes.
- Participate in and support Yocto-based operating system maintenance projects, including updates, patches, and lifecycle management.
- Perform Linux driver development and kernel debugging to support hardware integration and system stability.
- Use tools for static and dynamic analysis, memory management, and code coverage to improve software quality and reliability.
- Demonstrate passion, energy, and drive to deliver high-quality results that meet project and business priorities., This is a hybrid role within a focused team of approximately 8-10 engineers. You will collaborate closely with global teams, including colleagues based in India and Germany, requiring effective remote communication and coordination across time zones. The work involves modern software development tools, including integrated development environments, static and dynamic analysis tools, memory management and code coverage tools, and application lifecycle management and traceability systems. You will work extensively with Linux-based environments, Yocto build systems, and Git-based source control, as well as CI/CD tooling. The environment emphasizes collaboration, high-quality engineering practices, and continuous improvement of processes and technology to support the full lifecycle of operating systems and embedded software for medical devices., Google IT Automation with Python Software Engineer Actalent Portage, MI*Remote JIRA Linux CI/CD MATLAB Gitlab Debugging Visionary Innovation Traceability Test Automation Defect Tracking Embedded Testing Operating Systems Embedded Software Defect Management Development Testing Integration Testing Lifecycle Management Test Execution Engine Electrical Engineering Artificial Intelligence C (Programming Language) C++ (Programming Language) Critical Illness Insurance Python (Programming Language) Systems Development Life Cycle Enterprise Application Integration +0
Requirements
CI/CD MATLAB Gitlab Tooling Planning Research Marketing Scripting Visionary Leadership Innovation Code Review Reliability Prototyping Coordinating Traceability Communication Code Coverage Product Design Version Control Problem Solving Medical Devices Software Design Design Software Design Research Project Planning Computer Science Hardware Support Kernel Debuggers Operating Systems Embedded Software Memory Management Project Management Influencing Skills Software Engineering Software Development Lifecycle Management Project Documentation New Product Development Artificial Intelligence C (Programming Language) Dynamic Program Analysis C++ (Programming Language) Critical Illness Insurance Software Quality (SQA/SQC) Git (Version Control System) Python (Programming Language) Continuous Improvement Process Cross-Functional Collaboration Systems Development Life Cycle, * Bachelor's degree in Software Engineering, Computer Science, or a related discipline.
- 4+ years of professional software development experience.
- Strong programming skills in C and C++ for embedded or systems-level development.
- Proficiency in Python and Matlab for scripting, analysis, and tooling.
- Hands-on experience with Yocto-based maintenance projects for operating systems.
- Experience with Linux driver development and kernel debugging.
- Ability to design, develop, modify, evaluate, and verify software components, preferably for complex or safety-critical systems.
- Experience translating user needs into design inputs and detailed specifications.
- Demonstrated ability to conduct advanced prototyping, testing, and research to support product design.
- Proficiency with integrated development environments (IDEs) for software projects.
- Knowledge of tools for static and dynamic analysis, memory management, and code coverage, and the techniques to apply them effectively.
- Understanding of Software Development Life Cycle (SDLC) processes.
- Ability to create accurate estimates for code implementation time and resources for assigned tasks and projects.
- Familiarity with application lifecycle management and traceability tools.
- Knowledge of regulatory and compliance standards as they apply to the software development life cycle, particularly in a regulated environment.
- Strong problem-solving skills with the ability to analyze and correct complex design issues independently.
- Proven ability to work effectively in cross-functional teams and collaborate with global stakeholders.
Additional Skills & Qualifications
- Familiarity with requirements and traceability tools such as JAMA or DOORS.
- Familiarity with GitLab and CI/CD pipelines and concepts.
- Deeper understanding of SDLC and verification processes in regulated industries, such as medical devices.
- Experience contributing to or defining processes, procedures, and best practices for new or growing engineering teams.
- Ability to balance design tradeoffs and make sound engineering decisions under competing constraints.
- Strong communication skills to clearly document requirements, designs, and test results, and to collaborate with global teams.
- Experience working on operating systems lifecycle management, including planning, updates, and long-term maintenance, is highly beneficial., Portage, MI*Remote Linux CI/CD MATLAB Gitlab Tooling Planning Research Marketing Scripting Visionary Leadership Innovation Code Review Reliability Prototyping Coordinating Traceability Communication Code Coverage Product Design Version Control Problem Solving Medical Devices Software Design Design Software Design Research Project Planning Computer Science Hardware Support Kernel Debuggers Operating Systems Embedded Software Memory Management Project Management Influencing Skills Software Engineering Software Development Lifecycle Management Project Documentation New Product Development Artificial Intelligence C (Programming Language) Dynamic Program Analysis C++ (Programming Language) Critical Illness Insurance Software Quality (SQA/SQC) Git (Version Control System) Python (Programming Language) Continuous Improvement Process Cross-Functional Collaboration Systems Development Life Cycle Software Development Life Cycle Application Lifecycle Management Integrated Development Environments +0
Benefits & conditions
This is a Contract position based out of Portage, MI. Pay and Benefits
The pay range for this position is $83.87 - $90.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