Senior Java Developer
- Holborn - London
- Technology
- # R0007890Permanent Employee (Regular)
Accepting applications until:
1 August 2025Job Description
Senior Java Developer
Reporting of the role
This role reports to the Tech Lead
Overview of job
The audio services team are responsible for developing the streaming servers that sit at the heart of DAX, Globals’ digital ad exchange. The application streams live, and on-demand content, to millions of listeners every day. This includes brands such as Capital, Heart, RadioX, Smooth and LBC, along with powering Alexa’s news-briefings within the UK.
While we deliver content, we also insert tailored ads, which empowers Global to offer its products at no-cost to end users. This involves finding an appropriate ad for every unique listener and inserting it into live and on-demand audio streams. This happens in real-time with sub-millisecond deadlines, so performance sits at the heart of what we do.
In this role, you will find yourself working closely with low-level audio formats, enhancing our ability to deliver audio to more listener devices while improving listener experience. With every new feature, you will be exposed to JVM profiling and tuning, as well as bespoke data structures; optimised for low latency in a highly concurrent environment. Due to this, our application is completely bespoke, built on top of Java 17.
We are a friendly and close-knit team, working in a highly collaborative agile environment.
3 best things about the job
Work on a platform that requires millisecond response times, serving millions of people concurrently 24/7, 365.
Work with designing custom data structures and algorithms to optimise ad delivery, with peak requests of over 5000+ requests per second.
Work in an agile team, where you can have the time and freedom to explore solutions to technical problems. This can be from benchmarking algorithms to use on a critical path through the application, to exploring what packages we can make use of to hold user-state between servers. The problems are varied, and we are given space to research solutions before we build on top of them.
Measures of success –
In the first few months, you would have:
Followed good development practice and taken part in code reviews.
Delivered new audio streaming capabilities to millions of users around the world.
Be supporting and maintaining production infrastructure (the team has a strong ethos around maintaining your own services).
Run performance tests, using Java 17, Java Flight Recorder, Java Mission Control, Gatling, and custom audio streaming tool kits maintained by the team.
Worked with the team to help shape and design the product roadmap, balancing performance improvements, along with new feature requests from the business.
Responsibilities of the role
Developing features to a high technical standard. Including performing code reviews, unit testing, integration testing, performance testing, and release management.
Help contribute to our agile development process.
Help drive our collaborative learning culture.
Help maintains a reliable production environment.
What you will need
The ideal candidate will have a passion for solving technical problems, enjoying both collaboration and exploring solutions on their own. They will strive to seek out new and interesting ways to approach distributed and concurrent problems. They will be creative in their approach, using repeatable testing and metrics to prove the success of their solution.
Should love to learn, both in up-skilling your own knowledge, and sharing knowledge with other teams within Global.
Experience in designing highly concurrent distributed systems.
Experience with managing Java Threads, along with the use of specialised concurrent data structures
Experience with Java 17, Spring, K8's
Experience tuning and optimising Java byte code and JVMs.
Experience with monitoring and maintaining large production systems.
An eye for detail and the desire to make sure things are done right.
Creating a place we all belong at Global