The Senior Software Developer (Senior Developer) works as part of a team of developers to design, develop, troubleshoot, maintain and deploy software components for acquiring, publishing and processing data using ONC’s data management and archiving system – Oceans 3.0. The Senior Developer will be involved in the development of software using a wide spectrum of technologies, from mobile to cloud computing.
The Senior Developer reports to the Associate Director, Software Development with work assigned on a project basis. This position leads scrum meetings, documentation and code reviews using their technical experience, knowledge of software lifecycle and development models, and experience with Agile project management and scrum leadership, to support the software development process. The Senior Developer works closely with the Senior Quality Control Specialist to create automated testing frameworks.
The Senior Developer must have a university degree in computer science, software engineering or natural sciences and engineering in general, and a minimum of six years of related experience, or an equivalent combination of education and experience.
Experience And Knowledge Requirements
- Proven ability to design, write, build, test and debug software
- Demonstrated proficiency in the following technologies: Java, JavaScript, HTML, SQL
- Experience in object–oriented design and implementation
- Database management systems, especially PostgreSQL and Cassandra
- Software lifecycle and Agile methodologies such as Scrum
- Web services and service-oriented architectures
Competencies
- Ability to work independently and proactively within a team-oriented environment
- Excellent written and verbal communication skills
- Excellent problem-solving skills
- Ability to learn new technologies
- Ability to lead scrum teams, mentor staff and lead projects
Highly Desired Assets
- Familiarity with Eclipse or similar integrated development environments
- Experience with tools and frameworks such as Hibernate, JMS and ActiveMQ, Tomcat/Jetty, OSGi.
- UNIX skills, including Bash or other scripting languages
- Experience in scientific data processing and analytical science in general
- Automated testing tools and procedures, including JUnit, Cypress, Selenium, etc.
- Experience in interfacing with scientific instrumentation, especially over IP networks
- Familiarity with modern web development, user interface and other ever-evolving front-end technologies, such as React, TypeScript, Material UI, etc.