Role
Job Description
About the role
We are looking for a Software Development Engineer II to join our core engineering team. You will be responsible for designing and implementing scalable backend services that power our platform. This role requires a developer who can take ownership of complex features from technical design to deployment, ensuring high performance and reliability in a hybrid work environment.
Responsibilities
- Design and develop scalable microservices using Java and Spring Boot.
- Optimise database queries and schema designs to reduce latency for high-traffic endpoints.
- Lead the implementation of new product features, ensuring code quality through rigorous peer reviews.
- Identify and resolve performance bottlenecks across the distributed system.
- Collaborate with frontend engineers to define and implement robust API contracts.
- Write comprehensive unit and integration tests to maintain high system stability.
Required skills
- Strong proficiency in Java and the Spring Boot framework.
- Experience with PostgreSQL or MySQL for relational data modelling.
- Hands-on experience with Redis or Memcached for caching strategies.
- Proficiency in building and consuming RESTful APIs.
- Experience with Docker and Kubernetes for container orchestration.
Nice to have
- Experience with Apache Kafka or RabbitMQ for asynchronous messaging.
- Familiarity with AWS services like S3, EC2, and RDS.
- Knowledge of GraphQL for flexible data fetching.
What success looks like
- Delivery of production-ready features that meet technical specifications and deadlines.
- Reduction in system response times through effective code and query optimisation.
- Maintenance of a clean, modular codebase with high test coverage.
- Successful mentorship of junior developers through technical guidance and code reviews.
Skills
What you bring
Must have
JavaSpring BootPostgreSQLRedisDockerKubernetes
