Software Engineer (Core Backend)


April 2018 - July 2019, Jakarta, Indonesia
Tags go mysql postgresql mongodb aerospike redis travis buddy-works google-cloud-pubsub docker kubernetes openAPI-3 kurio

Roles and Responsibility

  • Help Kurio ‘s product team to rebuild and create a new version of Kurio V4. My jobs are to help the backend team to ensure the API for Kurio V4 is delivered and serve the API to mobile applications, such as:
    • Discuss and design the microservices architecture for the Kurio v4, from Logging, Feed API, Content API, Collection API, API Gateway, Auth and User Service and Ads.
    • Help the backend team to implement all the design architecture, since it was a huge project, I only can help to develop the Content Service, Feed, and API Gateway service.
    • Performances tune-up. Load testing, and profiling to all of our services before released to ensure the system is safe for the production environment.
  • Rebuild and redesign from scratch the new architecture of our Feed Services in Kurio. Instead of trying our old architecture, we trying to invent new architecture a more functional-ish project. We try a functional way with Golang when developing this project.
  • Helping the Infra team to migrate all Kurio’s projects to Kubernetes (Google Cloud) - I just helping to dockerize and creating the deployment config.
  • Mentoring new Engineer

Articles and Publication

Projects and Open Source (Might be not updated)

  • gotcha (10★) gotcha: in-memory-cache in Go (Golang) with a customizable algorithm. This project is a simple project that I made after learning about lru-cache and lfu-cache.

  • go-clean-arch (2.4K ★) My first architecture in Golang. I write the explanation in an article here

  • faker (1.1K★) A Fake Data Generator, for Testing needs. Will generate a completed object based on your Struct with some random data. Save your time, focus on your testing. No more stressing about filling the struct data.

  • testada A mini library that I made to provide a boilerplate for integration-testing in Golang. I put this under golangid organization (that I maintained). This library was used by Kurio’s engineer in the internal projects.

Iman Tumorang
Software Engineer