- Key Responsibilities:
- Core Java Development:
- Develop, enhance, and maintain applications using Core Java technologies such as Java SE.
- Design and implement robust, scalable, and high-performance solutions.
- Write clean, maintainable, and efficient Java code following best practices and coding standards.
- Advanced Java Concepts:
- Work with advanced Java concepts such as Multithreading, Concurrency, JVM tuning, Memory Management, and Garbage Collection to build efficient systems.
- Implement and optimize complex algorithms to meet business needs.
- Leverage Design Patterns and Object-Oriented Design (OOD) principles to develop maintainable and scalable systems.
- Frameworks & Libraries:
- Work with Java frameworks such as Spring, Hibernate, Struts, and JavaFX to build web-based and enterprise applications.
- Integrate third-party libraries and tools into Java applications as required.
- Develop RESTful APIs and Web Services using Spring Boot or similar frameworks.
- Database Interaction:
- Design and implement database queries, stored procedures, and integration with databases like MySQL, Oracle, or PostgreSQL.
- Ensure that the Java applications are capable of interacting with both relational and NoSQL databases.
- Work with JPA (Java Persistence API), Hibernate ORM for database interaction and object-relational mapping.
- Testing and Debugging:
- Write comprehensive unit tests using JUnit and Mockito.
- Conduct debugging and troubleshooting for Java-based applications.
- Implement automated testing frameworks to ensure the reliability and scalability of applications.
- Performance Optimization:
- Perform code profiling, performance tuning, and memory optimization for Java applications.
- Troubleshoot and fix performance bottlenecks.
- Optimize applications for high-volume transaction processing and low-latency operations.
- Collaboration & Agile Methodologies:
- Collaborate with cross-functional teams including product managers, designers, and QA to develop software features.
- Participate in Agile development cycles (Scrum/Kanban) to meet deliverables and deadlines.
- Conduct peer code reviews and provide feedback for improving the codebase.
- Documentation and Maintenance:
- Create and maintain technical documentation for software design, system architecture, and code functionality.
- Ensure code versioning and maintain code repositories using Git or SVN.
- Provide ongoing maintenance and enhancements to existing applications.
- Mentorship and Knowledge Sharing:
- Mentor junior developers and provide guidance on best coding practices, design principles, and debugging techniques.
- Share knowledge and learnings with the development team and foster a culture of continuous improvement.
- Required Qualifications:
- Bachelor's degree in Computer Science, Software Engineering, or a related field.
- 3-5 years of experience in Core Java development with a deep understanding of Java fundamentals.
- Strong experience with Advanced Java concepts including Multithreading, Concurrency, JVM internals, and Garbage Collection.
- Proficient in Java Frameworks like Spring, Hibernate, or Struts.
- Experience with RESTful APIs, Web Services, and Microservices architecture.
- Solid understanding of object-oriented programming (OOP) principles and Design Patterns.
- Experience with SQL and working knowledge of databases like MySQL, Oracle, or PostgreSQL.
- Familiarity with version control systems such as Git, SVN, or Mercurial.
- Strong understanding of build tools such as Maven, Gradle, or Ant.
- Hands-on experience with unit testing frameworks like JUnit and Mockito.
Skills Required
Git, Svn, Restful Apis, Web Services, Junit