Back to search:Software Engineer / Jakarta

Responsibilities

  • Design and write with the Go language to improve the availability, scalability, latency, and efficiency of company'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

Qualifications

  • A degree in Computer Science, Software Engineering, Information Technology or related fields
  • 5+ years of experience in software engineering in a distributed systems environment
  • Experience 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 applications.
  • Proficiency in maintaining operational excellence and site reliability, including familiarity with monitoring system performance, ensuring system health, and managing service capacity planning.
  • Strong Computer Science fundamentals in algorithms and data structures
  • Familiarity with running large-scale web services; understanding of systems internals and networking are a plus
  • Experience 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 systems.
  • Possess excellent communication, sharp analytical abilities with proven design skills, and the ability to think critically of the current system in terms of growth and stability
  • 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
  • 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 mind
  • Experience in coaching and mentoring junior developers, providing guidance on coding standards, and promoting a collaborative learning environment within the team
  • Demonstrate a keen sense of product thinking, being able to align technical strategies with product goals, and understanding how development decisions can directly impact end-users