Back to positions
Java-Core System Developer
We develop our services with a strong emphasis on performance, availability, flexibility, and cost efficiency. The challenging tasks we solve are not language-specific and require a holistic understanding of the problems, unbounded by a specific technology stack. In some cases, a technology switch may be necessary if it is well justified.
Responsibilities:
- Understand tasks and formalize requirements, proactively verifying them when necessary.
- Introduce, document, review, and successfully pass the review of technical designs, such as public APIs, new core features, and new services among others.
- Implement agreed-upon functionality.
- Participate in the peer review process.
- Investigate complicated incidents.
- Participate in laying out efficient infrastructure for code to run.
- Measure and improve performance.
Required Skills and Qualifications:
- Knowledge of at least one of the following languages: Java, C++, C#, or Go, including all low-level technical details.
- Experience with REST APIs and server-client communication, including WebSocket and Server-Sent Events (SSE).
- Experience with multi-threaded development and synchronization patterns.
- Redis or practical experience with comparable multi-master storage technology.
- Spark, Flink, Ray, or practical experience with a comparable distributed computation engine.
- Vert.x, Netty, or practical experience with a comparable high-performance communication library.
- Background in Computer Science.
- Knowledge of at least one public cloud platform: AWS, GCP, or Azure.
Nice to Have:
- Experience with algorithms.
- Experience with ANTLR and formal grammar.
- Computation plan optimization.
- Experience with Docker, Kubernetes (K8s), and Helm.