Description

As a Senior Java Developer, you will play a key role in the design, development, testing, and maintenance of our software solutions. You will collaborate with cross-functional teams, including product managers, UX designers, and other developers, to deliver high-quality software that meets the needs of our clients and contributes to the overall success of our products.

Key Responsibilities
Design and development of complex, scalable, and high-performance Java-based applications

Collaborate with cross-functional teams to understand requirements and translate them into technical solutions

Write well-designed, efficient, and testable code

Stay abreast of industry trends and emerging technologies, and incorporate them into the development process

Work closely with architects to implement best practices and design patterns

Develop and execute comprehensive unit tests and integration tests

Collaborate with QA teams to identify and address software defects

Create and maintain detailed technical documentation for software solutions

and system architecture

Requirements

Bachelor's degree in Computer Science, Engineering, or related field

Minimum of 5 years of professional experience in Java development

Proficiency in using popular frameworks like Spring (Spring Boot, Spring MVC, Spring Security) and Hibernate/JPA for ORM (Object-Relational Mapping)

Concurrency and multithreading, understanding synchronization, and thread management

Knowledge of Java Memory Management, garbage collection, and JVM (Java Virtual Machine) internals

Experience implementing authentication and authorization using OAuth2, JWT, and Spring Security

Experience with building RESTful APIs using Spring Boot

Knowledge of caching techniques and tools (e.g., Redis, Ehcache)

Experience designing and implementing microservices using Spring Boot

Understanding of microservices communication protocols (REST, gRPC, messaging queues)

Strong SQL skills and experience with relational databases (e.g., MySQL, PostgreSQL, Oracle)

Understanding of NoSQL databases (e.g., MongoDB, Cassandra) and when to use them

Understanding of software design patterns, principles, and best practices

Experience with database design, optimization, and query performance tuning

Proficiency in problem-solving, data structure, and algorithms

Ability to debug production issues and find effective solutions within the timeline

Experience with code quality tools and static code analysis

Excellent problem-solving and analytical skills

Education

Bachelor's degree