Loading...
 
Share this Job

Staff "Senior" Software Engineer (embedded)

Location: 

Eden Prairie, MN, US

Job ID:  36581
Category:  Software

Stratasys is a world leader in 3D printing!

 

Location: Eden Prairie MN

 

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

 

Responsibilities:

  • Technical Creation - The creation of solutions to engineering challenges.
    • Architecture of Systems: Develop a plan for the technical execution of complete software systems. Lead software component architecture discussions.
    • Design Subsystems: Develop a plan for the technical execution of a component of the software system. Lead the design of software and electrical 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 efficiently 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 and merges across multiple cross functional sources.

 

  • 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 infrequent or random occurrences.
    • 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 infrequent and/or random 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. Leads major refactors of existing codebases.
    • Test Code / Systems: Using existing hardware and software systems, execute operations to ensure the proper functionality of those systems. Able to create tests for all parts of a system using knowledge of previous systems and methods.  Able to write interactive, dependent/sequential tests as suites and schedule their completion.  Able to analyze data for relevant design criteria and statistics.  Able to improve test procedures and data collection methods. Coordinate the work of offsite/outsourced testing resources. Able to create test environments and setups. 
    • 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 significant design feedback on the code structure.

 

  • Technical Process - 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 and architecture 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.  Can diagnose and repair problems in infrastructure components.
    • Infrastructure Creation:  Create the systems that are used to do the teams’ jobs, including workstation, server and cloud systems.  Can develop and select new infrastructure systems to perform existing functions.

 

  • 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 complex features from stakeholders and navigate competing requirements.
    • 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 large system 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 and year.  Able to give estimates at the quick rough level and slower detailed level and everything in between. 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 large scale prioritization for a new product launch.  Can participate in a discussion with large cross functional teams to reach a consensus priority list.  Can maintain this list through an evolving project.
    • Milestones: Break down a larger project into major components and deliverables.  Can take large technical problems and new project developments and break them down into manageable chunks of engineering effort.  Can communicate these milestones effectively.  Comfortable with milestone creation of all scale from daily for one person to quarterly for whole teams. Is a leader in team discussions around milestones.
    • Business Case / Advocacy:  Provide a business justification for a task and successfully communicate this rational to the appropriate group.  Able to convince cross functional leadership of the value of specific feature.
    • 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 new projects that encompass multiple tester months 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 large software team in executing a new project development according to plan.  Hits target dates.  Updates scheduling artifacts.  Communicates with teammates and leadership about execution to plan.  Sees impending problems and works to mitigate the impact of them.
    • Facilitate Meetings:  Organize and lead meetings to allow the collaboration between people and teams.
    • Able to lead broad cross functional meetings with engineers.  Responsible for determining agenda, keeping the meeting on topic and at the correct level of abstraction, communicating outcomes, and assigning next steps.
    • 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 with multiple levels of leadership.   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 major new software product.
    • 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 new system launch.

 

MINIMUM QUALIFICATIONS:

  • Bachelor’s Degree or (Associate Degree with 2 years experience) or (Software boot camp certification with 4 years experience) in lieu of degree.
  • 8+ of related experience
  • 6+ years in C++ and/or C programming experience
  • 5+ years’ experience in embedded software development

 

PREFERRED QUALIFICATIONS:

  • Previous experience using 3D printers
  • Previous experience with embedded software development
  • Experience in a Manufacturing environment
  • Experience with GIT
  • Experience working with Motors and Heaters

 

TRAVEL REQUIREMENT: 5%

 

Stratasys (Nasdaq: SSYS), headquartered in Minneapolis, Minnesota and Rehovot, Israel, has been a leader in the 3D printing industry for over thirty years. The company’s patented FDM® and PolyJet™ 3D printing technologies have a diverse range of applications, including rapid prototyping, production parts, tooling, and concept design. Stratasys offers additive manufacturing solutions in 13 countries, for industries including aerospace, automotive, healthcare, consumer goods, and education. The company operates Stratasys Direct, a digital parts manufacturing service, and Stratasys subsidiaries include MakerBot and GrabCAD. With over 2,000 employees, over 1,200 patents globally, and more than 30 awards for technology and leadership, Stratasys is changing millions of lives with the power of innovation.

 

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. 

 

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