I am a Korean search and ML systems engineer. I spent five and a half years at 42Maru building Korean search and question-answering systems, and I now build and operate production ML systems for insurance at a global financial services company, owning their monitoring and iteration after deployment.
Global Financial Services · Data Scientist · 2024–present
I build and operate models for customer retention, sales activity, and risk review, tracking operational metrics and data drift in production and reworking the recurring operations around them.
Beyond modeling, I work on enterprise AI-use standards and review processes, and help business teams understand and actually use AI in their work.
42Maru · Search / Question Answering · 2019–2024
I built query interpretation with structured search expressions and dictionaries and tuned BM25. I designed evaluation sets to measure ranking quality, and worked across the search stack: RAG, MRC, and unstructured-data pipelines. DSME semantic question answering and Hana Bank OCR-NLP are projects from this period.
Failure cases collected from the question-answering system fed into national dataset projects I worked on, which released 5 datasets with about 2.27M question–answer pairs through NIA AI-Hub. KAIST and KakaoBank’s K-FinHallu uses dataset 71610, and ACL FinNLP 2024’s FINALE cites datasets 71610, 71568, and 71565.
Public engineering
I turn problems found in insurance policy documents and Korean-language queries into reproducible tests and upstream fixes. 18 external patches have been merged into Lucene, Elasticsearch, sentence-transformers, Transformers, MLflow, and LlamaIndex.
The Unicode, morphology, token-graph, and wildcard failures are connected in an Elasticsearch·Lucene Korean search correctness guide.
- sentence-transformers #3827: excluded padding from the Plackett-Luce normalizer in ListMLE losses. The maintainer’s NanoBEIR benchmark measured mean nDCG@10 of 0.529 for the fixed ListMLE (against a ~0.39 baseline from older library versions) and 0.525 vs 0.514 in the controlled PListMLE comparison. Post
- Apache Lucene #16242: added
HangulCompositionCharFilterto analysis-nori so NFD-decomposed Hangul analyzes like NFC text. Post - Elasticsearch #151157: documented nori’s default XPN stoptag behavior, in which Korean negation prefixes are dropped and antonyms like 비급여/급여 merge at index time. Post
- Elasticsearch #152931: fixed token-graph position holes that made verbatim
match_phrasequeries return zero hits. Post - Transformers #46670: fixed continuous-batching state management where already-streamed output changed retroactively and soft-reset requests ended early. Post
- sentence-transformers v5.6.0: two correctness fixes and a scalability fix in hard-negative mining and GIST losses (#3816, #3817, #3821). Post
Technical scope
Korean search · Retrieval correctness · Applied ML · Model operations · Python · PyTorch · Databricks