Position: Senior Software Engineer, Distributed Systems
Company: MatcHR
Category: Java
Experience required: 3y
English level: intermediate

**Do you enjoy any of the following?**

Solving complex problems.
Reasoning about the behavior of distributed algorithms.
Experience with implementing non-trivial infrastructure code.
Creating well-crafted and thoroughly tested features, taking full-responsibility from the design phase.
Paying attention to all aspects of code quality, from clean-code, to allocation-rates.
Digging into mechanical sympathy concepts.
Reading about database design and internals.
Delivering a technical presentation at a conference.

**At our company you will work with the best engineers out there**

Who delve into JVM code.
Who implement and scrutinize garbage collection algorithms.
Who take any piece of software and multiply its performance by applying deep technical understanding. 
Who regularly squash bugs in the depths of a JVM.

**Skills & requirements**

**We would like you to: **

Be a senior Java engineer - including all aspects connected to it.
Have very strong technical skills with core Java, including:
Java's concurrency model, also known as the Java Memory Model
concurrency and networking
Have an understanding of and interest in:
concurrency and lock-free algorithms
low-latency systems
distributed systems and database design theory
networking
serialization
garbage collection
Be skeptical yet always open to new concepts.
Have strong opinions about software quality.
Be an excellent communicator in written and spoken English.
 
**Benefits**

Equity options
Flexible working hours and location (this is a remote position)
Workplace cost reimbursement (coworking space, laptop)
Business travels to Istanbul
Conference speaking opportunities