The position reports to the Head of Engineering.
Job Overview:
- To lead the design, development, and enhancement of business-critical applications, providing technical guidance and mentorship to the engineering team.
- You will be a key player in driving our technical strategy and ensuring the delivery of high-quality, scalable, and robust software solutions.
Your work life:
- To lead and own the full Software Development Lifecycle, from technical design, development, testing, deployment and support of end users.
- Drive the technical design and architecture of complex software solutions, making key decisions on technology stacks and implementation approaches.
- Set and enforce high standards for software quality, including code reviews, testing strategies, and performance benchmarks.
- Establish and promote best practices for software development, including coding standards, design patterns, and documentation.
- Mentor and coach junior and mid-level engineers, fostering a culture of technical excellence and continuous improvement.
- Lead project planning, estimation, and execution, ensuring timely delivery of high-quality software.
- Oversee the creation and maintenance of technical documentation, ensuring it is clear, comprehensive, and up-to-date.
To be considered, you’ll need:
- Bachelor's Degree in Computer Science/Information Technology or equivalent.
- Strong experience (at least 5 years) in Java and Spring Boot framework, as well as its associated ORM frameworks such as JPA with Hibernate, MyBatis.
- Proficient in using dependency management tools such as Maven or Gradle to manage project dependencies.
- Understanding of Object-Oriented Programming (OOP) and SOLID principles.
- Strong background in RESTful API design principles and best practices.
- Knowledge of secure coding practices and application security principles, including input validation, authentication, authorization, and vulnerability mitigation.
- Basic understanding of front-end web development (HTML, CSS, JavaScript). Familiarity with any modern framework (React, Next, Vue) is a huge plus.
- Experience with Software Development Lifecycle (SDLC) as well as modern software engineering tools and practices such as Confluence, JIRA, Scrum and Agile methodologies.
- Ability to translate business requirements into system designs, solutions and design concepts using tools such as ER diagrams, UML, flow charts
- Well versed in relational database design and implementation, and proficient with relational database such as MySQL and PostgreSQL.
- Ability to write unit tests and familiarity with testing frameworks (e.g., JUnit, Mockito).
- Experience with JVM tuning and performance optimization, including garbage collector tuning.
- Strong understanding of microservices and design patterns, including API Gateway, service mesh, circuit breaker.
- Experience with containerization technologies, particularly Docker, for application development, packaging and deployment.
- Solid experience working with *nix systems and git.
- The following points are nice to have and will help us prioritise your application:
- Experience leading technical teams and projects.
- Cloud platforms (AWS, Azure, GCP)
- CI/CD pipeline experience (e.g. GitLab Pipelines, GitHub Actions, Jenkins)
- API documentation tools (Swagger/OpenAPI)
- NoSQL (MongoDB, Redis, AWS DynamoDB)
- HashiCorp Vault & Consul
- Message queues & Kafka streams
- Monitoring tools e.g. ELK, Grafana
What you get:
- Cool and innovative work environment
- Work-life balance and our working hours are flexible
- We are too cool for ties. Smart casual is our game!
- We care about you and your family’s health and wellbeing
- Learning and growth opportunity
- We have an indoor slide and a cafe! How fun is that?!
- Free car park within the company compound
*Only shortlisted candidates will be notified. So, make your CV as fun and interesting as possible!