Lead Engineer (Backend)
Ezypay is a multi award-winning Fintech company established in 1996, specialising in the provision of subscription and recurring direct debit payments.
With offices in Australia, New Zealand and Malaysia, Ezypay has processed over $3 billion worth of subscription payments in 9 countries across the Asia Pacific region (Australia, New Zealand, Malaysia, Singapore, Philippines, Hong Kong, Taiwan, Thailand and South Korea) and we’re continually expanding.
Over the last few years, we have put significant effort into our next generation cloud subscription billing platform. This is a core strategic focus and we continue to actively develop and grow this platform. We now have a growing focus on building and expanding our Front-End platform.
You have extensive experience in the design and development of distributed, highly transactional systems. You understand and respect quality practices and do everything in your power to ensure NFR’s are met throughout the SDLC. You demand autonomy, and offer it to your team, who you are passionate about mentoring and growing into a high performing software development powerhouse.
You have business acumen, understand the role Engineering and Product takes in evolving Asia Pacific's leading recurring payments and subscription billing, and are ready to lead others in optimising our product to suit our customers’ needs and drive us towards our aggressive growth targets.
You’re a star on the rise who is looking for the opportunity to join a FinTech company in a really exciting period of growth, who is ready to step up and become the technical leader of a small but growing Engineering team, reporting into the CTO.
- You are a leader in our cloud platform, and maintain our best-in-class product, a Java based micro-services architecture hosted on AWS.
- As a Team Lead, you will work closely with the Senior Engineering members and the CTO to plan, develop, implement and test software programs that are easy to maintain, modular, well documented, and resource efficient.
- Work with all team members to regularly assess, investigate and remediate technical defects within the Ezypay platform.
- Perform operational procedures, including ongoing maintenance, on runtime systems, both manual and automated, in accordance with company standards.
- Provide recommendations for continuous improvement to the product and delivery process.
- Mentor and lead a small team of engineers
Our Technical Environment
As the Team lead you will be hands-on whilst leading and mentoring your team to success.
Here’s a high-level view of how we work:
- 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're also open to exploring Kubernetes
- 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’re introducing GraphQL (leveraging Apollo and Hasura) to open up our rich data model to internal and external stakeholders
- We develop frontend systems using the Vue framework
- 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 (Aurora) clusters are 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, and AWS EventBridge
- Bachelor’s Degree in Computer Science, Software Engineering or relevant Information technology industry experience.
- Solid grasp of computer science fundamentals, specifically data structures and algorithms.
- 7+ years industry experience with an in-depth understanding of distributed systems, 3+ years experience as a team lead.
- Strong working experience with
- Spring Boot
- RabbitMQ or similar AMQ
- Event Driven Architecture
- Postgres or similar
- Good understanding of security best practices in the context of web applications
- Good understanding of internetworking concepts and protocols
- Good knowledge of a modern software development lifecycle management methodology, such as SCRUM
- Working knowledge of SQL
- Team player attitude with a willingness to lead when necessary
- A great place to work
- Flexible/hybrid working arrangements and work life balance
- A fun team environment
- A dynamic and challenging technical environment
- Gym subsidies
- Casual Dress Cod