Position: Sr Software Engineer, Java
We are a fast-moving, highly technical team of people with the ambitious goal of disrupting next generation DNA Sequencing. Developing our unique platform requires expertise across a range of fields: software engineering, data science, biology, chemistry, protein engineering, circuit design, and electrochemistry, just to name a few. We're pushing the boundaries in DNA sequencing technology. Our chemistry and biology coupled with our custom hardware creates a system that generates data at tremendous rates, a big challenge for existing technology for data processing. We're looking for a top-notch software engineer to help create “best in class” applications for the management of sequencing instruments, data management and the genomic workflow. The Sr Software Engineer is passionate about software and will take the lead to design, develop and install software solutions. The successful candidate will be able to build high-quality, innovative and fully performing software in compliance with coding standards and technical design.
- Execute full lifecycle software development and serve as a subject matter expert in software design and development.
- Propose, develop requirements, prototype and execute new design and implementation concepts in collaboration with the architects and senior technical staff. Produce specifications and determine operational feasibility.
- Write clean, well designed, testable, efficient code. Include appropriate unit tests to cover implemented functionality. All software code must be maintainable, documented and using best engineering practices in the industry (design patterns, BDD, peer review, CI, automated testing etc.). Document and maintain software functionality and design. Participate in design reviews.
- Solid understanding of object-oriented design, high performance application design and distributed microservice architectures.
- Ability to synthesize user, technical and design requirements into highly usable applications
- Integrate software components into a fully functional software system
- In collaboration with SQA team, develop software verification plans and quality assurance procedures
- Monitors work to ensure quality, and continuously promote Quality First Time.
- Provides technical direction and feedback to others.
- Minimum 5 years experience designing and coding high performance applications using Java, application servers and databases.
- Experience with test-driven development and mastery in software engineering tools
- Ability to document requirements, specifications and design.
- Familiarity with software development methodology and release processes. Knowledge and experience with Agile development process is desirable.
- Experience with Spring framework, Spring boot configuration, and core features, such as dependency injection, resources, validation, mock, JMS.
- Experience with message bus system such as rabbitmq and message based component architecture.
- Experience developing applications using OOP and MVC design patterns.
- Experience with common data interchange formats and protocols: JSON, REST, AJAX, XML.
- Experience with source control systems such as Git; bug tracking systems such as Jira.
- Excellent attention to detail; strong analytical, diagnostic, problem-solving, debugging and optimization skills.
- Able to interact and communicate diplomatically with other team members, multiple internal departments, and management.
- Ability to work under deadline pressures.