Johannesburg, South Africa

Team Lead LPR

 Job Description:

The Team Lead: License Plate Recognition (LPR) is responsible for leading a team of software engineers to consistently deliver high-quality, high-performance software that powers the most advanced license plate recognition capability in Africa.

This role combines hands-on technical leadership with clear ownership of delivery. The Team Lead shapes system architecture and API design, sets and enforces strong engineering standards in C#/.NET and large-scale event-driven systems, and ensures robust operational practices so the platform remains fast, reliable, and scalable under real-world load.

Beyond technology, the role is accountable for growing a capable, cohesive engineering team. Through mentorship, coaching, and regular feedback, the Team Lead supports engineers, particularly juniors to build confidence, autonomy, and strong engineering habits. By removing blockers, shielding the team from unnecessary disruption, and improving documentation and communication, the Team Lead creates the conditions for sustained execution.

The systems delivered by this team are proven to stop crime and deter criminals. As such, the role requires sound judgment, a bias toward measurable outcomes, and a deep commitment to building technology that performs when it matters most.

Key Responsibilities

Delivery & Team Leadership

  • Own the teams delivery commitments, ensuring predictable, high-quality output and continuous improvement.
  • Plan, prioritise, and sequence work; manage risks, dependencies, and scope trade-offs.
  • Set clear expectations and accountability aligned to goals and definition of done.
  • Protect the team by filtering noise, managing stakeholder expectations, and preventing disruption from shifting priorities.

Technical Leadership (C#/.NET)

  • Set and uphold a high bar for C# engineering practices, including async/await correctness, memory management, dependency injection, testing, analyzers, performance profiling, and reusable design patterns.
  • Maintain clean architecture principles and prevent short-term fixes from becoming long-term technical debt.
  • Lead design, architecture, and performance reviews for complex systems.

Event-Driven Architecture

  • Design, evolve, and own large-scale event-driven systems (pub/sub, queues, streams) with clear ownership boundaries and scalability targets.
  • Define and govern event contracts and schemas, including versioning, compatibility rules, and review processes.
  • Ensure system health through idempotency, retry strategies with backoff, circuit breakers, dead-letter handling, and graceful degradation.

API & Platform Excellence

  • Lead API design standards across REST, GraphQL, and gRPC, including resource modelling, pagination, error models, security, and backward compatibility.
  • Validate performance, load expectations, and capacity planning across services.
  • Ensure secure-by-default design, secrets hygiene, least privilege access, threat modelling, and timely dependency updates.

Reliability, Observability & Operations

  • Own observability standards, ensuring consistent logs, metrics, and traces.
  • Define and track SLOs and SLIs; use telemetry to guide prioritisation.
  • Establish incident readiness through runbooks, on-call practices, postmortems, and action tracking that prevents repeat incidents.

Quality & Testing

  • Define and enforce testing strategies, including unit, integration, contract, and end-to-end testing.
  • Ensure CI reliability, reduce flaky tests, and maintain meaningful test coverage.
  • Raise the overall code review and quality bar across the team.

People Development & Team Health

  • Mentor junior engineers in fundamentals, debugging, design thinking, and communication.
  • Grow mid-level engineers through stretch opportunities, delegation, and targeted feedback.
  • Run regular, effective 1:1s focused on support, performance, and career development.
  • Contribute to hiring, onboarding, levelling, and building a healthy team culture with strong feedback loops and psychological safety.

Documentation & Communication

  • Ensure high-quality, up-to-date documentation, including RFCs, ADRs, API documentation, runbooks, and onboarding guides.
  • Improve clarity and alignment through strong written and verbal communication.

Measures of Success

  • Delivery Predictability: Planned scope delivered per sprint/iteration and variance vs plan.
  • Cycle & Lead Time: Median time from work start to production for typical changes.
  • Production Reliability: SLO attainment for availability, latency, and error rates.
  • Incident Performance: Incident rate, MTTR, and completion of postmortem actions.
  • Quality Signals: Change failure rate, escaped defects, and regression trends.
  • Event-Driven System Health: Message success rate, dead-letter volume, consumer lag, and idempotency-related failures.
  • API Excellence: Compliance with API standards and frequency of breaking changes.
  • Documentation Coverage: Percentage of major releases shipped with required documentation.
  • People Growth: Progress against individual growth plans and onboarding effectiveness.
  • Team Health & Retention: Engagement scores, retention, and reduction in blocked time.

Qualifications & Experience

Required

  • Bachelors degree in Computer Science, Software Engineering, or a related field.
  • 5–8+ years of professional software engineering experience, including hands-on C#/.NET delivery in production.
  • Proven experience leading a single engineering team (3–7 engineers), formally or informally, with ownership of delivery and prioritisation.
  • Strong experience designing and operating large-scale event-driven or distributed systems (e.g. Kafka, RabbitMQ, Azure Service Bus).
  • Demonstrated expertise in API design and evolution (REST/GraphQL/gRPC), including versioning, security, performance, and backward compatibility.
  • Clear evidence of mentorship and people development through coaching, code reviews, onboarding, and feedback.

Technical Stack & Knowledge

  • Strong understanding of microservices architecture and best practices.
  • Proficiency with Microsoft Azure services, including Azure Functions, App Services, Storage, and Azure DevOps.
  • Experience with CI/CD pipelines (Azure DevOps, GitHub Actions, GitLab CI/CD, or similar).
  • Familiarity with Test-Driven Development (TDD).
  • Solid problem-solving and troubleshooting skills.

Nice to Have

  • Azure certification.
  • Experience with containerisation and orchestration (Docker, Kubernetes).