This role is for Weekday's client.
Requirements
Key Responsibilities:
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.
Required Qualifications:
Education :
- Degree : Bachelor's degree in Computer Science, Engineering, or a related field.
- Equivalent Experience : Consideration of equivalent practical experience in software development.
- Experience :
- Professional Experience : 5-8 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
- 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
- Release
As an Software Development Engineer 3 you will be expected to contribute to design, code review, refactoring, and project management.
You will be exposed to the following technologies:
- Web application frameworks: 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