Job Description
Life at Grab
At Grab, every Grabber is guided by The Grab Way, which spells out our mission, how we believe we can achieve it, and our operating principles – the 4Hs: Heart, Hunger, Honour and Humility. These principles guide and help us make decisions as we work to create economic empowerment for the people of Southeast Asia.
Get to know the Team:
The Streaming Data team strives to enable seamless and secure real-time access to the continuous events (aka data “streams”), serving as Grab’s unified, common access pattern for real-time data. We build the infrastructure and platform for writing, consuming, enriching and retrieving real-time data, and provide a cost-effective, fully managed “NoOps” service for all product teams to leverage. We work closely with our sister teams in DataTech to provide integrated data platforms that enable everyday opportunities with big data innovation.
The functional areas this team covers are streaming (Kafka), stream processing (Flink and Coban Pipelines, an internal framework), streaming data query layers, a realtime metrics platform, a time-series storage and forecasting platform, and a control plane for tenancy and resource management. This team is a mix of software engineers, site reliability engineers, and data engineers, and owns the stack from cloud, config, and Kubernetes layers to the application, framework, and SDK layers directly interfacing with it. Our customers are engineers, analysts, and data scientists at Grab (across all verticals like Transport, Deliveries, Geo, Ads, and various Fintech verticals), who leverage realtime data for state machines, pub/sub architectures, insights and reporting, forecasting and anomaly detection, ML model evaluation, as well as online feature engineering.
The team is responsible for mission critical systems and clusters that ingest and process 10s of TB of data every hour and make them available to end-users at millisecond latencies.
Get to know the Role:
Senior software engineers are significant and autonomous contributors to your team who are trusted with designing, creating, delivering, and operating the team’s software systems in a consistently high quality manner. When working on the systems within your team’s domain, you take into account the appropriate architectural patterns, code design, and infrastructure options, ensuring that you deliver a system that is secure, reliable, maintainable, extensible and very well tested. Beyond delivery to the production system, engineers will be responsible for post deployment monitoring as well.
Senior software engineers will also look for opportunities to improve processes within one’s own team. In addition to being trusted to operate independently, you also maintain a good partnership with your technical and non-technical stakeholders for projects that you are involved in. You take an active role in your projects as a team member involved in product design to rollout, taking ownership of your work and constantly focusing on moving these projects forward.
Being an experienced team member, you are also expected to continuously help the team grow and improve either by mentoring new or junior members of your team or by introducing and adopting process improvements.
The day-to-day activities:
- Understand, document, and iterate on functional and nonfunctional requirements for streaming data, processing, and anomaly detection platforms including those based on Kafka, Flink, in-house stream processing frameworks and control planes, Kafka and Scylla SDKs in golang, and InfluxDB.
- Engineering ownership for mission critical platform components, frameworks, SDKs and plugins in Go and Java, including ownership of SLAs, benchmarking, automated testing, and documentation. Architecting (via high fidelity technical documentation including team and cross-team RFCs) components as well as refactors of Go and Java code, from interface (API design) to component and code level design (with a strong understanding of design patterns and principles of common software and / or data architectures).
- Writing code that is well tested across the test pyramid/trophy (unit, integration, end-to-end) and can be maintained by a cross functional team.
- Writing code that is secure, and implementing security best practices for application security, as well as authoring secure extensions to open source software like Kafka, Flink, and Scylla via integrations with Grab internal security systems.
- Design and implement ORMs for common databases used in stream processing at Grab, including Scylla and InfluxDB.
- Participate in and own incident management for systems the team is responsible for, including on-call shifts, postmortems, and operational process improvements
- Citizenship: contribute to data tech and Grab RFCs, integrations, libraries, and initiatives.
- Interview for and mentor junior engineers.
The must haves:
- 1+ years as a software engineer with a strong understanding of CS and software engineering fundamentals (API design, design patterns, code quality, data structures, algorithms, testing and benchmarking) as well as its applicability to a distributed cloud environment for high performance data applications like Kafka, Flink, etc.
- Familiarity with a public cloud environment (preferably AWS and/or Azure)
- Demonstrable proficiency with Go and Java
- Some experience working with data and site reliability engineers and a level of familiarity with common tools along the interfaces between teams (Terraform, Helm, Ansible, Kubernetes, etc.)
Our Commitment
We are committed to building diverse teams and creating an inclusive workplace that enables all Grabbers to perform at their best, regardless of nationality, ethnicity, religion, age, gender identity or sexual orientation and other attributes that make each Grabber unique.
About Grab
Grab is the leading superapp platform in Southeast Asia, providing everyday services that matter to consumers. Today, the Grab app has been downloaded onto millions of mobile devices, giving users access to over 9 million drivers, merchants, and agents. Grab offers a wide range of on-demand services in the region, including mobility, food, package and grocery delivery services, mobile payments, and financial services across 428 cities in eight countries.