Consulting Software Engineer
Summary of Position
- The Consulting Senior Software Engineer is a senior member of the Analytics Department. The position will report to the department head and coordinate with the Imaging and Engineering Departments to design, develop and deploy software solutions at Quiver to meet business needs.
- This role has a specific focus on hardware interfacing and developing control systems for custom scientific microscopes, including CMOS cameras, illuminators, DAQs, spatial light modulators, motors, and other hardware components.
- Expected to be advanced in the area of Software Engineering. The Software Engineer will possess and apply a broad knowledge of software principles, practices, and procedures to the completion of assignments with moderate to major complexity. New approaches to solving problems are often devised and moderate to major levels of judgment and ingenuity must be applied. Assignments are performed with instructions as to only the results and performance expected. Technical guidance is only necessary for unusual or complex problems and only minor supervisory approval of work is needed.
Responsibilities and Duties
- Provide all aspects of software development including requirements analysis, specification, architecture definition, design, design review, implementation, source control, performance optimization, unit testing, automated testing, integration testing, defect management, validation, documentation, and release.
- Design and implement low-level drivers, and APIs to interface with hardware subsystems (cameras, DAQs, motion stages, optics, light sources, etc.).
- Participate system requirements analysis and architecture development. Lead detailed design of software components. Implement the software and ensure effective implementation of the software components with respect to the established architecture and design. Communicate architectural concepts and designs to development engineers.
- Conduct software development efforts in accordance with the defined process and relevant standards. Assure that deliverables meet quality, safety, regulatory compliance, maintainability, and reliability standards.
- Perform estimation and planning of personal tasks to achieve established project milestones. Guide less senior peers on the same.
- Serve as a technical resource and mentor for less senior software engineers.
- Actively participate in and support project teams. As a senior member on a project team, support the project manager with specification definition and planning of the software aspects of the project.
Minimum Qualifications Required
- B.S. degree (M.S. desirable) in Computer Science, Computer Engineering, Electrical Engineering or related technical discipline with 5+ years of professional software engineering experience in a product development environment.
- 3+ year experience in C#, Java, Matlab, Python, or similar programming languages
- Familiar with data structures, related algorithms, and their practical applications.
- Demonstrated expertise in writing software to interface with hardware, including scientific instruments, sensors, and motion control systems.
- Experience writing a graphical user interface (GUI) to control and coordinate third-party hardware.3+ years experience in constructing, validating, deploying software-intensive solutions
- Experience in integrating different software technologies
- Experience with software methodologies: OOA/D/P, design patterns, UML, multi-threaded programming.
- Experience with the following (or similar) tools: Visual Studio, Git or SVN, defect tracking, requirements management, memory profilers, performance profilers, automated testing.
- High level of creativity with a passion for technology and software applications.
- Excellent skills in the areas of verbal/written communication, problem solving, and leadership. Demonstrated experience providing technical leadership to less senior peers.
Additional Qualifications Desired
- Strong hands on experience writing software for scientific cameras and National Instruments DAQ devices
- Knowledge and experience in biophysics, physiology, or neuroscience
- Experience with image processing, video processing, signal processing, or time series analysis
- Experience with optical and imaging systems