We are looking for a Senior Java developer that has experience with critical production systems (i.e. payment systems, B2B systems, Telco or similar systems).
Your responsibilities would be to design, implement, and support software production solutions that will be used by our clients, write tests for the systems and guarantee high quality of functional and non-functional characteristics of produced code, perform code review for other developers, take part in making architectural decisions, transfer knowledge to other team members and mentor junior developers.
You will need to select and integrate frameworks and libraries which will be part of software systems, and to prove your reasoning for this selection. As a senior developer, you should understand the business goals of the system, plan your work upfront, provide correct estimations to each task and be able to foresee possible problems and eliminate them before they appear.
Education and experience
- A bachelor’s degree or higher;
- 3+ years of experience in Java (or other JVM-based) development.
- Knowledge of software engineering process frameworks and software lifecycle management.
- Experience in designing distributed systems.
Technical competences and qualifications
- Strong analytical and problem-solving skills.
- An excellent understanding of development and testing methodologies, object-oriented programming best practices.
- Proficiency in architecture design of software systems.
- Deep knowledge of Java (or other JVM-based) language, good understanding of how JVM works.
- Good experience of using building tools (Maven, Gradle).
- Strong experience with multi-threaded, asynchronous code.
- Good understanding of networking principles and related design (REST, gRPC etc.).
- Good understanding of database design and knowledge in SQL/NoSQL.
- High level of Git usage experience, along with related workflows.
- Decent Ops side competence (virtualization, docker+k8s) is a plus.
- Experience in blockchain-related projects will be highly appreciated.
Required soft skills
- Impeccable communication and organizational skills.
- Significant attention to details.
- Maintain a positive attitude while giving and receiving constructive criticism to make improvements and take appropriate corrective actions.
- Honesty and ethic.
- Be open to changes (positive or negative) and to considerable variety in the workplace.
- Willingness to take on responsibilities and challenges.