Overview
- Design and write with the Go language to improve the availability, scalability, latency, and efficiency of Grab's range of services
- Work with the engineering team to explore and create new design / architectures geared toward 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, analyze, and fix large-scale systems
- Pro-actively debug and solve production incidents during your on-call shift
- Participate in interview loops to help Grab continue hiring top industry talent
- Provide technical guidance, mentorship, and knowledge sharing to peers
The Must-Haves
A degree in Computer Science, Software Engineering, Information Technology or related fields5+ years of experience in software engineering in a distributed systems environmentExperience with Golang, including an understanding of its core syntax and semantics, familiarity with its standard library, its concurrency primitives, and experience in developing and optimizing Golang applicationsProficiency in maintaining operational excellence and site reliability, including familiarity with monitoring system performance, ensuring system health, and managing service capacity planningStrong Computer Science fundamentals in algorithms and data structuresFamiliarity with running large-scale web services; understanding of systems internals and networking are a plusExperience in developing distributed systems with high throughput and scalability, including a deep understanding of streaming systems and queuing models and their respective integration into these systemsPossess excellent communication, sharp analytical abilities with proven design skills, and the ability to think critically of the current system in terms of growth and stabilityYou 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 GolangThe Good-to-Haves
Expert knowledge in databases, including relational databases such as MySQL and NoSQL databases like AWS DynamoDB, Scylla, and others, accompanied by a distinct understanding of various design decision implications. Capable of architecting highly scalable solutions while keeping cost-effectiveness in mindExperience in coaching and mentoring junior developers, providing guidance on coding standards, and promoting a collaborative learning environment within the teamDemonstrate a keen sense of product thinking, being able to align technical strategies with product goals, and understanding how development decisions can directly impact end-usersTech Stack
Our core services tech stack is primarily built in Golang, utilizing Redis, MySQL, DynamoDB, Kafka, and Elasticsearch for data storage. These services are orchestrated using Kubernetes and run on the AWS cloud infrastructure, equipped with auto-scaling abilities. Our mobile app platform coverage includes native iOS, and Android, written in Swift / Kotlin, RxJava, and Flutter. Our previously developed front-end is built on Rails, HTML5, CSS, React, and Javascript. We use GitLab 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 GitLab CI, DataDog, Code Climate, and Jenkins.
#J-18808-Ljbffr