We’re looking for anexperienced software engineer who enjoys taking ownership of projects fromconcept to deployment. You’ll be part of a collaborative team where yourtechnical judgement, hands-on skills, and ability to see the bigger picturewill be highly valued. Your main responsibilities will include:
We’re looking for someone with a solid technical foundation, hands-on experience, and a proactive mindset. Ideally, you’ll bring:
-
6+ years of relevant professional experience in software development.
Experience designing event-driven distributed systems using messaging technologies such as Kafka, Pulsar or RabbitMQ, with asynchronous communication patterns and scalable data ingestion pipelines.
Experience designing scalable distributed applications with microservices, high availability, fault tolerance, resiliency and performance optimisation.
Experience designing large-scale batchand streaming data pipelines, analytical data models and modern storage formats such as Parquet.
Experience implementing unit, integration, end-to-end and API contract testing to ensure software quality and maintainability.
Experience designing observable systems using metrics, logging, distributed tracing and tools such as Prometheus and Grafana.
Experience with cloud platforms (e.g. AWS, GCP, Azure).
Strong programming skills in Python, with clean, maintainable code.
Experience working with Kubernetesand containerised environments.
Familiarity withCI/CD pipelines and modern development workflows.
Experience designing or maintainingETL processes, especially when working with large volumes of data.
Solid understanding of databases (SQL and/or NoSQL), data modelling, and performance considerations.
A good grasp of software architecture principles and the ability to make sound technical decisions.
Experience producing architecture documentation, leading technical discussions, mentoring engineers and defining engineering standards and best practices.