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 HangulCompositionCharFilter to 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_phrase queries 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

Contact

GitHub · LinkedIn · incheonkirin@gmail.com