Connectors 2021 · Data Engineer
I joined Needl on the data side. The platform pulls in mail, drives, chat and the public web; I built the
Microsoft Teams integration, a public-source crawler and the RSS pipeline, then hardened the Gmail, Google
Drive, Outlook and Telegram connectors with resumable state, throttling and backoff.
Every answer starts here. If the document never arrives, nothing downstream matters.
Search 2022 · ML Engineer
I took over Needl's Elasticsearch search. First the search API moved from Node.js to Python; then proximity
search, synonym and ticker expansion, spell correction, highlighting and multi-index querying over filings,
earnings calls and regulator data, with a regression framework that checks results against golden responses.
Document AI 2023 · ML Engineer
The system learned to read. I added LLM-based query understanding (which companies, sources and dates a
question is about), earnings-call summarization with sentence-level references mapped to PDF bounding boxes,
the job service and table extraction behind it, and near-duplicate detection for news.
Answers 2024 · Senior ML Engineer from Aug
I joined AskNeedl, Needl's answer engine, and became its primary engineer: rebuilt the pipeline on Haystack,
fine-tuned cross-encoder rerankers as the context filter, gated every model and prompt change on benchmarks,
added web search and an answer-quality signal, and built its first multi-step agentic mode.
Agents 2025–now · Senior ML Engineer
I turned the answer pipeline into Needl's agent platform: config-driven agents over a shared tool registry,
skills that load context only when needed, tool-call budgets, per-fragment citations, an eval framework with
LLM graders, and Langfuse tracing. Alongside it, the shared LLM layer over OpenAI, Azure OpenAI, Gemini and
Claude, and text-to-SQL agents with input guards and read-only SQL safety.
One loop now runs sub-minute chat and twenty-minute due-diligence reports.