About the role :
As a Backend Engineer , you independently plan, develop, implement and test software programs that are easy to maintain, modular, well documented, and resource efficient
As a Backend Engineer, you will :
- Be a core member of the Backend Engineering team and maintain our best-in-class product, a Java based micro-services architecture that is fully cloud hosted on AWS.
- Work alongside other engineers on the team to maintain technology standards and participate actively in code reviews, assisting with the application of standards around i.e. software quality, security, and correctness.
- Perform operational procedures, including ongoing maintenance, on runtime systems, both manual and automated, in accordance with company standards.
- Participate in the broader process of defining system architecture - both in terms of software and systems.
- Provide recommendations for continuous improvement to the product and delivery process.
Requirements
Our Technical Environment
Our next generation payments platform has been developed using Java – specifically leveraging the Spring Boot frameworkOur infrastructure is hosted on AWS; using a mixture of containerization (Fargate) and vanilla EC2We use Amazon MQ (RabbitMQ) as message broker to enable asynchronous communication between servicesOur systems are secure and highly available – we have implemented passive and active monitoring and incident escalation using a combination of Datadog, CloudWatch Logs and Metrics, Postman, and PagerdutyWe utilise GraphQL (leveraging Apollo and Hasura) to open up our rich data model to internal and external stakeholdersWe develop frontend systems using the Vue, Angular, and Ionic frameworksWe aggregate and analyze logs from all of our systems via the ELK stackOur operating system of choice is CentOS and our DevSecOps team is fanatical about security, monitoring, and patch managementOur infrastructure is immutable and managed using IaC principles via TerraformWe leverage build automation (specifically CircleCI), and we’re working toward continuous deployment across all environmentsWe take advantage of AWS services to meet our various technology requirements :PostgreSQL databases run on Aurora Serverless or Aurora clusters managed via RDSRedis clusters are managed via ElastiCacheKMS provides managed security servicesAWS Lambda and API Gateway support our serverless infrastructure; DynamoDB is also an important part of our stackWe utilise highly durable messaging technologies such as SQS, Kinesis, Amazon MQ and AWS EventBridgeRequirements
5+ years’ software development or programming experience, with an in-depth understanding of distributed systemsGood working experience with Java(8 or later), with experince in Spring Boot Framework and SQLSolid grasp of computer science fundamentals, specifically data structures and algorithms.Working knowledge of a modern software development lifecycle management methodology, such as SCRUMBenefits
Generous salary packageGym subsidiesCasual dress codeFlexible working arrangements ( including work from home and remote )Delicious office snacksGuidance and mentoring from leaders within the businessDynamic, positive work environmentFantastic team culture