We are looking for a highly driven and talented software engineer to join our growing array product development group. The array product development team creates new platform technologies to support the healthy screening (human and agricultural) and direct to consumer markets. In this role, you will be responsible for implementing software to assist Illumina’s customers in executing pre-defined array workflows leveraging lab instrumentation. Implementation includes creation of complex workflows and user interfaces, as well as interfacing with external systems, such as instrument control software, databases, and information management systems.
- Collaborate with product owners, systems analysts, user interface engineers and other application developers to design, code and maintain high quality, mission critical applications against established process in a scrum team setting.
- Design, rapidly prototype and implement scalable, robust and maintainable software, including web and local applications
- Assist test engineers in automation of workflow testing
- Interface with internal customers to assist in definition of requirements
- Provide technical assistance to production issues escalated from customer support
- Develop and verify software code for automated liquid handling, DNA processing and fluorescent imaging systems.
- Produce SDLC documentation of architecture and design for automated processes
- Communicate verbal and written status updates towards project goals
- C# object-oriented programming and .Net framework experience
- Experience writing quality unit tests against mock objects
- Proficient with source control management repositories (e.g., GIT, TFS, etc.) and continuous integration practices
- SQL programming and design experience
- Understanding of multi-threaded design and implementation
- Knowledge of standard design patterns and implementation approaches
- Understanding of microservices and event-driven distributed architecture, REST APIs, and message queues
- Demonstrated success in collaborating in fast-paced team environment and delivering high-quality software products using establishes agile methodologies against formal schedules
- Self-motivated and able to solve problems independently and in team settings
- Good oral and written communication skills
- Ability to solve problems that span across multiple interconnected systems
- NoSQL programming experience (e.g., Cassandra, Amazon Aurora, DynamoDB or similar) desired
- Experience with client-side MVC frameworks (such as AngularJS, React) desired
- Experience with user interface frameworks for .Net (e.g., WPF) desired
- B.S. in computer science, or related field