The Software Development Engineer for the Cell Analysis Software Development Team will be responsible for developing desktop and control software for instruments that are used primarily in flow cytometer applications.
- Develop a thorough understanding of the requirements (both explicit and implicit) of the system under development.
- Design, develop, test, debug, deploy, and maintain Cell Analysis software applications.
- Work on a software development team to define technical requirements, create high-level architectural specifications, ensuring feasibility, functionality, and integration with existing systems/platforms.
- Implement and test code in order to meet the technical requirements and architectural specifications.
- Represent the team in cross-organizational development forums as well as customer requirements gathering and software validation and training sessions.
- Rely on extensive experience and judgment to understand complex problems and resolve them efficiently.
- Use prior knowledge and experience to provide functional and technical support and leadership to colleagues.
- Participate in training and orienting new software engineers as they join the team.
REQUIREMENTS / EDUCATION:
Minimum Qualifications (must have):
- 6+ years of solid hands experience with C# .Net and/or C++. Other languages (Java, HTML5, etc. will be considered)
- Significant understanding of object oriented design patterns and programming.
- Significant experience using Agile software development methodologies.
- Experience developing multi-tier, scalable, Windows-based applications.
- Hands-on knowledge of user interface frameworks such as WPF and/or MFC.
- Data modeling, design and database programming using a variety of relational databases (Oracle, SQL).
- Data integration, data analysis, data mining, and visualization knowledge is a plus.
- Has experience, instincts, and enthusiasm around testing and testability.
- Is authentic, transparent and leads by example, holding self and others accountable. Inspires, motivates and collaborates with others.
- Anticipates needs and problems while creating solutions. Is willing to ask difficult questions and take risks. Greets challenge and change as opportunity.
- Experience working with geographically distributed team.
- A fast learner who can self-start, and work both independently and with a team.
- Excellent verbal and written communication skills. Ability to effectively document artifacts and processes then explain them to others
- BS/MS in Computer Science, Engineering, Physics, Mathematics or equivalent technical discipline.
Preferred Qualifications (nice to have):
- Previous experience with laboratory instrument software development.
- Previous industrial product development experience
- More detailed technical knowledge and experience in:
- Browser-based application development and HTML5
- Amazon Web Services or other leading cloud deployment platforms and services
- Multi-processing / Multi-threading applications
- Efficient use of memory
- MVVM Design Patterns
- Use of Microsoft’s Managed Extensibility Framework
- Image processing applications
- High-speed data analysis
- Working knowledge of automated test tools and their implementation