Job Description
We are hiring a
Principal Full Stack Engineer (Java + React)
with
6+ years of experience
to design, develop, and maintain scalable software solutions. The ideal candidate will have strong expertise in
Java, Spring Boot, and React.
Key Responsibilities:
- Develop and Maintain Backend of Applications:
- Design, develop, and maintain secure, scalable applications using Java and Spring Boot.
- Implement robust RESTful APIs, SOAP APIs, and microservices for seamless integration with other services.
- Develop and Maintain Web Applications Frontend:
- Contribute to web frontend development using React JS to build integrated, end-to-end solutions
- Data Interchange and Serialization:
- Work with JSON and XML for data interchange between services and handle data serialization/deserialization effectively.
- System Design and Architecture:
- Apply design patterns and architectural best practices to build efficient, maintainable code.
- Conduct system and component design reviews to ensure compliance with best practices and standards.
- Encryption and Security:
- Implement and manage encryption/decryption mechanisms to ensure data security and compliance.
- Ensure secure communication protocols and data storage using encryption standards like AES, RSA, and TLS.
- Production Deployment and Maintenance:
- Oversee production deployments, ensuring zero downtime and robust rollback mechanisms.
- Monitor applications post-deployment, handle troubleshooting, and improve system stability.
- CI/CD Pipeline Management:
- Establish and manage CI/CD pipelines using tools such as Jenkins, GitLab CI, or GitHub Actions.
- Ensure smooth deployment workflows with automated testing and configuration management.
- Database Management:
- Develop database schemas, write optimized queries, and manage integrations with relational databases like MySQL, PostgreSQL, or Oracle.
- Experience with NoSQL databases such as MongoDB, Cassandra, or Redis is a plus.
- HTTP Protocol and Communication:
- Deep understanding of HTTP, HTTPS, and secure communication standards.
- Experience with HTTP methods (GET, POST, PUT, DELETE) and status codes.
- Testing and Quality Assurance:
- Implement unit testing, integration testing, and functional testing using frameworks like JUnit and Mockito.
- Write and maintain thorough test cases to ensure code quality and functionality.
- Collaboration and Mentorship:
- Collaborate with cross-functional teams (Product, DevOps, QA) to achieve project goals.
- Mentor junior developers, fostering best practices in code quality, documentation, and testing.
Required Skills:
*
Must be able to communicate fluently \& effectively in English
- Java:
Strong expertise in Java (preferably Java 11 or later versions).
- Spring Framework:
Advanced knowledge of Spring Boot, Spring Data, Spring Security, and Spring Cloud.
- React JS:
Hands-on experience with React JS frontend framework is a plus
- Design Patterns:
Deep understanding of design patterns (e.g., Singleton, Factory, Observer) and their practical applications.
- Microservices Architecture:
Experience in developing and managing microservices-based architectures.
- SOAP and REST APIs:
Hands-on experience with both RESTful and SOAP APIs.
- JSON/XML:
Proficiency in JSON and XML for data interchange and processing.
- HTTP Protocols:
Solid understanding of HTTP/HTTPS protocols, methods, and secure communication standards.
- Encryption/Decryption:
Experience implementing encryption/decryption for secure data storage and transfer (AES, RSA, TLS).
- CI/CD Pipelines:
Proficiency in CI/CD tools like Jenkins, GitLab CI, or GitHub Actions.
- Database Management:
Hands-on experience with relational databases (MySQL, PostgreSQL) and familiarity with NoSQL databases (MongoDB, Redis).
- Version Control and Collaboration:
Git for version control; JIRA, Confluence, or similar tools for collaboration.
- Testing Frameworks:
Proficient with JUnit, Mockito, or other testing frameworks for unit and integration testing.
- Cloud Platforms:
Experience with cloud services such as AWS is highly desirable.
Qualifications: Bachelor’s degree in computer science or related discipline
Preferred Qualifications:
- Experience with containerization (Docker) and orchestration tools (Kubernetes).
- Exposure to Agile/Scrum methodologies.