Senior Java Software Engineer - System Services

Vonage Engineering Mission: Vonage is the emerging leader in the $100B+ cloud communications platform (CPaaS) market. Customers like Airbnb, Viber, Whatsapp, Snapchat, and many others depend on our APIs and SDKs to connect with their customers all over the world. As businesses continue to shift to a real-time, customer-centric communications model, we are experiencing a time of impressive growth.

Why this role matters:

Working in the Platform and API group as part of the System Services team you will be implementing shared services and tools that support our engineering teams to build resilient and scalable products for our customers. In addition to feature development your work will support our engineering teams transition to a cloud-native Kubernetes platform.

We work as a cross-functional team across the whole software development lifecycle from requirements through deployment and production support.

What you will do

  • Implement new micro-services and tools including design, implementation, testing, debugging and documentation
  • Prototype and propose design solutions for new features including the design of APIs to meet new requirements
  • Work with SREs to define infrastructure for new services and features
  • Participate in continued development and maintenance of existing services with a view to simplifying code and improving performance, resilience and cost-effectiveness
  • Apply DevOps practices to deliver high-quality software to customers
  • Share knowledge, insight and updates with teammates and mentor less-experienced peers
  • Liaise with other teams on new releases, responding to issues and feedback
  • Stay up to date with the Java ecosystem (JDK 17 and modern frameworks) and new tools and techniques to support evolution of the Vonage platform
  • Champion high-quality code using practices such as TDD, SOLID principles and OO design

What we're looking for

  • Strong Java skills, experience with server-side development and concurrency
  • Ability to turn ideas into clean, well-tested and reliable code that your team will be able to understand and modify
    Experience in refactoring and improving existing codebases
    Experience with agile development methods, continuous integration, test-driven development and version control.
  • Experience working on distributed or high performance systems that operate at scale
  • Experience with producing and consuming API based services
    Familiarity with cloud infrastructure and services (e.g. AWS, Azure or Google)
  • Experience configuring DevOps tooling to setup CI/CD pipelines and development environments (e.g. Git, GitHub Actions, Sonar, Artifactory, Terraform)
    Experience operating production systems and working with logging, monitoring and alerting tooling
  • Familiarity with a variety of datastore models including caches, SQL and NoSQL
  • Ability to communicate effectively within and outside of team in both verbal and written form
  • Working knowledge of sysadmin and scripting (e.g. shell)

Bonus

  • Experience with Kubernetes or other container based deployment models
  • Working knowledge of Python test frameworks
  • Experience with improving the reliability and operational processes of complex, multi-tier systems
  • Experience in the following technologies would be beneficial but not essential: Micronaut, Kotlin, Terraform, Tekton, JLink
  • Experience with SDK development or Java API design
  • Experience writing technical documentation

Apply for this Job

* Required