Summary:
Plans, designs, develops and tests software systems or applications for software enhancements and new products including cloud-based or internet-related tools. Most companies should be able to match to a specific software development engineer position. Use this position if company does not breakout software development positions such as Software Engineer (Applications) (5141-5146) or Software Engineer (Systems) (5161-5166).
Duties & Responsibilities:
Basic Qualifications:
· BS or MS in Computer Science, Computer Engineering, Software Engineering, or related field
· Excellent English-language written and verbal communication skills
· 10 or more years of software development experience, using an Agile methodology (e.g., SCRUM or Kanban), including design, development, and testing activities.
· Experience in developing complex commercial software products
· 10 or more years of software development using Java
· Experience developing applications using a containerized Microservices architecture
· Experience with Java microservice frameworks such as Spring Boot + WebFlux/AOP, Quarkus, Micronaut, Javalin
· Experience with designing, developing and using RESTful APIs supporting JSON or XML
· Experience developing automated unit tests
· Experience of working in a CI/CD software development pipeline
· Experience with version control systems (Bitbucket/Git preferred)
· Apache Maven / Gradle
· Experience working in a Linux environment (RHEL or Oracle Linux preferred)
· Relational databases (e.g., PostgreSQL)
Preferred Qualifications: Experience with some or all of the following:
· Swagger API framework
· Kubernetes and Docker
· Elasticsearch, Logstash, Kibana (ELK stack)
· Monitoring system performance with tools such as Prometheus and Grafana
· Apache Spark
· Cucumber automated tests
· JetBrains IntelliJ IDEA or other JetBrains tools
· Atlassian tool suite, including JIRA, Confluence, Bitbucket/Git, Bamboo
· Behaviour-driven or test-driven development
· Deployment of applications in a cloud-hosted environment
· Python programming
Duties/Responsibilities:
· Work effectively and efficiently with others on the R&D team to develop a winning product roadmap
· Continue to expand, focus and leverage personal and team knowledge base and technical abilities in constant pursuit of developing a superior product
· Follow the Agile Product Development model to constantly optimize feature, time to market and project budget while maintaining an uncompromising high level of product quality
· Execute full software development life cycle (SDLC)
· Use Behaviour Driven Development or Test-Driven Development to deliver well-designed, tested code
· Provide ongoing maintenance, support, and enhancements
· Develop automated software unit tests and integration tests
· Integrate software components into a fully functional software system
· Troubleshoot and debug existing systems
· Provide recommendations for continuous improvement
· Be an effective, contributing team member, improving technologies, and consistently applying best practices
Pre-Requisites / Skills / Experience Requirements:
Top Skills
What We Do
VIAVI Solutions (NASDAQ: VIAV) is a global leader in both network and service enablement and optical security performance products and solutions. Our technologies contribute to the success of a wide range of customers – from the world’s largest mobile operators and governmental entities to enterprise network and application providers to contractors laying the fiber and building the towers that keep us connected