Senior Software Engineer (Hybrid)

SGSFarmingdale, NY
Hybrid

About The Position

The Senior Software Engineer (with hardware interfacing) 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. This position will need to be on-site at the Farmingdale, NY facility at least 2 days every week. Leads development projects to provide new or enhanced functionality for internal and external customers 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.

Requirements

  • Bachelor’s degree in information technology, Computer Science, Computer Engineering, or related discipline
  • 7+ years of experience, including 3+ years’ experience as a senior software engineer
  • Expertise in compiled language C#
  • Software development, specifically desktop applications using C# along with both WPF and WinForms
  • Solid understanding of software engineering principles, frameworks, and technologies
  • Prior experience directly gathering and analyzing end user requirements
  • Software development, specifically desktop applications using C# and one or more of the following: WPF, WinForms
  • Software development in a team environment using MS Azure DevOps
  • Internal/external client support
  • Troubleshoot problems and solving bugs
  • Software design patterns
  • Data encapsulation
  • Object Oriented Design
  • Functional programming
  • Unit Testing
  • Data structures and operating systems internals
  • Windows operating systems
  • Demonstrated software development experience in computational science, engineering, computer science, or applied math.
  • Strong customer service orientation
  • Ability to work effectively in a team environment and as individual contributor
  • Excellent analytical, reasoning, and problem-solving skills
  • Excellent organizational and time management skills
  • Excellent verbal and written communication, and interpersonal skills
  • Highly focused attention to detail
  • Project management skills and ability to manage complex projects

Nice To Haves

  • Solid understanding and experience designing, troubleshooting, interfacing software applications with low voltage electronic circuits
  • Hands-on experience with Multi-Function DAQ (Data Acquisition) devices featuring multi-channel analog inputs/outputs and digital I/O.
  • Experience includes signal conditioning, channel calibration, and developing software interfaces for data acquisition and analysis.
  • Software development using .NET, .NET Core, ASP.NET, Angular, Entity Framework, SQL, and/or Relational DB
  • Interconnect hardware and software (e.g. PLC’s, using actuators and scales)

Responsibilities

  • Design, deliver, support, and improve complex in-house software applications in a laboratory environment.
  • Design and develop solutions that acquire data from laboratory apparatus and provide intuitive user interfaces.
  • Perform coding, debugging, testing, and troubleshooting throughout the software development life cycle.
  • Work with onsite laboratory staff to diagnose and resolve problems in software/hardware interfaces.
  • Lead development projects to provide new or enhanced functionality.
  • Design, code, test, and document new systems or enhancements.
  • Apply principles of software engineering to the design, development, maintenance, testing, and evaluation of computer software.
  • Execute full software development life cycle (SDLC).
  • Develop flowcharts, layouts, and documentation to identify requirements and solutions.
  • Write well-designed, testable code.
  • Provide implementation and post-implementation triage and support of business software solutions.
  • Produce specifications and determine operational feasibility.
  • Integrate software components into a fully functional software system.
  • Develop software verification plans and quality assurance procedures.
  • Oversee development of test data, system testing, and documentation.
  • Perform quality assurance on applicable functionality.
  • Document and maintain software functionality.
  • Review and make changes to technical specifications and documentation.
  • Troubleshoot, debug, and upgrade existing systems.
  • Deploy programs and evaluate user feedback.
  • Ensure software is updated with latest features.
  • May oversee the training of users in operating procedures for application.
  • Comply with project plans and industry standards.
  • Adhere to internal standards, policies and procedures.
  • Perform other duties as assigned.
  • May assume a team lead role for the work group and may lead projects.

Benefits

  • Medical, dental and vision insurance
  • Life insurance
  • Employee assistance programs
  • 401(k) with company match (immediate vesting upon enrollment)
  • Online training courses
  • Virtual and classroom development experiences
  • Tuition reimbursement program
  • Paid-time off
  • Family leave
© 2026 Teal Labs, Inc
Privacy PolicyTerms of Service