Ivan Nikolov

AI engineer. Team lead at Factum AI.

I lead seven engineers building a legal assistant that answers from the law as it stands today. Outside work I make tools for the Macedonian language and write poems.

Hover over the tape to peek. Click to peel it off.

About Three sides

Engineer

The engineer

I like systems that have to be right. At Factum every answer has to stand on a statute or a court decision, and every new jurisdiction has to pass a benchmark built from real rulings before it ships. Before that I scheduled LLM jobs across a GPU marketplace and built search for Alzheimer’s researchers.

Language

The language

Macedonian is a small language and most models barely speak it, so I build the pieces that are missing: a scraper for the national dictionary, a morphology engine, a lemmatizer that knows 767,000 word forms, and a converter for Glagolitic, the oldest Slavic alphabet.

Poet

The poet

I’m a published poet. My poems are short, deadpan and often political, and the title always comes last. A few became animated films with Arhangela. Poetry is also how I got into language models: my thesis taught them to tell Macedonian poets apart.

Based in
Skopje and Bitola, North Macedonia
Languages
Macedonian (native), English (C2, certified), Serbo-Croatian and Bulgarian (reading), French (basic)
Education
BSc in Computer Science, FCSE Skopje, 2025
Recognition
First place at RoboMak 2023 (AI agents). Guest lecture in the FCSE NLP course, 2025

Work Where I’ve worked

2026–

Factum AI

Team lead since April, engineer since January

Factum answers lawyers’ questions from the law in force and from court decisions, and cites both: legislation from more than 30 jurisdictions, case law from North Macedonia and Serbia. It runs on the web, inside Microsoft Word, and as an MCP server for Claude, ChatGPT, Copilot and Gemini. I lead seven engineers and own the agent pipelines, ingestion and the data layer. I take every new jurisdiction from raw scraped sources to a benchmark it has to pass before release.

  • 2024–2025

    GPT Protocol

    Software engineer

    Backend for a decentralised GPU compute marketplace. I wrote the scheduler that spreads LLM jobs across the machine pool, served open models through vLLM with one Docker image per model, built the frontend, and wired the Solidity contracts and the platform’s token into billing and metering.

  • 2024–2025

    MANU

    Research intern

    A chatbot for Alzheimer’s researchers, part of MANU’s diagnosis-support project under Prof. Igor Mishkovski. Hybrid retrieval (BM25 and dense) over tens of thousands of peer-reviewed papers, plus a Neo4j knowledge graph.

  • 2025

    BSc thesis, FCSE

    LLMs for style detection and lyric generation in Macedonian

    A corpus of 1,199 songs by 36 authors, plus 18 synthetic datasets. Authorship F1 of 80% on generated text and 70% on real poetry. Supervised by Prof. Sonja Gievska and Prof. Martina Toshevska. In December 2025 I gave a guest lecture on it in the FCSE NLP course.

  • 2023

    RoboMak 2023

    First place, AI agents

    With Team Polaris at IEEE Macedonia’s robotics and AI competition. Our agents won the multi-agent challenge.

  • 2021–2025

    FCSE, Skopje

    BSc in Computer Science

    Faculty of Computer Science and Engineering, Ss. Cyril and Methodius University.

Download the CV (PDF)Day to day I write Python and TypeScript, with FastAPI, Celery, Postgres, Elasticsearch, Neo4j, vLLM, Gemini and Bedrock.

Drawer Every project, filed

My own projects, sorted into three drawers. Open one, or let the cabinet pull a file for you.

Private

mklem

A lemmatizer for Macedonian. It looks words up in 767,000 generated forms and picks the right lemma 89% of the time on held-out dictionary words.

The code is private. It stays in the drawer.

Private

mkmorph

A morphology engine: give it a dictionary word and it returns every inflected form. No dependencies.

The code is private. It stays in the drawer.

Private

mklex

Two papers on how the Macedonian lexicon sounds: its phonotactics, and how borrowed words adapt to it.

The code is private. It stays in the drawer.

Private

drmj

A scraper and search index for the Digital Dictionary of the Macedonian Language: 55,000 entries, and the corpus the other language tools here are built on.

The code is private. It stays in the drawer.

Private

bukvar

A converter between Glagolitic, Cyrillic and Latin. 26 of its Glagolitic letters follow the 2015 MANU edition; the five that history never gave Macedonian are new designs.

The code is private. It stays in the drawer.

Private

macedonian-rag

Retrieval over Macedonian academic writing, page by page, with embeddings computed locally.

The code is private. It stays in the drawer.

Poems Ten poems

Left in Macedonian, as I wrote them, with the title at the end. Pick one by its first line.

понекогаш се замислувам како старец не за да ја доживеам иднината или да се навраќам на минатото туку за да уживам во небиднината тогаш ќе сум при својот крај и ќе го имам отслужено својот воен рок и ќе бидам ставен две метри под земја во цементен блок ако сѐ уште постои земјата ако сѐ уште постојат шумите ако не изгори светот и да мора да се криете во подрумите на прадедо ми му шумат шумите на пеколот му свират трубите

######
НАСЛОВ на прадедо ми му шумат шумите на пеколот му свират трубите

Published in 2025 as an animated film, with animation and music by Arhangela