Review - 6 Months in Coupang
- Published on
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.
- Published on
Review - 6 Months in Coupang
- Published on