Skip to content
Caner Olcay
Portrait of Caner Olcay

Caner Olcay

Software engineer building Python backends, data pipelines, and applied AI.

I co-founded Lucid, an AI study app on the App Store, and wrote nearly all of its backend. I also build LLM retrieval over a knowledge graph at Solvro, and send fixes upstream — four merged this year, into pandas, plotly.py, txtai and pytest.

Open to backend, Python, data, and ML engineering rolesBased in Wrocław, Poland

Selected projects

Lucid — AI study app

2026 – present

Co-Founder & Backend EngineerLive on the App Store

Nearly all of the backend behind an AI study app on the App Store: ~30k lines of FastAPI, an OCR-to-LLM document pipeline, and 900+ tests in CI.

  • Lucid home screen with AI study chat prompts
  • Uploading notes, PDFs, images, and slides into a Mathematics collection
  • An AI-generated flashcard from an organic chemistry set
  • An AI-generated multiple-choice quiz question with the correct answer highlighted
users
100+
languages
12
API endpoints
70+
tests in CI
900+
How it works
  1. 01

    Upload

    Lecture images & notes

  2. 02

    OCR

    Google Vision via Cloud Tasks

  3. 03

    Embed

    OpenAI embeddings

  4. 04

    Index

    pgvector + HNSW

  5. 05

    Generate

    LLM via OpenRouter, with fallback

ToPWR Assistant — Knowledge-graph RAG

2025 – present

Machine Learning EngineerOngoing

Polish questions translated into read-only Cypher over a Neo4j knowledge graph, orchestrated with LangGraph and served through an MCP server.

Retrieval benchmarkPR #50 (opens in a new tab)

28 Polish questions about 7 real PWr faculties, each asked in four forms, against the same Neo4j graph.

100%of questions found the right faculty, up from 50%

Correct-entity hits out of 7 for each query form, before and after the fix
Query formBeforeAfter fix
Stored spelling
7/7
7/7
Polish diacritics
7/7
7/7
Lowercase
0/7
7/7
Lowercase + diacritics
0/7
7/7
Overall14/28 · 50%28/28 · 100%

One question from the run

Pokaż informacje o jednostce "wydział informatyki i telekomunikacji".

Before
WHERE n.title CONTAINS 'wydzial informatyki i telekomunikacji'→ 0 rows
After fix
WHERE toLower(n.title) CONTAINS toLower('wydzial informatyki i telekomunikacji')→ Wydzial Informatyki i Telekomunikacji
merged PRs
15
Docker services
4
generated Cypher
Read-only
How it works
  1. 01

    Ask

    Question in Polish

  2. 02

    Route

    LangGraph + guardrails

  3. 03

    Generate

    LLM-written Cypher

  4. 04

    Query

    Neo4j, read-only, via MCP

  5. 05

    Grade

    Answer, or “no data”

Open source

When I hit a bug in a library I depend on, I try to fix it upstream. 4 patches merged in 2026, into the tools I use most.

Experience

  1. Lucid (opens in a new tab)

    Jan 2026 – Present

    Co-Founder & Backend Engineer · Remote

    Co-founded an AI study app that launched on the App Store in June 2026 in 12 languages — 100+ users and 5 paying customers so far.

    • Wrote nearly all of the backend: ~30k lines of Python (FastAPI), 70+ endpoints, and 900+ pytest tests running in CI.
    • Deployed on Cloud Run: Cloud Build runs migrations and a smoke test on every release, and OCR jobs go through Cloud Tasks.
    • Added JWT auth on Supabase row-level security, per-user rate limiting (100 req/min), SSE streaming, and guest accounts that merge on sign-in.
    • Audited the backend with Claude Code and Cursor before launch and fixed the cost and reliability bugs it surfaced, like workers re-downloading the whole document for every page.

    Python · FastAPI · PostgreSQL · pgvector · Supabase · Cloud Run · OpenRouter · pytest

  2. Solvro

    Nov 2025 – Present

    Machine Learning Engineer · Wrocław, Poland

    Software development student group. I work on the ToPWR app’s assistant, which turns Polish questions into Cypher over a Neo4j knowledge graph. 15 pull requests merged so far.

    • Inflected Polish (“semestrze”) never matched titles stored in the nominative; fixed it with a fuzzy full-text fallback and an LLM grader that says “no data” instead of guessing.
    • Locked generated Cypher to read-only (query validation plus Neo4j READ mode) and capped rows in code, not in the prompt.
    • Built the Prefect ETL that turns PDFs into graph nodes via OCR and LLM-written Cypher, in parallel and idempotently.

    Python · LangGraph · MCP · Neo4j · Cypher · Prefect · Docker

  3. Neurosoft

    Aug 2025 – Oct 2025

    AI Software Engineer (Intern) · Wrocław, Poland

    Computer vision and ML work on a production traffic-monitoring system.

    • Tuned and validated vehicle trace matching, reaching 85%+ accuracy.
    • Processed 10,000+ traffic-scene samples with Python data pipelines; the computer vision components went into the product.

    Python · OpenCV · PyTorch · NumPy · Pandas

Stack

Python is my main language. These are the tools I reach for around it.

Languages
Python, SQL, TypeScript, C/C++
Backend
FastAPI, Pydantic, SQLAlchemy, Alembic, pytest, REST, JWT, SSE, Flask
AI / LLM
RAG, LangChain, LangGraph, MCP, OpenAI API, embeddings, OCR, PyTorch, scikit-learn, OpenCV
Data & cloud
PostgreSQL, pgvector, Redis, Neo4j (Cypher), Supabase, Prefect, Google Cloud Run, AWS (EC2, S3)
Tools
Git, Linux, Docker, GitHub Actions, Claude Code, Cursor

About

I like building systems end to end — defining the data flow, designing the API, choosing the database, and adding AI or ML components when they actually solve the problem.

Right now I work full time as a logistics specialist at RXO, on the Ford account, and build backend and AI systems alongside it — Lucid in the evenings, Solvro during the week, and fixes upstream when a library I use gets in my way.

Most of my work starts from a concrete workflow: user input, endpoints, storage, processing, and a clear way to return something useful. I care about clean APIs, tests that catch real bugs, and architecture that stays readable as the product grows.

Education
B.Eng. in Electronics & Computer EngineeringWrocław University of Science and Technology
Certifications
  • Machine Learning SpecializationStanford University & DeepLearning.AI · Dec 2025
  • MCP for Production AutomationHugging Face · Dec 2025
  • CCNA: Introduction to Networks, Python Essentials 1 & 2, Linux EssentialsCisco · Feb 2025
Languages
Turkish (native), English (C1), Polish (A1, learning)

Contact

I’m open to software engineering roles in backend, Python, data, and ML. Email is the best way to reach me.