The core responsibilities for the job include the following:
Technical Leadership:
- Lead end-to-end design and development of complex, high-performing, and scalable software solutions.
- Drive technical decisions and establish best practices in software architecture, coding, and deployment.
- Own design reviews, balancing trade-offs to deliver optimal technical solutions.
System Design and Architecture:
- Architect robust, distributed systems and microservices that can scale globally.
- Perform advanced system design, factoring in scalability, security, and reliability requirements.
- Collaborate with cross-functional teams to align technical roadmaps with business objectives.
Code Quality and Optimisation:
- Champion clean, maintainable, and reusable code through design patterns, advanced coding practices, and automated testing.
- Conduct in-depth code reviews and technical audits to ensure quality and adherence to standards.
- Optimise critical performance bottlenecks, ensuring systems meet SLA and scale efficiently.
Mentorship and Team Development:
- Mentor SDE I and SDE II engineers, guiding them on design, debugging, and problem-solving.
- Foster a culture of technical excellence, collaboration, and continuous learning within the team.
- Drive knowledge-sharing initiatives, tech talks, and documentation improvements.
Ownership and Problem-Solving:
- Own critical features/modules, proactively identifying and addressing technical debt.
- Troubleshoot and resolve complex production issues with deep root cause analysis and solutions to improve system reliability.
- Lead incident response and post-mortems to drive operational excellence.
Agile Delivery:
- Lead Agile ceremonies like sprint planning, retrospectives, and daily stand-ups.
- Effectively prioritise features, bugs, and technical debt in collaboration with Product Managers and stakeholders.
- Ensure timely delivery of projects with high-quality code.
Continuous Innovation:
- Stay at the forefront of emerging technologies and tools to drive innovation in development practices.
- Identify opportunities for automating manual processes and improving engineering efficiency.
- Contribute to the team's technical vision, strategy, and roadmap.