Software Engineer II
- Location: Alexandria, MN
- Type: Direct Hire
- Job #35427
Location of job site: Alexandria, Minnesota
The Software Engineer II position is responsible for software development projects of moderate scope and complexity. This position interacts frequently with other professionals across functional lines and global sites to understand software requirements and ensure development meets needs identified. Interfacing with customers, contractors and suppliers on routine technical issues is required.
Areas of Responsibility:
To perform this job successfully, an individual must be able to perform each essential function satisfactorily.
- Proficient in .NET including C# and ASP.NET/MVC
- Experience with database development preferably Microsoft SQL Server
- Detail-oriented and thrives on driving toward efficient, agile processes.
- Has exceptional collaborative problem solving skills
- Demonstrates excellent interpersonal and communication skills
- Ability to travel as needed
- Experience with git version control
- Proficient with SignalR and Knockout
- Experience with C++
- Understanding of requirement analysis
- Solid experience with database development preferably Microsoft SQL Server
- Understanding of requirement analysis
- Experience in UI design
Stage 1 – Product Concept and Feasibility: Actively participate with teams on concept and feasibility developments. Provide feasibility input and estimates on cost and duration required to complete software design developments. Collect feasibility data and complete concept analysis. Research, evaluate and recommend new approaches to software design solutions and best practice. Complete concept ideation and document ideas in invention disclosure.
Stage 2 – Product Planning and Design Inputs: Work with project manager, commercial, marketing and project teams to translate user requirements to measureable software product requirements. This function requires the ability to understand complex consumer needs and translate them into functional software developments. Evaluate and provide input on cost and duration of time required to complete new and custom software design developments. Complete functional analysis with intent to understand and solidify product requirements. Provide input on failure modes effects analysis, intellectual property, and product and project risk analysis.
Stage 3 – Product & Process Development: Complete software solution developments for custom automation, instrument and software products. Ensure software solutions effectively implement and align with identified architecture and technology best practices. Frequent and effective interfacing with project management, contract software architects, industry experts, site and global product teams is required. Create software solutions utilizing .NET and SQL server that meet or exceed user requirements and quality benchmarks. This function requires an understanding of test-driven development, service oriented architecture, Agile software methodology, source control, SQL server development, and quality control systems.
Stage 4 – Product Design and Development Verification: Complete effective and comprehensive evaluation of software design solutions for the purpose of design progression with an ultimate goal of release to manufacture. This is to be accomplished by creating and executing functional level software testing as part of an Agile development methodology. This function will require knowledge of test case documentation, unit testing, test harness, test scripting languages, and test automation techniques. This function requires collaboration with lower level software engineers, software test engineers and other project team members. Complete and document software design outputs. Track and document software development revisions following approved policy and procedures.
Stage 5 – Product Design Transfer and System Validation: Provide meaningful design transfer documentation through review, training and translation of software outputs to measureable criteria. Create or provide input into user-level documentation, release notes and deployment documentation. This function requires collaboration with software engineers, software test engineers and other project team members.
Stage 6 – Post Launch Design Changes: Work with commercial, service, marketing, manufacturing and quality to identify and evaluate post launch changes for software. Complete software design changes for custom automation, instrument and software products. Ensure software solutions effectively implement and align with identified architecture and technology best practice. This function requires industry knowledge in commercial software best practice.
Frequent and effective interfacing with project management, contract software architects, industry experts, site and global product teams is required. Create software change solutions utilizing .NET and SQL server that meet or exceed user requirements and quality benchmarks. This function requires an understanding of test-driven development, service oriented architecture, Agile software methodology, source control, SQL server development, and quality control systems. This function frequently collaborates with lower level software engineers.