Lead Performance QA Engineer

Push Technology (www.pushtechnology.com) is trusted by leading brands worldwide to manage and optimize delivery of data around the world to their web, mobile, and IoT application data. Diffusion does the complex work to provide real-time data – reliably, globally, and at scale and speed.

We develop and reward people who have the drive and motivation to make a significant contribution to the continued growth of our business. We hope to provide a culture of accountability, challenge and opportunity and encourage a spirit of collaborative, creative and fresh thinking. We want everyone to contribute and add value by turning their own skills, strengths and interests into results.

We strive to be a place that people want to work and want to work hard. With great benefits and an already impressive international team of Technology experts, we want to bring on new team members that have passion, drive, innovation and leadership, just like our products.

JOB PURPOSE

Diffusion is an innovative real-time data platform. Following a recent £10M investment round, the Diffusion development team is growing and there is a wealth of new feature development on the road map.

We are seeking a lead performance engineer to both deliver valuable customer-facing benchmarks and guide the development of our in-house performance testing suite. The ideal candidate will have experience benchmarking Java applications, working directly with customers, leading a team, and developing tooling using Java and/or Python.

The role requires good computer science skills. Diffusion deals with low-level concepts such as sockets, binary protocols, operating system idiosyncrasies, and networking. The performance team is responsible for providing customer benchmarks, testing the performance of Diffusion, and creating and maintaining tools for these outcomes.

If you have the skills, knowledge, and enthusiasm, we will provide a mixture of self-driven and on-the-job training as well as a career mentor to give you the support to succeed and grow.

KEY RESPONSIBILITIES

  • - Lead the performance and reliability team through decision making and planning
  • - Engage with customers when required to consult on, and demonstrate, the performance of the Diffusion product
  • - Contribute directly to the performance tooling in Java and Python
  • - Own, develop, and maintain our public performance benchmarks
  • - Coach the core development teams on performance tuning and testing practices
  • - Work with the software architects and business leaders to define the service level objectives for product performance

REQUIREMENTS

Essential Requirements


Expertise with measuring high performance Java software. Expertise with the Java memory model, test creation, and fault diagnosis is a pre-requisite for this role. Exposure to other programming languages is also highly desirable.

The successful candidate will be required to drive performance testing approaches including experimental design, statistical analysis, and evaluation in distributed contexts.

Required Skills

  • Team leadership skills
  • Ability to innovate independently and in partnership with others
  • Development experience with Java and Bash
  • Senior Java performance testing experience (particularly with high performance systems)
  • Good understanding of networking and operating systems
  • Experience setting up Linux and AWS EC2 environments for performance testing
  • Expertise with Java Virtual Machines (JVMs)
  • Good grasp of distributed computing essentials
  • Customer facing experience on technical matters
  • Numeracy, and familiarity with basic statistics
  • A willingness to learn new concepts and approaches to dealing with problems

Nice to Haves


In addition to the above it would be advantageous for candidates to have some knowledge of the following:

  • Additional development experience with Python, Docker, and Kubernetes
  • Understanding of messaging protocols such as MQTT and AMQP, Internet protocols including WebSockets, and networking protocols
  • Understanding of algorithms and their optimisation
  • Experience with transactional data processing in databases and/or distributed systems
  • Some exposure to basic machine-learning concepts and techniques
  • Experience with monitoring and alerting systems​
APPLY HERE