About the job
As a Senior Software Engineer specializing in hardware interfacing, you will play a crucial role in the design, development, support, and enhancement of sophisticated in-house software applications within a laboratory setting. Utilizing a variety of programming languages, predominantly C# and WPF, you will create and implement solutions that adhere to scientific testing protocols and laboratory needs. Your contributions will include creating user-friendly interfaces that facilitate intricate scientific tasks by acquiring data from laboratory instruments.
Please note: This position requires in-office presence at our Farmingdale, NY facility a minimum of two days per week.
- Lead development initiatives to deliver new or improved functionalities for both internal and external stakeholders.
- Design, implement, and document new systems or enhancements for existing applications, ensuring thorough documentation throughout the process.
- Employ fundamental software engineering principles in the design, development, maintenance, testing, and evaluation of software solutions.
- Execute the complete software development life cycle (SDLC) effectively.
- Develop flowcharts, layouts, and comprehensive documentation to identify requirements and solutions.
- Write well-structured, testable code that meets quality standards.
- Provide implementation support and post-implementation troubleshooting for business software solutions through programming and configuration.
- Create specifications and assess operational feasibility for proposed solutions.
- Integrate various software components into a cohesive and fully functional software system.
- Develop software verification plans and quality assurance protocols.
- Oversee the generation of test data, system testing, and documentation for all phases of the software development life cycle.
- Conduct quality assurance to validate applicable functionalities.
- Document and maintain software functionalities, revising technical specifications and documentation as necessary.
- Identify, troubleshoot, and enhance existing software systems.
- Deploy programs and assess user feedback for further improvements.
- Ensure that software is consistently updated to incorporate the latest features.
- May provide training to users on application operational procedures.
- Comply with project timelines and industry standards.
- Adhere to internal policies, standards, and procedures.
- Perform additional tasks as assigned.
- May take on a leadership role within the team and guide project initiatives.
