Every bullet on my CV is a decision under load. Here are three of them you can actually touch: type into the search, switch the shopper, fire a request. The numbers are real; the toys are honest.
To make “eskrim” find “es krim coklat”, search concatenates adjacent words into extra tokens. Great, until partial matching let “buku” match “bumbu kuning sasha”, because buku hides inside bumbu·kuning. The fix: prefix matching (edge-ngram) on those generated tokens. Flip the switch and watch it behave.
Static ranking shows everyone the identical list. The ML ranking I shipped into the hotel search results page scores each candidate against who's actually searching. Switch the shopper, watch the list physically re-sort and the score bars rebuild.
During a flash sale, hitting Elasticsearch on every request is how you melt the cluster. So data carries two clocks: a short hot window served from memory, a longer cold TTL that serves stale while it refreshes behind your back. The clock below loops; fire a request and see what it would pay.
That's the fun half of the resume. The rest (the timeline, the projects, the graveyard) lives back home.
← back to aduh!dev