The Senior Software Engineer is responsible for the design, delivery, support, and improvement of complex in-house software applications in a laboratory environment, in a variety of languages (primarily C# and WPF). They design and develop solutions, based on scientific test specifications and/or laboratory requirements, which acquire data from laboratory apparatus and provide intuitive user interfaces needed to accomplish complex scientific tasks. They perform coding, debugging, testing, and troubleshooting throughout the software development life cycle and they work with onsite laboratory staff to help diagnose and resolve problems in software/hardware interfaces. Leads development projects to provide new or enhanced functionality for internal and external customers. Designs, codes, tests and documents new systems or enhancements to existing systems and prepares the appropriate documentation. Applies the principles of software engineering to the design, development, maintenance, testing, and evaluation of computer software. Executes full software development life cycle (SDLC). Develops flowcharts, layouts, and documentation to identify requirements and solutions. Writes well-designed, testable code. Provides implementation and post-implementation triage and support of business software solutions by programming and/or configuring enhancements to new or packaged-based systems and applications. Produces specifications and determines operational feasibility. Integrates software components into a fully functional software system. Develops software verification plans and quality assurance procedures. Oversees development of test data, system testing, and documentation for all phases of the software development life cycle. Performs quality assurance on applicable functionality. Documents and maintains software functionality. Reviews and makes changes to technical specifications and documentation. Troubleshoots, debugs and upgrades existing systems. Deploys programs and evaluates user feedback. Ensures software is updated with latest features. May oversee the training of users in operating procedures for application. Complies with project plans and industry standards. Adheres to internal standards, policies and procedures. Performs other duties as assigned. May assume a team lead role for the work group and may lead projects.