Senior Software Engineer (embedded)
(On-Site) Eden Prairie, MN, US
Stratasys is a world leader in 3D printing!
Stratasys is leading the global shift to additive manufacturing with innovative 3D printing solutions for industries such as aerospace, automotive, consumer products and healthcare. Through smart and connected 3D printers, polymer materials, a software ecosystem, and parts on demand, Stratasys solutions deliver competitive advantages at every stage in the product value chain. The world’s leading organizations turn to Stratasys to transform product design, bring agility to manufacturing and supply chains, and improve patient care.
In this role: The Senior software Engineer (embedded) will work to develop and execute control software on the printer system. This role will be part of a team responsible for all aspects of the creation and maintenance of embedded software used in the automation and controls of Stratasys 3D printer products
What you will be doing:
Technical Creation (The creation of solutions to engineering challenges).
- Architecture of Systems: Develop a plan for the technical execution of complete software systems. Contribute to discussions around software architecture.
- Design Subsystems: Develop a plan for the technical execution of a component of the software system. Lead the design of software subsystems.
- Write Software/Features: Develop new code to make the software system perform a new task. Be able to follow best programming practices to create high quality new software features in complex situations.
- Update Parameters: Modify non-code files to enable configuration changes to the system while ensuring correctness and adherence to standards. Perform complex parameter updates with changes from cross functional teams.
Technical Investigation (Investigate and solve engineering problems).
-
Debug Systems: Through inspection or execution discern the cause of problems in mechanical, electrical and software systems. This can be for the team itself or external stakeholders in R and D, customer advocacy, and product management. Determine root cause be it electrical, mechanical, or software for repeatable events.
- Debug Code: Through inspection, simulation, or execution of code, discern the cause of problems in the software. This can be for the team itself or external stakeholders in R and D, customer advocacy, and product management. Determine where a problem exists in large multithreaded real time code bases for repeatable occurrences.
- Fix Code: Make changes to the code to repair problems when told what specific changes to make. Make broad and/or deep changes to code to repair problems.
- Test Code / Systems: Using existing hardware and software systems, execute operations to ensure the proper functionality of those systems. Able to repeat well-written procedures with efficiency. Understands good and bad results. Notes deficiencies or gaps in test procedures. Able to record and communicate valuable data/results effectively. Able to setup tests.
- Review Code: Go over the changes of other developers and ensure the quality of the design, the functionality, and the adherence to standards. Provide feedback that the code will complete the desired function. Provide design feedback on the code structure.
Technical Processes (Follow and Improve team processes)
- Software Documentation: Develop written documentation for systems and processes to enable others to recreate your steps and use them to develop new things. Can create documentation as part of the design process. Can create documentation for cross functional use.
- Infrastructure Maintenance: Support the systems that are used to do the teams’ jobs, including workstation, server, and cloud systems. Can perform major upgrades on systems and software.
- Infrastructure Creation: Create the systems that are used to do the teams’ jobs, including workstation, server and cloud systems. Can participate in infrastructure brainstorming and selection.
Project Planning: (Defining the work and how it will be executed).
- Requirements Gathering: Communicate with stakeholders to learn the needs of a fix, feature, or project. Collect requirements for large feature additions from individual and groups of stakeholders.
- Jira Ticket Entry and Management: Enter specifications in the software package Jira for tracking purposes. Creates, updates, and manages the tickets in a jira backlog for a system improvement or a software component development.
- Estimation: Plan the amount of resources, time, money, and hardware needed to complete a task. Able to give accurate estimates of expected work duration for activities under a month. Able to give rough estimates for work measured in engineer months. Able to learn and refine estimates through discussion and experience.
- Prioritization: Determine which tasks should be completed and the order they should be completed. Can develop a prioritize list for software component development. Can collect and collate the input of multiple stakeholders on this component.
- Milestones: Break down a larger project into major components and deliverables. Can take large technical problems and new project components and break them down into manageable chunks of engineering effort. Can communicate these milestones effectively. Comfortable with milestone creation of all scales from daily for one person to monthly for whole teams. Is an active participant in team discussions around milestones.
- Business Case / Advocacy: Provide a business justification for a task and successfully communicate this rationale to the appropriate group. Able to convince cross functional teams of the value of specific features.
- Test Plan Creation: Develop the process by which software and hardware tasks can be verified. Can develop test plans in collaboration with test engineers for new features and small new projects that encompass multiple tester weeks of effort.
Project Execution: (Making sure the work occurs on schedule and to specifications).
- Schedule Management: Keep track of project schedules, modify them as needed, and drive the execution to the schedule. Able to lead a small software team in executing a significant software project according to plan. Hits target dates. Updates scheduling artifacts. Communicates with teammates about execution to plan. Helps recognize impending problems and helps to mitigate the impact of them.
- Facilitate Meetings: Organize and lead meetings to allow the collaboration between people and teams. Able to lead directed cross functional meetings with engineers. Responsible for determining agenda, communicating outcomes.
- Represent Controls Software: In larger cross functional settings, represent the controls software team from both a technical and project level. Represent the interest and viewpoint of control software in large cross functional groups. Able to speak to all aspects of control software’s work.
- Release Management: Handle the processes to coordinate the release of software, such as web uploads, Engineering Change Orders (ECO’s), and workstation release coordination. Can handle the release of a major software update.
- Test Plan Execution: Oversee the execution of plans to validate the effectiveness of software and hardware. Able to coordinate and support the execution of a System Validation Test (SVT) for an incremental software update.
Must have for this role:
- Bachelor’s Degree or (Associate Degree with 2 years’ experience) or (Software boot camp certification with 4 years’ experience) in lieu of degree.
- 5+ years’ experience in embedded software development
- 3+ years in C++ and/or C programming experience
Nice to have:
- Experience with Linux Development
- Experience with Object Oriented Programming
- Previous experience with embedded software development
- Experience in a Manufacturing environment
- Experience with GIT
- Experience working with Motors and Heaters
- Previous experience using 3D printers.
Travel Requirements: Rarely
What you will be part of:
- Company Overview - https://www.stratasys.com/en/about-us/history/
- Our Culture and Values - https://www.stratasys.com/en/about-us/culture/
- Our Sustainability “3D Printing a Better Tomorrow” - https://www.stratasys.com/en/about-us/sustainability/
- Our Locations - https://www.stratasys.com/en/contact-us/office-locations/
- Check out our Video - https://www.youtube.com/watch?v=6wmDfmt2bNI
Additional Information:
To perform this job successfully, an individual must be able to perform each essential duty satisfactorily. Stratasys will provide reasonable accommodations for qualified individuals with disabilities. In compliance with federal law, all persons hired will be required to verify identity and eligibility to work in the United States and to complete the required employment eligibility verification form upon hire. All offers of employment with Stratasys, Inc are contingent upon the successful passing of a background check.
Stratasys is an Equal Opportunity Employer. All qualified applicants will receive consideration for employment without regard to their protected Veteran or disabled status and will not be discriminated against for their race, color, religion, sex, age, disability, military status, or national origin or any other characteristic protected under federal, state, or applicable local law. Please view Equal Employment Opportunity Posters provided by OFCCP here
Nearest Major Market: Minneapolis