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.
Our Technical Environment
- Our next generation payments platform has been developed using Java – specifically leveraging the Spring Boot framework
- Our infrastructure is hosted on AWS; using a mixture of containerization (Fargate) and vanilla EC2
- We use Amazon MQ (RabbitMQ) as message broker to enable asynchronous communication between services
- Our 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 Pagerduty
- We utilise GraphQL (leveraging Apollo and Hasura) to open up our rich data model to internal and external stakeholders
- We develop frontend systems using the Vue, Angular, and Ionic frameworks
- We aggregate and analyze logs from all of our systems via the ELK stack
- Our operating system of choice is CentOS and our DevSecOps team is fanatical about security, monitoring, and patch management
- Our infrastructure is immutable and managed using IaC principles via Terraform
- We leverage build automation (specifically CircleCI), and we’re working toward continuous deployment across all environments
- We take advantage of AWS services to meet our various technology requirements:
- PostgreSQL databases run on Aurora Serverless or Aurora clusters managed via RDS
- Redis clusters are managed via ElastiCache
- KMS provides managed security services
- AWS Lambda and API Gateway support our serverless infrastructure; DynamoDB is also an important part of our stack
- We utilise highly durable messaging technologies such as SQS, Kinesis, Amazon MQ and AWS EventBridge
Requirements
- 5+ years’ software development or programming experience, with an in-depth understanding of distributed systems
- Good working experience with Java(8 or later), with experince in Spring Boot Framework and SQL
- Solid grasp of computer science fundamentals, specifically data structures and algorithms.
- Working knowledge of a modern software development lifecycle management methodology, such as SCRUM
- Generous salary package
- Gym subsidies
- Casual dress code
- Flexible working arrangements (including work from home and remote)
- Delicious office snacks
- Guidance and mentoring from leaders within the business
- Dynamic, positive work environment
- Fantastic team culture