This role is for Weekday's client
Requirements
The core responsibilities for the job include the following:
Design and Development:
 - Architectural Design: Develop and implement robust backend architectures that support complex business requirements and scale effectively.
- Feature Implementation: Write high-quality code to implement new features and enhance existing functionalities using Java and associated frameworks (e.
 
 g., Spring Boot).
- Technical Documentation: Create comprehensive technical documentation for the design and development processes to ensure maintainability and knowledge sharing.
Cloud Integration:
 - Cloud Services Utilization: Leverage AWS/GCP services (such as EC2 S3 Lambda, RDS, Cloud Functions, and Kubernetes) to deploy and manage scalable, secure, and efficient cloud-native applications.
- Infrastructure as Code: Utilize tools like Terraform or CloudFormation to manage and automate cloud infrastructure.
Microservices Architecture:
 - Service Design: Design and implement microservices that are resilient, maintainable, and scalable, following best practices for microservices architecture.
- Inter-Service Communication: Ensure efficient and reliable communication between microservices using appropriate protocols (e.
 
 g., REST, gRPC, message queues).
Database Management:
 - Schema Design: Design database schemas to support new and existing features, ensuring data integrity and performance.
- Optimization: Optimize queries and indexing strategies to improve database performance and reduce latency.
- Data Migration: Plan and execute data migration strategies for seamless upgrades and transitions.
API Development:
 - API Design: Design and develop RESTful APIs, ensuring they are well-documented, secure, and easy to consume by front-end applications and third-party systems.
- Security: Implement authentication and authorization mechanisms (e.
 
 g., OAuth, JWT) to secure APIs.
Code Quality:
 - Best Practices: Follow and enforce coding standards and best practices to ensure code quality and consistency.
- Testing: Write unit, integration, and end-to-end tests to ensure code reliability and performance.
- Code Reviews: Conduct code reviews to provide feedback, ensure code quality, and share knowledge with team members.
Performance Optimization:
 - Profiling and Monitoring: Use profiling tools and monitoring systems to identify and resolve performance bottlenecks in the application and infrastructure.
- Scaling: Implement strategies for horizontal and vertical scaling to handle increased load and ensure high availability.
- Collaboration:
- Cross-Functional Teams: Work closely with front-end developers, product managers, designers, and other stakeholders to deliver high-quality software solutions that meet business and user needs.
- Agile Methodology: Participate in Agile/Scrum ceremonies (e.
 
 g., daily stand-ups, sprint planning, retrospectives) to ensure effective communication and collaboration.
Continuous Improvement:
 - Learning and Development: Stay up-to-date with emerging technologies, industry trends, and best practices in software development and cloud computing.
- Process Improvement: Propose and implement improvements to development processes, tools, and methodologies to enhance productivity and quality.
Mentorship:
 - Guidance and Support: Mentor junior engineers by providing technical guidance, conducting code reviews, and offering career advice.
- Knowledge Sharing: Organize and conduct training sessions or workshops to share knowledge and best practices within the team.
Requirements:
 - Degree: Bachelor's degree in Computer Science, Engineering, or a related field.
- Equivalent Experience: Consideration of equivalent practical experience in software development.
- Professional Experience: 2.5-5 years of experience in backend development, with a strong focus on Java and relevant frameworks.
- Project Experience: Proven track record of delivering large-scale, high-performance backend systems in a production environment.
Cloud Expertise:
 - Hands-On Experience: Practical experience with AWS and/or GCP services, including EC2 S3 Lambda, RDS, Cloud Functions, and Kubernetes.
- Certification: Relevant cloud certifications (e.
 
 g., AWS Certified Developer, Google Professional Cloud Developer) are a plus.
Proficiency in Java:
 - Core Concepts: Deep understanding of core Java concepts, including multithreading, concurrency, and memory management.
- Frameworks: Proficiency with Java frameworks such as Spring Boot, Hibernate, etc.
Microservices:
 - Design and Development: Experience in designing and developing microservices-based architectures, including service discovery, load balancing, and circuit breaking.
- Tools and Technologies: Familiarity with tools like Docker, Kubernetes, and service mesh technologies.
Database Skills:
 - SQL and NoSQL: Proficient in SQL databases (e.
 
 g., MySQL, PostgreSQL) and NoSQL databases (e.
 
 g., MongoDB, Cassandra).
- Optimization: Experience with database optimization techniques, indexing strategies, and query performance tuning.
API Development:
 - RESTful APIs: Strong experience in developing and consuming RESTful APIs.
- API Documentation: Proficiency in documenting APIs using tools like Swagger/OpenAPI.
Version Control:
 - Git: Proficient in using Git for version control, including branching, merging, and pull request workflows.
- Collaboration Platforms: Familiarity with platforms like GitHub, GitLab, or Bitbucket.
Problem-Solving:
 - Analytical Skills: Excellent analytical and problem-solving skills to troubleshoot and resolve complex technical issues.
- Creativity: Ability to think creatively and propose innovative solutions to technical challenges.
Communication:
 - Technical Communication: Strong verbal and written communication skills, with the ability to convey complex technical concepts to non-technical stakeholders.
- Documentation: Ability to create clear and concise technical documentation for internal and external use.
Team Player:
 - Collaboration: Ability to work effectively in a collaborative, fast-paced environment, contributing to team success.
- Adaptability: Flexibility to adapt to changing priorities and project requirements.
Technical Overview:
 - You will be expected to design, develop, and maintain large-scale complex backend web applications.
- You will be expected to rapidly learn and apply relevant new technologies.
- You will be having a high level of interaction with business and product stakeholders.
- You will be working on the entire web application stack, which includes: Web server hosting, RESTful communication, Message brokering, Backend application layer, which includes the service and domain layers, and Data layer for persistence or caching.
- You will be participating in an agile software development cycle, which includes: Design, Development, Code Review, Unit and Integration Testing, and Release.
You will be exposed to the following technologies:
 - Web application frameworks: Node.js, Java Play, Vert.
 
 x, AIOHTTP, AWS Lambda.
- Languages: Java, Kotlin, Javascript.
- Data stores: PostgreSQL, Aerospike, Redis, Amazon Redshift.
- Communication: HTTP, Amazon SQS, Sidekiq, Amazon SNS.
- Server Management: Amazon ECS, Docker.