Senior Java Developer, Stream Automation Backend

If you are a Java Developer keen to improve/challenge your skills to write robust real time multi-threaded backend SaaS application with comprehensive unit tests to join a geographically distributed team, then read on.

Skills and Experience you will bring:

  • At least 8 years of Programming experience
  • At least 4 years of Java 8 or higher experience
  • Spring Boot
  • Design patterns
  • Build tools (Gradle)
  • JUnit & Mockito
  • CI/CD - git, Jenkins
  • Test Driven Development
  • At least 1 year experience in the following:
    • Microservices/its architecture principles
    • Common API formats (REST, OpenAPI, JSON, Websockets, JSON RPC, Proto)
  • Ability to speak & write in English fluently

Additional skills and experience that will be useful:

  • Multi-threading, concurrent and distributed design
  • Behaviour Driven Development
  • Agile methodologies
  • Linux/Ubuntu
  • AWS – S3, SQS, API Gateway, SNS, Lambda, DynamoDB

About the Role:

The evertz.io Engineering Team builds next-generation systems for content management and distribution in the Media and Entertainment industry. Disney, NBCUniversal, Discovery, BBC, and many other content producers and publishers use our products and services to make the most of their file-based and live content for the least effort.

We work with high quality video in real-time and non-real-time scenarios across a wide range of cutting-edge tech. Specializations within the group span from low-level video manipulation and analysis, through back-end management and orchestration services, to web delivered UIs. Working in parallel with these teams is the Scientific Computing Group who work in computer vision, data science and machine learning, taking experiments in Jupyter notebooks through to deployment in production. This makes for a challenging and rewarding engineering experience of continual learning and plenty of opportunity to explore different parts of the stack.

Our technology stack includes a Serverless microservice architecture that capitalizes on the full breadth of AWS services with code written in Python, Rust and Java, our UI uses the latest versions of Angular, Typescript and NgRx, our CI/CD pipelines leverage AWS, Jenkins, Nexus, and Bazel in addition to our in-house release-management application to build and release 100’s of software components.

You will be joining a geographically distributed team as a Senior Java Developer to develop core Java based microservices that run in AWS backing our evertz.io Stream cloud-based service. The team is often presented with exciting challenges to overcome by collaborating with other teams at the same time maintaining autonomy on internal design.

Your role includes:

  • Participating in design discussions with Head of Stream Automation, Product Owners and Solution Architects for adding new or improving existing features
  • Taking a feature from scoping requirement to actual launch in our cloud platform
  • Design & document requirements/features/API
  • Close collaboration with UI & Device driver team who are consumers of our API
  • Develop high quality, easily understandable, fully unit tested software with JavaDoc satisfying Definition of Done
  • Understand and use Shift left strategy/push down Test Pyramid when testing the developed feature
  • Engage with and involve QA team where an integration/end-to-end test is required
  • Continuous learning to improve yourself and mentoring Junior Engineers
  • Actively participate in PR reviews

“Work is a thing you do, not a place you go”

We work in agile, low-bureaucracy, high-creativity, cross-functional teams spread across the world. It’s a highly creative work environment where we support your growth with opportunities for career progression, mentoring others and third-party education. The team is built on trust and is relaxed, open and welcoming to all, and there’s fun to be had with regular social events and sports teams.

As part of this role, you will be expected to:

  • Full SDLC of robust real time multi-threaded backend SaaS application
  • Collaborate with other teams to develop a Cloud based solution
  • Able to gather information from stake holders to articulate a poorly stated problem
  • Be a strong practitioner of Clean code, SOLID principles, DRY, TDD
  • Cultivate a culture of maintaining high quality code through refactoring
  • Learn other coding languages as needed
  • Troubleshoot any production issues if required and include regression testing.
  • Guide a team of Junior Developers with best coding practices, review PRs, mentor any new hires as and when required

Location:

This role allows you to work with “Full Flexibility” - for any work where being physically close to fixed equipment is not a requirement, you have the option to work remotely.

Remote working is not the same as working from home, WFH is just one very common option. You can work from wherever gets the creative juices flowing: coffee shops, co-working places, the park, a different country even! Anywhere with Internet access.

Of course, working from an office is an option too especially if you’re craving some ad hoc in-person interaction! Evertz has offices in Canada, England, Scotland, India, Singapore, Hong Kong, Virginia, California, Arizona, Ohio, Hungary, Belgium, Poland and Australia. Many have great spaces for meet-ups as well as permanent or floating desk space.

Working Hours

This role allows you to work asynchronously meaning you can contribute at the times when you do your best work. Some people are early-birds, some are night-owls, maybe Saturday is better than Wednesday? Whilst some overlap for core meetings is needed, you don’t have to do your deep work between 9 and 5.

Salary & Benefits

We offer a competitive salary with annual performance-based bonus and stock option schemes. A pension plan; an employer funded health and medical plan; life insurance plan; long term disability coverage; paid time off; an employee assistance program; and a discount platform. The availability and specifics of these benefits vary by location, details of which will be provided during the hiring process.