About you
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 take ownership of the overall health of platforms, actively driving monitoring & improvements in platform health, including stability, availability, testability and performance.
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 are comfortable and confident in coordinating engineering resources across multiple concurrent projects, driving the delivery of key Engineering initiatives, and engaging and communicating with key stakeholders within and external to the business,
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 a growing Engineering team in enhancing and evolving our Platform to maintain and increase our incredible rate of growth.
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, and work directly with the CTO to propel our Engineers and our Product into the next phase of evolution.
Main Responsibilities
- You own the overall health of our applications, and maintain our best-in-class product, a Java based micro-services architecture hosted on AWS.
- You own the observability of our application stack, making sure that we have the right level of observability, including SLOs.
- You are accountable for identifying, planning for and remediating architectural and scalability challenges, and other elements of technical debt.
- You will work closely with key stakeholders and the CTO to ensure that key Engineering initiatives are delivered to expectation
- You will mentor and coach several engineering teams, fostering a culture of continuous improvement and ownership of production-ready code.
- You will hire and retain the best talent possible within the Engineering team
- You will manage our portfolio of development related tools and processes, including evaluating and recommending new tools and processes
Our Technical Environment
As the Engineering Manager you aren’t expected to be hands-on, but you are expected to have a solid technical background, and be able to understand, direct and lead the Engineering team when it comes to our technical stack.
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 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 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 (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.
- 10+ years industry experience with an in-depth understanding of distributed systems, 3+ years experience as an Engineering Manager or in Technical Management roles.
- Experience working in complex system architectures, operations and support structures
- Experience working with AWS (preferred) or Azure/GCP
- Strong working experience with :
*Java
*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
- Strong knowledge of a modern software development lifecycle management methodology, such as SCRUM
- Working knowledge of HTML5, CSS3, and JavaScript
- Working knowledge of SQL
- Ability to lead, coach and mentor to get the best out of your team