Software Engineer, Performance

Location: Remote

Date posted: November 14, 2020

Description

We are looking for engineers to join our performance team. 

Do you like running benchmarks, creating shell scripting, figuring out why things are not running fast and fix performance problems?

Cloud-native data and compute platform.
World’s leading open source in-memory data grid.

The company solution is a distributed, highly available, cloud-native, in-memory data platform with unified user experience and management tooling.
It is massively parallel and can process millions of operations per second with latencies in microseconds at scale. It is simple to use, no additional or third party coordination processes are required.
Flexible enough to use as a data and compute platform out of the box or as a framework for your own cloud-native applications and microservices.

 

Responsibilities

We are looking for a performance engineer with a strong focus on quality and performance. As part of your daily activities you will be:

1. performance testing either on bare metal or in the cloud
2. analysis performance data; trying to figure out when and why things went wrong.
3. optimize the code or settings.

 

Requirements

● Have an affinity for performance and benchmarking.
●Eagerness to learn new skills; benchmarking requires a lot more knowledge than just running benchmarks. It is important to understand what is happening so that we can improve existing benchmarks or add new ones.
● Have a basic understanding of statistics; terms like percentile or standard deviation should be known.
● Have a solid understanding of Bash and Linux OS, since the work will require writing and modifying Bash scripts quite frequently.
● Have a solid understanding of Java. You don't need to be a Java hero.
● All communication is in English, so your English should be sufficient.


The following skills will also be beneficial, but not required:

● Understanding of concurrency and memory models
● Understanding of hardware
● Understanding of operating systems
● Understanding of distributed computing
● Understanding of networking
● Understanding of JVM's e.g. garbage collection