- Key Responsibilities:
- Advanced Java Application Development:
- Develop high-performance, scalable, and reliable applications using Advanced Java concepts and frameworks.
- Implement complex business logic, algorithms, and integrate with backend databases.
- Apply object-oriented programming principles to create robust, maintainable, and modular code.
- Use advanced Java features such as Streams, Lambda Expressions, Concurrency, Multi-threading, and JVM internals.
- Handle the development of RESTful services and APIs using frameworks such as Spring Boot, Spring MVC, or Java EE.
- Architecture & Design:
- Participate in designing and architecting distributed systems and microservices.
- Use design patterns like Factory, Singleton, Strategy, Observer, and Builder to design efficient and scalable systems.
- Collaborate with architects and other developers to establish best practices, standards, and guidelines.
- Develop modular, reusable, and extensible components that align with business needs and technical requirements.
- Performance Optimization:
- Optimize applications for maximum performance, scalability, and reliability.
- Troubleshoot and resolve performance bottlenecks related to the application layer, database, or distributed systems.
- Profile, benchmark, and fine-tune Java applications for memory and CPU usage to ensure the highest performance.
- Implement caching strategies, such as Redis or Memcached, for efficient data retrieval.
- Concurrency & Multi-threading:
- Develop multi-threaded and concurrent applications to ensure high responsiveness and performance.
- Implement thread synchronization, locking, and thread pooling to handle concurrency issues in large-scale applications.
- Use Java's concurrency libraries like java.util.concurrent for thread-safe data handling and task management.
- Testing and Debugging:
- Write unit tests and integration tests for complex features to ensure code quality and prevent regressions.
- Use testing frameworks such as JUnit and Mockito for creating test cases and ensuring coverage.
- Debug, troubleshoot, and resolve issues in development, staging, and production environments.
- Integration and Deployment:
- Integrate Java applications with third-party APIs and services.
- Configure CI/CD pipelines for automatic deployment using tools like Jenkins, GitLab CI, or Travis CI.
- Manage version control with Git and collaborate in an Agile development environment.
- Documentation:
- Write clear and concise documentation for code, architecture, APIs, and processes.
- Ensure that all system designs, user guides, and code comments are maintained and updated.
- Required Qualifications:
- Bachelor's degree in Computer Science, Software Engineering, or a related field.
- 5+ years of experience in Java development, with expertise in advanced Java concepts and frameworks.
- Strong hands-on experience with Java 8+, including Lambda Expressions, Streams, and Functional Interfaces.
- In-depth knowledge of concurrent programming, multi-threading, and JVM internals.
- Expertise in building scalable, high-performance applications using Spring Framework (Spring Boot, Spring MVC, Spring Security).
- Solid understanding of distributed systems, microservices, and API design.
- Experience with RESTful API development and integration with external systems.
- Proficiency in database management and integration with relational databases like MySQL, PostgreSQL, or Oracle.
- Familiarity with NoSQL databases such as MongoDB or Cassandra.
- Strong problem-solving skills, including experience with profiling and performance tuning Java applications.
Skills Required
Spring Boot, Spring MVC, Java EE, Restful Api, Mysql