Skip to content
View LeonidShamarin's full-sized avatar
🎯
Focusing
🎯
Focusing

Block or report LeonidShamarin

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
LeonidShamarin/README.md

Hi, I'm Leonid Shamarin πŸ‘‹

AI Automation Engineer (n8n / JavaScript / Python) β€” ERP/CRM and marketplace integrations. Full-stack developer with an AI focus.

Role Portfolio Location Email LinkedIn


πŸš€ About Me

I build workflow automation, e-commerce integrations and self-hosted Python micro-services. For a pan-European multi-brand retailer that meant 350+ n8n and Windmill workflows, 5+ FastAPI/Flask services running on Coolify, and integrations across 11+ marketplaces β€” with the DevOps ownership that comes with running your own infrastructure: Docker, Hetzner, Cloudflare, GitHub auto-deploy.

The integration work goes deep β€” Odoo over JSON-RPC, Bitrix24, VTEX, Metro DE, eBay, Mirakl β€” and the AI work is the part I care most about: category and content resolution with structured output and fallback chains, retrieval over document corpora, and agents that stop and ask a human before doing anything irreversible. My frontend background means I can deliver a system end to end, from the data pipeline to the interface someone actually uses.


πŸ† Featured Projects

Automation and AI projects, each built to be measured rather than demonstrated β€” the numbers below come from their own evaluation sets, and the tests run without touching the network.

Retrieval-augmented assistant over a Ukrainian regulatory corpus, evaluated on 122 golden questions. Embedding choice dominated everything else: all-MiniLM-L6-v2 scored hit@k 0.526 / MRR 0.310, while multilingual-e5-small at the same 384 dimensions scored 1.000 / 0.983. A Ukrainian stemmer added +18.9 pp MRR on inflected queries. Hybrid retrieval reached perfect recall but ranked worse than plain dense search β€” so the assumption that hybrid always wins does not hold here. Answers cite the source snippet, and it refuses instead of inventing. 61 tests.

Python Β· sentence-transformers Β· multilingual-e5 Β· BM25 Β· Docker Β· pytest

Reads invoices and delivery notes β€” PDFs or phone photos β€” into ledger entries, with a review UI for whatever it is unsure about. On 40 documents: 90% fully correct (100% on PDFs, 100% on clean photos, 60% on difficult ones β€” the honest split an aggregate hides). Human-review routing reaches 88.9% recall with zero false alarms and caught all 5 planted mismatches. The main finding is negative: the model's self-reported confidence was 1.00 on 36 of 40 documents, including ones it got wrong, so routing is driven by cross-checks instead. 111 tests.

Python Β· Gemini Vision Β· Pydantic Β· FastAPI Β· Docker Β· pytest

A tool-calling agent that triages a queue and stops before anything irreversible. Across 8 evaluation scenarios it picked the correct first tool every time and attempted 6 irreversible actions: 5 were surfaced for human confirmation, 1 was rejected by argument validation, none executed unattended. Arguments are validated before the pause β€” otherwise people confirm calls that then fail, and learn to click through without reading. Its own BM25 search reaches hit@1 76% / hit@3 92% and stays silent 100% of the time on out-of-corpus questions. 2.62 steps per scenario against a limit of 6; $1.16 per 1000 requests; 50 tests.

Python Β· Gemini Β· tool calling Β· BM25 Β· human-in-the-loop Β· pytest

Turns a free-form stream of internal requests (Slack, Telegram, email, in Ukrainian) into structured records: category, priority, department, summary. Resilience is split by class of failure instead of piled into one retry β€” a rate limiter for quota, backoff for transient 429/5xx, a circuit breaker that recognises a daily quota by its quotaId rather than blindly obeying the API's retryDelay, and a self-repair pass that shows the model its own validation error. No input row is ever dropped: a request that fails every retry still lands in the output flagged for a human. 35 tests.

Python Β· Gemini Β· Pydantic Β· asyncio Β· Docker Β· Google Sheets API Β· pytest

A webhook service that turns a raw landing-page enquiry into something sales can act on in seconds: Pydantic normalises the payload (a Ukrainian mobile written 0XXXXXXXXX becomes +380XXXXXXXXX, a budget written 15k becomes 15000), Llama 3.3 70B on Groq writes the summary and scores the lead, and the result fans out to Airtable and Telegram in parallel. Everything downstream of the AI step is non-fatal: if Airtable or Telegram is unreachable the endpoint still returns 200, because losing the lead to a notification outage is the worse failure. Classification falls back to a rule-based score if the model is down.

Python Β· FastAPI Β· Groq (Llama 3.3 70B) Β· Pydantic Β· Airtable Β· Telegram Bot API

More, including the frontend work, on my portfolio.


πŸ› οΈ Skills

  • Workflow automation β€” n8n.io, Windmill, REST and webhook design
  • Languages β€” Python, JavaScript, TypeScript, Node.js
  • Python web β€” FastAPI, Flask, uvicorn, gunicorn, pydantic, pytest
  • AI β€” OpenAI, Google Gemini, xAI Grok (incl. Vision), Anthropic Claude, RAG, structured output and fallback chains
  • Browser automation β€” Playwright (Chromium), TOTP/2FA automation
  • DevOps β€” Docker, Coolify, Hetzner, Cloudflare, GitHub Actions
  • Cloud and images β€” AWS (S3, CloudFront, IAM, Lambda), Thumbor
  • ERP / CRM β€” Odoo (JSON-RPC), Bitrix24
  • Marketplaces β€” eBay, Bol.com, Mirakl, VTEX (OBI), Metro DE, Praktiker.de, Aukro, Okazii, Pigu
  • Frontend β€” React.js, Angular, Redux, HTML5, CSS3, Sass, TailwindCSS, Material-UI, Bootstrap
  • Data β€” Supabase, MongoDB, SQL, Firebase, Airtable, Google Sheets API
  • Testing β€” pytest, Jest, React Testing Library, SonarQube

πŸ’Ό Experience

Developer, n8n / JavaScript / Python β€” Hajus AG

06/2025 β€” 07/2026

Designed and maintained 350+ workflows across 11+ European marketplaces; built 5+ production Python micro-services on Coolify; re-architected the OBI/VTEX auto-posting pipeline from n8n to Windmill with AI resolution of category, dimensions and attributes; built a pricing-intelligence system on Bitrix24 order data; architected the AWS image pipeline (S3 + CloudFront + Thumbor), cutting hosting costs by ~70%.

Front-End Developer, internship β€” SoftServe LLC

11/2023 β€” 11/2024

React/TypeScript applications with Node.js/MongoDB backends, CI via GitHub Actions, unit testing with Jest.

Project Engineer β€” Eco-Techgroup LLC

06/2016 β€” 10/2022

End-to-end management of engineering projects: cross-functional teams, procurement, budgeting, client communication.


πŸŽ“ Certificates

  • IBM Generative AI Engineering Professional Certificate β€” 16 courses, IBM via Coursera, 08/2026 Β· verify
  • Generative AI Engineering with LLMs Specialization β€” IBM via Coursera, 08/2026 Β· verify
  • Google AI Professional Certificate β€” 7 courses, Google via Coursera, 07/2026 Β· verify
  • Anthropic: Claude Code 101 β€” 07/2026 Β· verify
  • Mastering Claude Code: From Setup to Real Projects β€” SkillsBooster via Coursera, 07/2026 Β· verify
  • Anthropic: AI Fluency β€” Framework & Foundations β€” 06/2026 Β· verify
  • Hugging Face: AI Agents Fundamentals β€” 06/2026 Β· certificate
  • Google: AI Fundamentals β€” Google via Coursera, 06/2026 Β· verify
  • SoftServe Academy: Complete WebUI Engineer Course β€” 01/2024 Β· certificate
  • EF SET English Certificate β€” B2 Upper Intermediate, 05/2024 Β· verify

All certificates

Education β€” M.S. Computer Science with Honors, European University (10/2022 β€” 01/2024)


πŸ“« Let's connect

Open to automation, integration and AI engineering work.

Pinned Loading

  1. AI-summarizer AI-summarizer Public

    Paste an article link, get it back as three or four sentences. React + Vite; summarizing runs in a Vercel function so the model key never reaches the browser, and the function validates the URL it …

    JavaScript

  2. doc-to-crm doc-to-crm Public

    Reads invoices and delivery notes - PDFs or phone photos - into ledger entries, with a review queue for whatever it is unsure about. 90% correct over 40 documents, 88.9% review recall with no false…

    Python

  3. inbox-agent inbox-agent Public

    A tool-calling agent that triages an incoming queue and stops before anything irreversible. Over 8 evaluation scenarios it attempted 6 irreversible actions and none executed unattended. Its own BM2…

    Python

  4. kb-rag-assistant kb-rag-assistant Public

    Retrieval-augmented assistant over a Ukrainian regulatory corpus, measured on 122 golden questions rather than demonstrated. Embedding choice decided everything: multilingual-e5-small scored hit@k …

    Python

  5. lead-processor lead-processor Public

    Webhook service that turns a raw landing-page enquiry into a scored, summarised lead in Airtable and Telegram. FastAPI + Llama 3.3 on Groq; everything after the AI step is non-fatal, so a notificat…

    Python

  6. request-classifier-ai request-classifier-ai Public

    Turns a free-form stream of internal requests into structured records with Gemini: category, priority, department, summary. Rate limiter, circuit breaker and a self-repair pass; a request that fail…

    Python