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
Bachelor's degree