We are looking for a hands‑on Software Development Team Lead to lead and mentor a team of 3–5 junior software engineers. You will guide technical design, support day‑to‑day development, and help the team deliver reliable software across an existing monolithic application and a growing ecosystem of microservices.
This role combines technical leadership, solution design, hands‑on development, and cross‑functional coordination. You will translate business requirements into clear technical specifications and solution diagrams, while working closely with QA, Product, Project Management, DevOps, and Helpdesk teams to support delivery and ongoing operations.
Key Responsibilities
- Lead the design, development, testing, and deployment of features across monolithic applications and microservices.
- Translate business and product requirements into practical technical solutions, development tasks, and acceptance criteria.
- Prepare and maintain solution documentation, including:
- Entity Relationship Diagrams (ERDs) showing database entities, relationships, and constraints.
- Sequence and process flow diagrams showing system interactions, business workflows, and exception handling.
- System overview and module diagrams showing major components, module responsibilities, dependencies, and integration points.
- Define API contracts, service boundaries, data models, and integration approaches.
- Evaluate when to extend the existing monolith and when to introduce or extract standalone services, considering delivery effort, maintainability, and scalability.
- Establish and review coding standards, testing practices, security controls, CI/CD processes, and system monitoring.
- Stay hands‑on through code reviews, complex troubleshooting, and development of critical features.
Team Leadership and Mentoring
- Lead, guide, and mentor a team of 3–5 junior software engineers, helping them build technical skills, problem‑solving ability, and ownership of their work.
- Explain solution designs and break down complex requirements into clear, manageable development tasks.
- Provide regular coaching through code reviews, pair programming, technical discussions, and knowledge‑sharing sessions.
- Review implementation approaches early, identify skill gaps, and provide practical guidance throughout development.
- Allocate tasks according to team capacity and development needs, and help remove technical blockers.
- Conduct regular one‑to‑one discussions and provide constructive feedback on performance and professional growth.
- Balance hands‑on technical work with team leadership, adjusting involvement according to project and team needs.
Delivery Planning and Coordination
- Work with Product and Project Management teams to clarify scope, priorities, dependencies, estimates, and delivery milestones.
- Lead technical task breakdown, sprint planning, and progress tracking.
- Identify and communicate technical risks, resource constraints, and delivery issues early, with proposed actions.
- Ensure completed work meets agreed requirements, quality standards, and release readiness criteria.
- Keep technical documentation current as requirements and implementations change.
Cross‑Functional Collaboration
- Collaborate with QA: Clarify expected behaviour, support defect investigation, and coordinate fixes and regression testing.
- Product: Clarify business needs, assess feasibility, discuss technical trade‑offs, and align implementation with product priorities.
- Project Management: Provide estimates, progress updates, dependency information, and risk assessments to support delivery planning.
- Helpdesk: Investigate escalated issues, explain system behaviour, provide troubleshooting guidance, and share known issues, work‑arounds, and release changes.
- DevOps and other engineering teams: Coordinate environments, deployments, integrations, monitoring, and production troubleshooting.
- Communicate technical designs and decisions clearly to both technical and non‑technical stakeholders.
Full Stack and Production Ownership
- Guide backend development and frontend integration to ensure features work reliably from end to end.
- Ensure APIs and services are secure, performant, tested, and adequately documented.
- Support production issue diagnosis, root cause analysis, and corrective actions.
- Share operational knowledge with QA and Helpdesk teams to improve issue resolution and reduce recurring incidents.
Required Qualifications
- 5–8 years of software development experience, including backend development and full stack integration.
- At least 1–3 years of experience leading or mentoring developers as a Team Lead, Technical Lead, or Senior Software Engineer.
- Demonstrated ability to guide junior engineers through technical design, implementation, testing, and troubleshooting.
- Experience maintaining monolithic applications and developing or integrating microservices.
- Ability to prepare and explain ERDs, sequence diagrams, process flows, and system architecture or module diagrams.
- Strong proficiency in one or more backend technologies, such as .NET, Node.js, or Python, with the ability to work across different technology stacks.
- Solid understanding of RESTful APIs, asynchronous messaging, and event‑driven architecture.
- Experience with relational databases with SQL Server and familiarity with NoSQL databases and caching technologies.
- Understanding of system design principles, including scalability, fault tolerance, data consistency, security, and maintainability.
- Experience with automated testing, version control, CI/CD pipelines, and production troubleshooting.
- Hands‑on experience with Docker and cloud platforms such as AWS or Azure; familiarity with Kubernetes.
- Strong planning, problem‑solving, and communication skills.
- Ability to collaborate effectively with QA, Product, Project Management, Helpdesk, DevOps, and other engineering teams.
Nice to Have
- Experience with incremental monolith modernisation, including the strangler fig pattern.
- Familiarity with Kafka or similar messaging platforms.
- Experience with frontend frameworks such as React, Angular, or Vue.
- Familiarity with monitoring and observability tools such as Prometheus, Grafana, ELK, or Datadog.
- Experience working in Agile/Scrum teams.
- Experience improving technical onboarding, team documentation, or developer training.