nidal.app

Backend and AI, taken to production.

Nidal Alhariri, senior backend and AI engineer in Berlin. More than twenty years building production software. I take backend and AI features from written scope to production, keep them reliable, and hand them over documented so your team can own them.

Write to hello@nidalalhariri.comAsk for the CV

cv.md

/cv.mdtext/markdown9.8 KBEntry names call get_project

# Nidal Alhariri
Senior backend and AI engineer, freelance, Berlin, remote.
Availability: available now, full-time or part-time.
Working language: English. Languages: Arabic (native), English (fluent), Russian (B2), German (B1, telc certified).

## Summary
More than twenty years building production software. I take backend and AI features from written scope to production, keep them reliable, and hand them over documented so your team can own them.

## Skills

### Backend
Python, FastAPI, Django, Flask, Quart, SQLAlchemy, Celery, async services, REST and event-driven APIs, PHP, Node.js

### Data
PostgreSQL, MySQL, MongoDB, Redis, Elasticsearch, Apache Kafka, Snowflake, Airflow

### Infra
AWS, Kubernetes, Docker, Terraform, Ansible, CI/CD, Linux, Datadog, OpenTelemetry

### AI/LLM/agents
LLM integration (Anthropic, OpenAI, OpenRouter, local models), RAG, embeddings and vector search (pgvector), LangChain, LangGraph, multi-agent orchestration, human-in-the-loop review, MCP servers, evaluation

### Frontend
Vue, React, Next.js, TypeScript

### GIS
PostGIS, geospatial queries, Leaflet maps, OpenStreetMap data

## Experience

### Raisin SE
Period: 2021 to 2026
Organisation: Raisin SE, Berlin (fintech, savings and investment marketplace)
Role: Senior backend engineer, freelance
URL: https://www.raisin.com
Python microservices with FastAPI, Kafka and PostgreSQL on AWS and Kubernetes, Terraform, and front end in React and Next.js, for a European savings and investment marketplace. Bonus campaigns, payouts, and authentication work across product migrations.
Technologies: Python, FastAPI, Apache Kafka, PostgreSQL, SQL, AWS, Kubernetes, Terraform, React, Next.js.

### Bayanat
Period: 2014 to now
Organisation: Syria Justice and Accountability Centre (SJAC), Washington D.C., remote (human rights documentation)
Role: Lead engineer, Syria Justice and Accountability Centre
URL: https://bayanat.org
Open-source platform used to document human rights violations: Whisper transcription and vision-LLM OCR on its media, trigram search with Arabic normalisation over millions of records, PostGIS location search and maps, per-record permissions, signed releases with a database snapshot and rollback on every update. First built on Django, later migrated to Flask. US State Department Internet Freedom Award, 2019.
Technologies: Python, Django, Flask, SQLAlchemy, PostgreSQL, PostGIS, Celery, Redis, Pydantic, Vue, Leaflet, WebAuthn, AWS S3, OpenAI Whisper, Google Cloud Vision, OpenAI-compatible vision LLMs, Tesseract OCR, Docker, Nginx, Caddy.

### Level09
Period: 2005 to now
Organisation: Level09 FZE, Dubai (software studio and product company)
Role: Founder and lead engineer
URL: https://level09.com
Built and operate Flowdesk, a deal-flow platform for UAE property developers: live inventory, payment plans, PDF offers and reservation agreements, and a Claude-based spreadsheet import with preview and undo. Sales CRM for Seven Tides. Platforms and data migrations for JLL, UNDP and Minor Group. Runs and secures its production servers with Ansible playbooks: provisioning, hardening, firewall rules and fail2ban.
Technologies: Python, Flask, SQLAlchemy, PostgreSQL, Celery, Redis, WebSockets, WebAuthn, Anthropic API, Docker, Nginx, Ansible.

### Seven Tides
Period: 2015 to now
Organisation: Seven Tides, Dubai (luxury real estate and hospitality developer, Dubai and London)
Role: Technology partner, through Level09
URL: https://seventides.com
Corporate site for a luxury developer and hotel owner, with projects, leasing and hotel pages (DUKES London and Dubai, Anantara The Palm), plus the sales CRM.

### MBC Group
Period: 2010 to 2016
Organisation: MBC Group, Dubai (leading Arab broadcaster)
Role: Senior web specialist and team lead
URL: https://www.mbc.net
Led a web engineering team for MBC's news platform. Built all of its APIs in Django, including the mobile app APIs and the core content API for web, mobile and broadcast, and a video ingest pipeline from Avid production systems to publishing.
Technologies: Python, Django, Flask, PHP, iOS, infrastructure and operations.

### SwissMed AI
Period: 2025 to 2026
Organisation: SwissMed AI (mdai.ch), Switzerland (independent medical AI platform for physicians)
Role: Technical Lead, freelance
URL: https://mdai.ch
Technical lead for SwissMed AI, a physician-led resource on AI in Swiss healthcare: a bilingual directory of 122 clinical AI tools mapped to medical specialties, the Swiss Healthcare AI Map and an AI Research Radar. Site updates run through an agent-orchestrated workflow I built and own.
Technologies: Eleventy (11ty), Nunjucks, JavaScript, Node.js, PostHog, Linux.

## Projects

### Enferno
Period: 2014 to Present
URL: https://enferno.io
Flask framework with production authentication. Maintained since 2014, 568 GitHub stars.
Technologies: Python, Flask, Vue 3, WebAuthn

### Sealbook
Period: 2026 to Present
URL: https://sealbook.org
Evidence intelligence for human rights investigations, in private preview. One local multimodal search over text, PDFs, images, audio and video, agents that hunt contradictions and gaps across a case, every AI claim pinned to its source and accepted by a named reviewer, signed evidence packages with an offline verifier. Open source.
Technologies: Python, Quart, PostgreSQL, pgvector, PostGIS, Ollama, EmbeddingGemma, faster-whisper

### ReadyKit
Period: 2025 to Present
URL: https://readykit.dev
SaaS foundation on Enferno with workspaces, roles, and Stripe or Chargebee billing. The Chargebee integration was commissioned by Chargebee.
Technologies: Python, Flask, Stripe, Chargebee

### stk
Period: 2026 to Present
URL: https://stk.dev
Async Python framework designed so coding agents can operate and extend the apps built on it.
Technologies: Python, Quart

### OfferBrief
Period: 2025 to Present
URL: https://offerbrief.com
Values Dubai property listings against 1.1M+ recorded sales and 5.9M+ leases from official land department data. Deal memos come from a multi-agent committee on LangGraph: specialist agents run in parallel, then a critic and a guardrail that rejects any number not tied to cited evidence, then the owner approves or asks for a revision. Claude Sonnet, pgvector similarity search, and dld-mcp, an MCP server that lets agents query the data.
Technologies: Python, LangGraph, Claude API, PostgreSQL, pgvector, MCP

### Qarina
Period: 2026
URL: https://qarina.org
Research workspace where every answer comes with its sources.
Technologies: Python, Quart, async SQLAlchemy, Vue 3, OpenRouter, vector retrieval.

### Vilcos
Period: 2025
URL: https://vilcos.com
AI agent built on Agno that creates and maintains websites through chat. Prize winner at the Global Agent Hackathon 2025.
Technologies: Agno

### watchd
Period: 2026 to Present
URL: https://watchd.dev
Scheduled AI agents on your own Cloudflare account that browse, search, remember and report only what is new, under a hard spend cap. TypeScript Worker with D1 and an MCP server.
Technologies: TypeScript, Cloudflare Workers, D1, OpenRouter, MCP.

### FigureKit
Period: 2026 to Present
URL: https://figurekit.dev
Agent-operated visual generation exposed as an MCP server.
Technologies: Cloudflare Workers, TypeScript, MCP, OAuth, Stripe.

### Frameloop
Period: 2026 to now
URL: https://frameloop.io
iPhone app for AI video stories that turns one still image into a directed motion clip: pick a frame, describe camera and subject motion in plain language, render remotely on fal.ai video models (Seedance, Kling), then reuse the result. Image editing and frame extraction built in. Private TestFlight beta.
Technologies: Swift, SwiftUI, SwiftData, fal.ai.

### Zant
Period: 2026 to now
URL: https://zant.io
Owned application starter for Cloudflare Workers, where people and agents use one typed action contract with the same workspace and permission checks. Auth, users, workspaces, roles, audit trail and generated OpenAPI. Pre-release.
Technologies: TypeScript, Cloudflare Workers, Hono, Drizzle, D1, better-auth.

### ZigLag
Period: 2026 to now
URL: https://ziglag.com
Self-hosted, open-source invoicing built on stk: line items, tax and discounts, PDF generation, public share links clients open without an account, payment recording and monthly reports.
Technologies: Python, Quart, stk.

### OpenStadt
Period: 2026
URL: https://openstadt.org
Open-source platform that shows whether public facilities are distributed fairly across the districts of seven German cities: OpenStreetMap data, an equity score per district, an interactive map and an analytics dashboard. MIT licensed.
Technologies: Python, Flask, OpenStreetMap, GeoJSON.

### quart-security
Period: 2026 to now
URL: https://github.com/level09/quart-security
Native async authentication for Quart, a replacement path for Flask-Security: sessions, roles, TOTP with recovery codes, and WebAuthn passkeys.
Technologies: Python, Quart, SQLAlchemy, WebAuthn.

### NosyAgent
Period: 2025 to 2026
URL: https://nosyagent.com
Personal assistant on Telegram with long-term memory: entity extraction into structured facts, a Haiku router in front of Sonnet, prompt caching.
Technologies: Claude API, Telegram

### GermanRat
Period: 2026
URL: https://germanrat.com
Chrome extension for learning German from any web page: select text to translate it and hear it spoken, save words and export them to Anki. Bring your own API key; saved words stay in the browser.
Technologies: JavaScript, Chrome extensions, OpenAI API, OpenRouter.

### Flask extensions
Period: 2024 to 2025
URL: https://github.com/level09/flask-openai
flask-openai (on PyPI) and flask-supabase: small Flask extensions that connect the OpenAI API and Supabase to Flask apps.
Technologies: Python, Flask, OpenAI API, Supabase.

## Awards
2019: Internet Freedom Award, Bayanat, US State Department
2025: Prize winner, Vilcos, Global Agent Hackathon (Agno)
2016: Technical Reviewer, Mastering Flask, Packt Publishing

## Links
Website: https://nidalalhariri.com
GitHub: https://github.com/level09
Xing: https://www.xing.com/profile/Nidal_Alhariri
portrait.png
Nidal Alhariri, halftone portrait

Berlin

Available now

Full-time or part-time. Remote.

mcp.server

Read this profile as data.

The same facts, served read-only over MCP from cv.md. No LLM runs on the server, so answers can only contain what is in the profile.

Endpoint
https://mcp.nidalalhariri.com/mcp
Tools
get_profile()search_experience(query)get_project(name)
Open the Agent view

mcp.console

    Twenty years in production. A few serious engagements at a time.

    Backend
    Python services and APIs with FastAPI, Django and Flask, Kafka, PostgreSQL, Redis and Elasticsearch, on AWS and Kubernetes.
    AI in production
    LLM features inside existing products, retrieval-augmented search, agents and MCP servers, with evals and monitoring.
    How I work
    Freelance contracts billed by the hour, remote from Berlin, full-time or part-time, for a few weeks or a long project.

    Selected work

    6 engagements

    Raisin SE

    Senior backend engineer, freelance

    2021 to 2026

    Python microservices with FastAPI, Kafka and PostgreSQL on AWS and Kubernetes, Terraform, and front end in React and Next.js, for a European savings and investment marketplace. Bonus campaigns, payouts, and authentication work across product migrations.

    Bayanat

    Lead engineer, Syria Justice and Accountability Centre

    2014 to now

    Open-source platform used to document human rights violations: Whisper transcription and vision-LLM OCR on its media, trigram search with Arabic normalisation over millions of records, PostGIS location search and maps, per-record permissions, signed releases with a database snapshot and rollback on every update. First built on Django, later migrated to Flask. US State Department Internet Freedom AwardAwarded in 2019 to the Bayanat project, the open-source platform SJAC uses to document human rights violations., 2019.

    Level09

    Founder and lead engineer

    2005 to now

    Built and operate Flowdesk, a deal-flow platform for UAE property developers: live inventory, payment plans, PDF offers and reservation agreements, and a Claude-based spreadsheet import with preview and undo. Sales CRM for Seven Tides. Platforms and data migrations for JLL, UNDP and Minor Group. Runs and secures its production servers with Ansible playbooks: provisioning, hardening, firewall rules and fail2ban.

    MBC Group

    Senior web specialist and team lead

    2010 to 2016

    Led a web engineering team for MBC's news platform. Built all of its APIs in Django, including the mobile app APIs and the core content API for web, mobile and broadcast, and a video ingest pipeline from Avid production systems to publishing.

    2 more engagementsShow fewer

    Seven Tides

    Technology partner, through Level09

    2015 to now

    Corporate site for a luxury developer and hotel owner, with projects, leasing and hotel pages (DUKES London and Dubai, Anantara The Palm), plus the sales CRM.

    SwissMed AI

    Technical Lead, freelance

    2025 to 2026

    Technical lead for SwissMed AI, a physician-led resource on AI in Swiss healthcare: a bilingual directory of 122 clinical AI tools mapped to medical specialties, the Swiss Healthcare AI Map and an AI Research Radar. Site updates run through an agent-orchestrated workflow I built and own.

    Languages

    • Arabic, native
    • English, fluent
    • Russian, B2
    • German (B1
    • telc certified)

    Recognition

    • 2019 Internet Freedom Award, Bayanat, US State Department
    • 2025 Prize winner, Vilcos, Global Agent Hackathon (Agno)
    • 2016 Technical Reviewer, Mastering Flask, Packt Publishing

    Open source and products

    17 items
    • Enferno

      Flask framework with production authentication. Maintained since 2014, 568 GitHub starsOpen source and MIT licensed. The base of ReadyKit, Bayanat and Flowdesk..

    • ReadyKit

      SaaS foundation on Enferno with workspaces, roles, and Stripe or Chargebee billing. The Chargebee integration was commissioned by Chargebee.

    • stk

      Async Python framework designed so coding agents can operate and extend the apps built on it.

    • FigureKit

      Agent-operated visual generation exposed as an MCP server.

    • OfferBrief

      Values Dubai property listings against 1.1M+ recorded sales and 5.9M+ leases from official land department data. Deal memos come from a multi-agent committee on LangGraph: specialist agents run in parallel, then a critic and a guardrail that rejects any number not tied to cited evidence, then the owner approves or asks for a revision. Claude Sonnet, pgvector similarity search, and dld-mcp, an MCP server that lets agents query the data.

    • Sealbook

      Evidence intelligence for human rights investigations, in private preview. One local multimodal search over text, PDFs, images, audio and video, agents that hunt contradictions and gaps across a case, every AI claim pinned to its source and accepted by a named reviewer, signed evidence packages with an offline verifier. Open source.

    • Qarina

      Research workspace where every answer comes with its sources.

    10 more projectsShow fewer
    • Vilcos

      AI agent built on Agno that creates and maintains websites through chat. Prize winner at the Global Agent Hackathon 2025.

    • watchd

      Scheduled AI agents on your own Cloudflare account that browse, search, remember and report only what is new, under a hard spend cap. TypeScript Worker with D1 and an MCP server.

    • Frameloop

      iPhone app for AI video stories that turns one still image into a directed motion clip: pick a frame, describe camera and subject motion in plain language, render remotely on fal.ai video models (Seedance, Kling), then reuse the result. Image editing and frame extraction built in. Private TestFlight beta.

    • Zant

      Owned application starter for Cloudflare Workers, where people and agents use one typed action contract with the same workspace and permission checks. Auth, users, workspaces, roles, audit trail and generated OpenAPI. Pre-release.

    • ZigLag

      Self-hosted, open-source invoicing built on stk: line items, tax and discounts, PDF generation, public share links clients open without an account, payment recording and monthly reports.

    • OpenStadt

      Open-source platform that shows whether public facilities are distributed fairly across the districts of seven German cities: OpenStreetMap data, an equity score per district, an interactive map and an analytics dashboard. MIT licensed.

    • quart-security

      Native async authentication for Quart, a replacement path for Flask-Security: sessions, roles, TOTP with recovery codes, and WebAuthn passkeys.

    • NosyAgent

      Personal assistant on Telegram with long-term memory: entity extraction into structured facts, a Haiku router in front of Sonnet, prompt caching.

    • GermanRat

      Chrome extension for learning German from any web page: select text to translate it and hear it spoken, save words and export them to Anki. Bring your own API key; saved words stay in the browser.

    • Flask extensions

      flask-openai (on PyPI) and flask-supabase: small Flask extensions that connect the OpenAI API and Supabase to Flask apps.

    Available now. Full-time or part-time, remote.

    One endpoint, read-only.

    Streamable HTTP, no session. Three tools and one resource, cv://nidal-alhariri, all answered from cv.md. No LLM runs on the server.

    get_profile()
    Summary, availability, location, remote setup, languages and links.
    search_experience(query)
    Up to eight keyword matches in skills, experience and projects.
    get_project(name)
    One experience or project by exact name, or the list of valid names.

    Install

    https://mcp.nidalalhariri.com/mcp
    Claude Code
    claude mcp add --transport http nidal-cv https://mcp.nidalalhariri.com/mcp
    ChatGPT: Add custom MCP server
    https://mcp.nidalalhariri.com/mcp
    Codex
    codex mcp add nidal-cv --url https://mcp.nidalalhariri.com/mcp
    Cursor, mcp.json
    {
      "mcpServers": {
        "nidal-cv": {
          "url": "https://mcp.nidalalhariri.com/mcp"
        }
      }
    }