Key Responsibilities:
1. Core Technical Delivery
- Design, develop, and maintain scalable and secure backend services using Java, Spring Boot, and microservices.
- Build and evolve RESTful APIs for web and mobile applications.
- Optimize performance and reliability (profiling, caching, query optimization, connection management).
- Implement and maintain unit, integration, and end-to-end tests for high-quality code.
- Troubleshoot and debug issues across development, QA, and production environments.
- Work with relational (MySQL/PostgreSQL) and NoSQL/caching databases (MongoDB, Redis).
2. Distributed Systems & Architecture
- Design and implement distributed systems considering consistency, latency, fault tolerance, and observability.
- Develop and promote reference architectures, coding standards, API design guidelines, logging, security, and deployment patterns.
- Contribute to architectural decisions to ensure:
- Scalability
- Reliability & Availability
- Security (auth, authz, encryption)
- Maintainability & Extensibility
- Resilience (circuit breakers, retries, graceful degradation)
- Ensure effective design, development, validation, and support (monitoring, alerts, runbooks) of architectures.
3. Leadership & Collaboration
- Mentor and coach junior engineers on design, estimations, code quality, and best practices.
- Participate in design reviews and code reviews to maintain high technical standards.
- Collaborate with frontend/mobile teams (Flutter / React / Vue) to align on API contracts, debug integration issues, and ensure consistent end-to-end user experiences.
- Work closely with Product, QA, DevOps, and other stakeholders in an Agile environment.
- Champion automation-first practices (CI/CD, test automation, infra-as-code).
4. AI & Modern Development Practices (Optional but Advantageous)
- Leverage AI-driven development tools (e.g., GitHub Copilot, ChatGPT) to improve productivity.
- Suggest improvements in architecture, tooling, and processes proactively.