Review - 6 Months in Coupang

By Kaden Sungbin Cho
Picture of the author
Published on
pondering on the past

I've joined Coupang about 5 months ago as a recommender system software engineer. Here I've wrote down several inspiring points of working in Coupang before I lost my fresh view and feedlings on it.

General Organizational cultures

It might be little bit different by the one's context, so the following would be subjective.

User Problem-driven

Most of the projects are driven with the user problems to solve. The problems are defined with rich internal data, solutions for it are described and the success & failure criteria is state in metric-wise. 1-Pager that includes all the above information could make a team move forward.

Experimentation-driven

It's the data and A/B testing that would be the foundational work for from problem statement to decision on success or failure. Implementation of A/B test in the code level has already passed the ROI threshold, and this seems to be the ciritical asset of the overall product improvement cycle. So, all the changes requires significant(or acceptable) improvement before it's actually 'merged' into the current application. (Ron Kohavi's book Trustworthy Online Controlled Experiments is worth reading for this topic)

Own problem, not domain

Yes, normally the changes on the domain is executed by the domain owners, but other stakeholders can relatively freely contribute to the target domain to solve their critical problems. It's common to have a detailed guides, to host many new contributors from other domains.

Self AAR

Recommender system is a backend system that owns some data-intensive processing to serve the users (this part is defining difference from the other common backend like member, payment, order, etc). Similars are search, ML serving like chatbot, etc.

So, recommender software engineers are mainly involved into the following 4 types of tasks: Modeling, Pipeline, Serving, Operation.

Pipeline

This is an offline data processing to extract 'sorted candidates' for a specific user. I've added a job to merge some datasets to the pipelines consisted of Spark with Java, Scala, and Python.

Serving

Real-time service to response with recommended widgets and lists for each widget. Kind of an aggregator with several upstream data sources serving GRPC endpoint with vairous arguments.

Operation

Maintenance and monitoring of modeling, pipelinin, and serving. Tasks could be migrating Spark Version, changing AWS LB configuration to control the traffics, and migrating internal CICD tools follwing company-wide guidance.

Specifically, for weekly rotaion oncall, engineers should be ready for the phone call triggered by monitoring system during the oncal period.

Join our newsletter

Stay tuned with 100+ Software engineers
Latest backend & growth trends in your mail box on every Wednesday