
Lead Software Engineer
- Nottingham
- Permanent
- Full-time
- Microservices Architecture: Design and implement scalable and high-performance microservices architectures that can handle increasing traffic and complex workloads.
- Kubernetes & Containerization: Lead the architecture, deployment, and management of containerized applications using Kubernetes, ensuring they are highly available, scalable, and resilient.
- System Scalability: Ensure that the systems are designed for horizontal scalability and can handle large volumes of traffic by effectively utilizing Kubernetes and container orchestration tools.
- Continuous Improvement: Drive the adoption of best practices and improve existing microservices, systems, and workflows to enhance system performance, reliability, and efficiency.
- Mentorship & Leadership: Provide leadership and mentorship to engineering teams, helping to develop junior and mid-level engineers by fostering a culture of learning and knowledge sharing.
- Collaboration: Work closely with product managers, designers, and other engineering teams to deliver robust, production-ready solutions that meet business goals.
- DevOps & CI/CD: Own and lead efforts in automation of the development lifecycle, ensuring efficient deployment processes and effective use of CI/CD pipelines in a Kubernetes environment.
- Troubleshooting & Debugging: Lead efforts in identifying, diagnosing, and resolving issues across distributed systems, ensuring system uptime and availability.
- Security & Compliance: Implement and ensure that microservices are secure, scalable, and compliant with relevant industry standards.
- Innovation: Stay up-to-date with the latest trends in microservices, Kubernetes, and distributed systems, applying new tools and techniques to improve our platform.
- Experience: 5+ years of experience in software engineering, with at least 2 years of specialized experience in designing, implementing, and managing microservices architectures.
- Expertise in Microservices: Strong experience designing and developing microservices-based applications and distributed systems.
- Kubernetes & Containers: Deep expertise in Kubernetes, Docker, and container orchestration. Proficient in deploying, managing, and scaling applications in Kubernetes clusters.
- Cloud Platforms: Proficiency with cloud platforms like AWS, GCP, or Azure, with hands-on experience deploying and managing containerized applications.
- Programming Skills: Strong coding experience in languages such as C#, Go with an emphasis on writing clean, maintainable, and efficient code.
- API Design & Development: Solid understanding of RESTful APIs, gRPC, and asynchronous messaging (Kafka, RabbitMQ, etc.).
- CI/CD & DevOps: Strong experience with CI/CD pipelines, automation, and DevOps practices. Familiarity with tools like Jenkins, GitLab CI, CircleCI, Helm, and Terraform.
- Monitoring & Logging: Familiarity with monitoring and logging solutions (Prometheus, Grafana, ELK Stack, etc.) to ensure the health and performance of Kubernetes-based systems.
- Leadership Skills: Proven ability to lead and mentor engineering teams, driving projects to completion while fostering a collaborative, innovative, and high-performance environment.
- Problem-Solving: Strong troubleshooting and problem-solving skills with the ability to analyze and resolve complex technical challenges in a distributed environment.
- Cloud-Native Technologies: Familiarity with cloud-native tools and ecosystems such as service meshes (Istio, Linkerd), Helm charts, and Kubernetes Operators.
- Microservices Frameworks: Experience with frameworks and tools that facilitate microservices architecture, such as Spring Boot, Micronaut, or similar.
- Infrastructure as Code (IaC): Proficiency with Infrastructure as Code (IaC) tools such as Terraform or CloudFormation.
- Distributed Tracing: Experience with distributed tracing tools like Jaeger or OpenTelemetry for debugging microservices.
- Security: Strong knowledge of securing microservices, Kubernetes clusters, and cloud-based applications.