About The Team
The backend engineering team develops the digital backbone of the bank that drive all user experiences. They create robust, scalable, and secure backend systems. They are responsible for designing, developing, deploying, and monitoring all backend services in production. The team develops and maintains a strategic technology roadmap and ensures the application team implements best practices to ensure optimal performance, scalability, and availability of our systems. The team works very closely with the all the application development teams to ensure that all solutions are aligned with the business and technical requirements, and to enhance the overall quality and performance of the systems
Get To Know The Role
- We are seeking talented & passionate Senior Backend Engineer to join our team.
- You will have opportunities to work on multiple backend service clusters as well as participating in machine learning pipelines. It is very important that our team member take initiatives to identify problems, and have the right mindset and skill sets to solve them.
Responsibilities
- Design and write with the cutting edge GO language to improve the availability, scalability, latency, and efficiency of Digibank's range of services.
- Work with the engineering team to explore and create new design / architectures geared towards scale and performance.
- Participate in code and design reviews to maintain our high development standards.
- Engage in service capacity and demand planning, software performance analysis, tuning and optimization.
- Collaborate with product and experience teams to define and prototype feature specifications.
- Work closely with the infrastructure team in building and scaling back-end services as well as performing root cause analysis investigations.
- Design, build, analyse and fix large-scale systems.
- Learn full stack performance tuning and optimization.
- Debug and modify complex production software.
- You will develop features as defined in the product or engineering specifications.
- You will author specifications documents as per functional requirements provided by the product team.
- You will help to mentor any junior engineers about the best-practices in software development.
- You will have service ownership of several microservices in the squad.
Requirements
- You can be a good coder in any language (C++, C, Java, Scala, Rust, Haskell, OCaml, Erlang, Python, Ruby, PHP, Node.JS, C# etc.), but willing to work on Golang.
- Has at least 3-5 years of experience as a backend developer.
- A good knowledge of programming design patterns (Singleton, Factory, etc).
- A solid understanding of the concept of clean code and SOLID principles.
- A good understanding of the clean architecture principles.
- Familiarity in developing services that serve HTTP Restful API, consume and publish messages from and to any stream platform like Kafka or Messaging platform like SQS.
- Familiarity with containerization (Kubernetes and Dockerfile).
- Familiarity with any cloud deployment service, e.g AWS.
- Good understanding of CI/CD concepts.
- An exposure to Microservice architecture pattern, and have been involved in development of a microservice from design stage to deployment stage.
Our Tech Stack
- Our core services tech stack consists of Golang with Redis, MySQL, DynamoDB, Elasticsearch data stores as well as HAProxy load balancers. They all run on the AWS cloud infrastructure with auto-scaling abilities.
- Our mobile app platform coverage includes native iOS and Android, written in Swift and RxJava. Our Command Center front-end is built on Rails, HTML5, CSS and Javascript.
- We use GitHub for our code repository and we adhere to the basic Continuous Delivery tenets utilising a host of tools to support our release pipeline and code quality. These include Travis CI, New Relic, PullReview, Code Climate, Papertrail, Gemnasium, JFrog and Jenkins.