From 49770b351f214bc06072ed31271f43adcf549dc3 Mon Sep 17 00:00:00 2001 From: Oleg Proskurin Date: Sat, 6 Jun 2026 20:49:14 +0700 Subject: [PATCH] update --- .claude/skills/triage-jobs/SKILL.md | 168 ----------------- .../vacancy-filter-and-triage-2026.md | 145 +++++++++++++++ package.json | 3 +- scripts/regen_telegram_session.sh | 25 +++ .../oleg_proskurin-senior-engineer.html | 169 ++++++++++++++++++ .../tangory/oleg_proskurin-senior-engineer.md | 90 ++++++++++ .../oleg_proskurin-senior-engineer.pdf | Bin 0 -> 109296 bytes 7 files changed, 431 insertions(+), 169 deletions(-) delete mode 100644 .claude/skills/triage-jobs/SKILL.md create mode 100644 base/reference/vacancy-filter-and-triage-2026.md create mode 100755 scripts/regen_telegram_session.sh create mode 100644 tailored/tangory/oleg_proskurin-senior-engineer.html create mode 100644 tailored/tangory/oleg_proskurin-senior-engineer.md create mode 100644 tailored/tangory/oleg_proskurin-senior-engineer.pdf diff --git a/.claude/skills/triage-jobs/SKILL.md b/.claude/skills/triage-jobs/SKILL.md deleted file mode 100644 index 12a4627..0000000 --- a/.claude/skills/triage-jobs/SKILL.md +++ /dev/null @@ -1,168 +0,0 @@ ---- -name: triage-jobs -description: Triage the latest Telegram vacancy inbox (`tracking/telegram_inbox.json`) — stratifies by priority (p1 in this session, p2/p3 via a Haiku subagent) and returns a deduped shortlist of vacancies worth applying to. Use when the user says "разбери inbox", "что нового по работе", "разбери вакансии", "пройдись по telegram-вакансиям", "triage the inbox", "find relevant jobs from telegram", or similar. ---- - -# triage-jobs - -Read the latest Telegram vacancy fetch and present a shortlist that fits Oleg's targeting. - -The inbox file is large (~200K tokens). To keep the main session lean, p2/p3 channels go to a **Haiku subagent** that returns only finalists. p1 (small, high-signal) is processed here. - -## Args - -Optional priority filter as positional arg(s): `p1`, `p2`, `p3`, or `all` (default). - -- `/triage-jobs` → all three tiers -- `/triage-jobs p1` → only p1 in this session, skip subagent -- `/triage-jobs p2 p3` → only subagent run - -## Step 1 — Pre-checks - -Verify the inbox exists and is recent: - -```bash -ls -lh tracking/telegram_inbox.json -jq '{generated_at, total_in_inbox, channels_count: (.channels | length)}' tracking/telegram_inbox.json -``` - -If the file is missing or its `generated_at` is older than ~6 hours, **don't run triage on stale data** — offer to refetch first: - -```bash -~/.local/bin/uv run scripts/list_telegram_channels.py \ - | ~/.local/bin/uv run scripts/fetch_telegram_jobs.py - -``` - -## Step 2 — Oleg's targeting (apply strictly during triage) - -This is the rubric — use it verbatim when deciding "keep or drop" and when briefing the subagent. - -**Roles he targets:** -- Senior / Staff / Principal Full-Stack Engineer -- Tech Lead, Engineering Lead, Engineering Manager (with hands-on) -- AI Engineer / Applied AI / LLM Engineer (TS or Python OK for AI roles) - -**Stack match (strong signal):** TypeScript, JavaScript, Node.js, React, Next.js, TanStack, Tailwind, PostgreSQL, Drizzle, Vercel, Cloudflare, Sanity/Storyblok/Contentful/Payload (Headless CMS), Shopify/Hydrogen, GraphQL, WebSockets. For AI roles also: LLM orchestration, MCP, RAG, embeddings, Mastra, Vercel AI SDK, Claude/GPT/Gemini APIs. - -**Culture must-haves:** -- **Global remote** (he's in GMT+7, full EMEA overlap + US East AM). EMEA / global / US-East-friendly TZ all fine. "Remote within Russia only" or "US only — must be in EST 9-5" → reject. -- **Compensation in USD/EUR** preferred. Target ~$100k+ FT or $70+/hr contractor. Russian-RUB roles at ₽70-100k/mo (≈ $750-1100) are below floor. -- Deel/W-8BEN contractor format is a plus. - -**Deal-breakers (auto-reject):** -- Mobile-native (Kotlin, Swift, Android, iOS, Flutter) -- Non-stack backend (Go/Golang, Java, .NET, C#, Ruby, PHP, Rust, Scala) **as primary** — if the role is fullstack with React/Node + Go on side, that's fine -- DevOps / SRE as primary role -- QA / Manual testing -- Sales, Marketing, Designer, Recruiter, PM (non-engineering) -- Junior / Trainee / Intern -- On-site outside major remote-friendly hubs (e.g. Lagos, low-cost-region on-site) -- Sub-$50k FT compensation when the salary is stated - -**Stretch interests (consider even if not perfect match):** -- AI/ML engineering roles using Python (his AI CV covers this) -- Vetted-contractor platforms (Toptal, Lemon.io, Turing) — separate financial track -- Headless CMS, Shopify Hydrogen, eCommerce platforms -- Roles at companies building dev tooling, AI agents, MCP ecosystem (his open-source overlaps) - -For canonical source-of-truth, the CVs are at: -- `base/oleg_proskurin_ai_engineer_fullstack_cv.md` -- `base/oleg_proskurin_fullstack_techlead_cv.md` - -## Step 3 — p1 (process here) - -Pull p1 channels from inbox and walk through every kept message: - -```bash -jq '.channels | to_entries | map(select(.value.priority == "p1")) | from_entries' tracking/telegram_inbox.json -``` - -For each kept message, classify: -- **Apply** — fits role + culture + comp. Note: company, role, link, why-fit (1 line). -- **Maybe** — fits role/stack but unclear comp or stretch culture. Note same fields + the uncertainty. -- **Drop** — fails targeting. Don't list, don't explain. - -p1 should be small enough (~12K tokens currently) to do in main session without context strain. - -## Step 4 — p2 and p3 (delegate to Haiku subagent) - -Spawn a subagent via the Agent tool. Use `general-purpose` agent type with **Haiku model** for cost/speed. - -**Critical:** the subagent does not see this conversation. The prompt must be self-contained. - -Template (fill `` with `p2`, or pass both p2 and p3 in one call): - -``` -Agent({ - description: "Triage Telegram inbox ", - subagent_type: "general-purpose", - model: "haiku", - prompt: ` -Triage job postings from Oleg's Telegram inbox. - -Read tracking/telegram_inbox.json and filter to channels with priority "": - - jq '.channels | to_entries | map(select(.value.priority == "")) | from_entries' tracking/telegram_inbox.json - -Oleg's targeting (apply strictly): - -[paste the "Step 2 — Oleg's targeting" section verbatim] - -For each kept message that is a REAL vacancy (not a resume/CV digest entry, not a chat-room message, not a market-intel essay), decide if it fits the targeting. - -Return ONLY the shortlist as JSON. Reject everything else silently — no commentary on rejected items. - -Shortlist schema: -[ - { - "channel": "", - "id": , - "link": "", - "title": "", - "company": "", - "stack": [""], - "comp": "", - "remote": true | false | "unclear", - "fit": "apply" | "maybe", - "why": "" - } -] - -If there are zero matches, return []. -Do not paraphrase or summarize messages — quote the original title verbatim and just extract structured fields. -Do not include personal opinions or formatting commentary. -` -}) -``` - -Run subagents in parallel where possible (one for p2, one for p3 in the same message). - -## Step 5 — Aggregate and present - -Combine p1 finalists (from Step 3) with subagent shortlists (Step 4). Dedupe by `(company, title)` pair when possible. - -Present grouped output to Oleg, e.g.: - -``` -🎯 APPLY (N) -- jaabz_com #10233 — AI-Native Full Stack Developer @ Geeky Tech — TS/React/Python, Fully Remote, B2B SaaS -- dev_connectablejobs #2039 — Full-Stack Engineer @ VOYGR — AI-native, $4-7k, Remote, founders ex-Google -- ... - -🤔 MAYBE (N) -- jsspeak #58062 — AI Engineer (Python & Node.js) Senior @ Eshe App — 300-400k₽, RU+BY citizenship only — fit but comp lower -- ... -``` - -## Step 6 — Suggest next step - -After the shortlist, offer to: -- Append apply-list to `tracking/applications.md` (one row each, status `to-apply`). -- For 1-2 top picks, switch to the tailoring workflow (see main CLAUDE.md "Workflow 2 — Tailor CV"). - -## Notes - -- **Don't auto-add to `applications.md`** without explicit confirmation — Oleg curates that file. -- **Don't auto-refetch.** If the inbox is stale, ask first. -- **State cursor advances on every fetch.** A skill run only reads the existing inbox — it doesn't trigger a new fetch unless explicitly requested. -- **Skip P3 by default if user says "quick triage"** — p3 is mostly market-intel and dead channels, low ROI. diff --git a/base/reference/vacancy-filter-and-triage-2026.md b/base/reference/vacancy-filter-and-triage-2026.md new file mode 100644 index 0000000..77aed58 --- /dev/null +++ b/base/reference/vacancy-filter-and-triage-2026.md @@ -0,0 +1,145 @@ +# Критерии отсева и триаж вакансий — 2026 + +> **Статус документа: authoritative playbook для триажа.** +> Единый источник для решения apply / skip и выбора версии CV. +> Сводит воедино критерии из `strategy-positioning-tracks-2026.md` (разделы 3–4), `` + `` из основной инструкции, backend-трек из `cv-backend-variant-hostinger-2026-05.md`, таймзонные расчёты из `facts-from-salmon-chat.md`. +> Приоритет при конфликте: явное указание Олега → этот документ → остальные файлы. +> Последнее обновление: 2 июня 2026 (v1, ввод comp-scaled таймзоны, fallback comp-яруса, research-протокола по площадкам). + +--- + +## 1. Логика в двух словах + +Сначала четыре **hard-gate** (объективные блокеры — отсев без вариантов). Прошли все четыре — вакансия в работе, дальше не отсев, а **классификация трека** и выбор CV. Триаж занимает ~5 минут чтения JD. + +Базовая постура: **trying-friendly, не filtering-friendly.** На спорных побеждает «подаём». Жёсткий skip — редкость, нужен конкретный объективный блокер. + +--- + +## 2. Hard-gate — четыре блокера + +Вакансия проходит, если выполнены **все четыре** одновременно. + +### Gate 1 — География / найм +Можно нанять одним из: +- contractor через Deel / Remote.com из Таиланда, ИЛИ +- remote-employee для компании, нанимающей non-US резидентов. + +**Skip если:** location-locked / US-only / UK-only / EOR не покрывает Таиланд и нет contractor-опции. + +### Gate 2 — Таймзона (comp-scaled, не бинарный) +Базовое окно гибкости: **9:00–22:00 GMT+7** (полный EMEA overlap, утренний US East). Это предел, до которого можно растягиваться без доплаты за неудобство; комфортный день — 11:00–20:00. + +| Что требует роль | Условие прохождения | +|---|---| +| Overlap укладывается в 9:00–22:00 GMT+7 | проходит при любом comp ≥ floor | +| Overlap выходит за окно (частичное пересечение) | проходит, если **comp > $9k** | +| Полный overlap, ночная работа (PST core hours, full US-day) | проходит, если **comp > $10k** | + +**Skip по таймзоне только если:** comp ≤ $9k **И** требуемый overlap выходит за пределы 9:00–22:00 GMT+7. + +### Gate 3 — Compensation +| Ярус | Зона | Как рассматриваем | +|---|---|---| +| Целевая | $8–12k/мес | основная воронка | +| Floor | $6–8k/мес | нормальный рабочий нижний порог | +| Fallback | $4.5–6k/мес | **только временный мостик**, «если вообще ничего нет». Не основная воронка, штучно и осознанно | +| Skip | < $4.5k/мес | отсев | + +Сигналы «ниже floor» без явной вилки: pre-seed без funding visibility + equity-heavy framing + явное «scrappy team». Stretch выше $15k существует для founding-engineer ролей в AI-стартапах Series A–B, но только при реальном матче профиля. + +### Gate 4 — Уровень роли +Senior / Staff / Tech Lead / опытный middle+. + +**Skip если:** явный junior / mid без потолка роста. +**НЕ skip если:** роль выглядит выше (Lead / Principal / Head) — это сигнал, что внутри такого человека нет, стоит пробовать, особенно если подача быстрая. + +--- + +## 3. Классификация трека (после прохождения gate) + +Не отсев, а выбор CV и угла письма. + +| Условие в JD | Трек | CV | +|---|---|---| +| AI в **must-have** (LLM / agents / MCP / RAG / orchestration / embeddings в core requirements) | **Track A** | CV-A (`cv-2026-05-base.md`) | +| Чистый Node.js / backend, AI как nice-to-have / «significant plus» | **Backend-first** | CV-C (`cv-backend-variant-hostinger-2026-05.md`) | +| Senior / full-stack / frontend без AI в must-have | **Track B** | CV-B (`oleg_proskurin_fullstack_techlead_cv.md`) | +| Senior + AI-tooling fluency как требование (не AI-продукт, а «build with AI assistance») | **Hybrid** | CV-B с AI, поднятым в Skills на 2–3 позицию | + +Russian-speaking scale-ups (Manychat, inDrive, Wheely, Joom, Adapty и подобные) — **по умолчанию Track B**, даже если AI в JD не упомянут. + +Принцип на спорных: +- между «Track B» и «skip» → побеждает Track B; +- между «Track A» и «Track B» для гибридной JD → есть AI в must-have → A, нет → B. + +--- + +## 4. Обработка отсутствующих навыков + +Один отсутствующий навык (Go, конкретный фреймворк, named-инструмент) — **не skip**. + +Но: +- **Не флагать явно** в письме. Не строить конструкцию «вот тут у меня гэп / one thing to flag». +- **Сначала уточнить у Олега перед подачей:** «в JD просят X, не вижу его в материалах — был ли опыт?» Навык часто есть, просто выпал при тримминге CV (примеры: Redux Toolkit / RTK Query, Vitest, Playwright в `facts-from-salmon-chat.md`; Jest в backend-CV; eCommerce/CMS tail в `cv-master-extended.md`). +- Сначала проверяем реальность → потом решаем, как подавать. + +Реальные гэпы, которые можно называть без проверки (из ``): языки вне стека (Go, Rust, Java, C++, Ruby, PHP), heavy DevOps (K8s-оркестрация at scale, SRE), нативный мобайл (Swift, Kotlin). React Native и Python — bridgeable, не гэп. + +--- + +## 5. Research-протокол при анализе вакансии + +Дополнительно к чтению самой JD — рекомендуется (особенно для ролей, проходящих gate): + +### 5.1. Поресёрчить саму компанию +Что за компания, что делает, продукт, стадия, funding, недавние новости, размер команды, репутация (Glassdoor / Blind где есть). Цель — понять контекст и отсеять ghost / red-flag компании. + +### 5.2. Найти, где ещё выложена эта вакансия +Сравнить постинг на разных площадках (careers-page компании, LinkedIn, ATS-ссылка, job-боарды, агрегаторы). Обратить внимание и **консолидировать**: +- **Дата постинга** — самое раннее появление. Старый постинг (90+ дней без обновлений) — ghost-сигнал. +- **Вилка** — где какая указана. Разные площадки часто дают разные band'ы. +- **Гео-ограничения** — где-нибудь указано US Only / UK Only / location-locked / список eligible стран? + +### 5.3. Правило приоритета ограничений +**Ограничения трактуются как более актуальная / авторитетная информация.** Если в одном месте «remote», а в другом «US only» — значит берут US only, отсев по Gate 1. Менее ограничительная формулировка побеждает **только** если прямо и явно указано, что ограничение снято / расширено. + +Это согласуется с известным паттерном (``, strategy-docs): «100% remote» на LinkedIn engagement-листах надёжно завышает гео-гибкость — всегда проверять hiring-country eligibility до вложения в тейлоринг. Freshteam ATS: SSR отдаёт полный JD независимо от статуса; «not accepting applications» — JS-оверлей, подтверждать активность apply-кнопки в браузере. + +Вся найденная информация консолидируется в один разбор вакансии, не размазывается. + +--- + +## 6. Ложные блокеры — НЕ основание для skip + +Системные ошибки триажа, которых избегаем (из `strategy-positioning-tracks-2026.md` раздел 4): + +1. **Роль выглядит senior-heavy** (Lead / Principal / Head) → сигнал «внутри нет такого», пробовать. +2. **Один отсутствующий навык** → уточнить у Олега, не skip (см. раздел 4). +3. **«Не AI-first компания»** → причина для Track B / Hybrid, не отказ. +4. **Поверхностный domain mismatch** → смотрим на технические задачи (orchestration, structured extraction, LLM workflows), не на ярлык индустрии. +5. **«Не Russian-speaking scale-up»** → нейтрально, не минус. +6. **«Stage / timeline не вписывается в 8 недель»** → влияет на приоритизацию последовательности, не на отсев. Проверять скорость interview-процесса по сигналам. +7. **Comp ниже $8k но в floor / fallback** → рассматриваем, особенно если компания стратегическая или роль интересная. +8. **Tech-stack mismatch с быстрым ramp** → лиди к подаче, ramp упоминаем честно (но не выпячиваем гэп — см. раздел 4). + +--- + +## 7. Operational flow при получении JD + +1. Открыть и прочитать JD (при недоступности URL — halt, не реконструировать из памяти). +2. Извлечь за первую минуту: уровень роли, must-have stack, AI-наличие (must / nice / нет), location & timezone constraints, comp-сигналы. +3. Прогнать 4 hard-gate (раздел 2). Любой провален → skip с одним объективным критерием. +4. Anti-pattern self-check (раздел 6): отсеваю ли по subjective критерию? Да → повысить класс. +5. Research-протокол (раздел 5): компания + кросс-площадочная проверка ограничений и вилки. +6. Прошли gate → классифицировать трек (раздел 3) + назвать рекомендуемое CV + 2–3 proof-point для письма. +7. Missing skills → уточнить у Олега до подачи (раздел 4). +8. Выдать консолидированный разбор: роль/компания, фит, трек, strong matches, open questions, найденные ограничения/вилки по площадкам, рекомендация apply/skip. + +--- + +## 8. Когда обновлять документ + +- После первого callback / interview / rejection из каждого трека → калибровка proof-point и порогов. +- При изменении comp-floor, таймзонного окна или target-зоны Олегом → правка немедленно. +- Раз в 4 недели baseline pass — рынок и позиционирование меняются быстро. diff --git a/package.json b/package.json index fa342fe..ee8ccf7 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,8 @@ "type": "module", "scripts": { "pdf": "node scripts/generate-pdf.mjs", - "chrome": "bash scripts/launch-chrome.sh &" + "chrome": "bash scripts/launch-chrome.sh &", + "tg:session": "bash scripts/regen_telegram_session.sh" }, "dependencies": { "puppeteer": "^24.37.3" diff --git a/scripts/regen_telegram_session.sh b/scripts/regen_telegram_session.sh new file mode 100755 index 0000000..f93023f --- /dev/null +++ b/scripts/regen_telegram_session.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env bash +# Regenerate Telegram session string via QR login. +# Reads TELEGRAM_API_ID / TELEGRAM_API_HASH from the project .env, +# then runs the generator from the telegram-mcp install. +set -euo pipefail + +PROJECT_ROOT="$(cd "$(dirname "$0")/.." && pwd)" +TELEGRAM_DIR="/projects/my-utils/telegram" + +if [ ! -f "$PROJECT_ROOT/.env" ]; then + echo "missing $PROJECT_ROOT/.env" >&2 + exit 1 +fi + +set -a +. "$PROJECT_ROOT/.env" +set +a + +if [ -z "${TELEGRAM_API_ID:-}" ] || [ -z "${TELEGRAM_API_HASH:-}" ]; then + echo "TELEGRAM_API_ID / TELEGRAM_API_HASH missing in $PROJECT_ROOT/.env" >&2 + exit 1 +fi + +cd "$TELEGRAM_DIR" +exec .venv/bin/python session_string_generator.py --qr "$@" diff --git a/tailored/tangory/oleg_proskurin-senior-engineer.html b/tailored/tangory/oleg_proskurin-senior-engineer.html new file mode 100644 index 0000000..32783de --- /dev/null +++ b/tailored/tangory/oleg_proskurin-senior-engineer.html @@ -0,0 +1,169 @@ + + + + + Oleg Proskurin — CV — Tangory + + + +
+

OLEG PROSKURIN

+

Senior Node.js Backend Engineer & Tech Lead

+

Remote · GMT+7 (EMEA full overlap, US East AM) · Deel contractor, W-8BEN

+

+ usulpro@gmail.com · + Telegram @usulpro · + LinkedIn · + GitHub · + Dev.to · + Blog +

+
+ +
+

Summary

+

+ Senior Node.js / TypeScript backend engineer and Tech Lead with 9 years of production + experience, currently leading the backend and AI generation layer of PrimeUI + (primeui.com, launched Feb 2026): an AI-native code + generation platform for professional websites that ships customer-owned Next.js projects. + Designed and operated consumer-scale backends on PostgreSQL and the Sanity-based Tipico US + platform (75M requests/month, 122 CMS users). Comfortable owning services end-to-end: + REST API design, database modeling and optimization, performance tuning, third-party + integrations, and AI/LLM orchestration as a first-class backend concern. +

+
+ +
+

Skills

+

Backend & APIs: TypeScript, Node.js, REST APIs, WebSockets, GraphQL. PostgreSQL, Drizzle ORM, SQL design and query optimization. Schema validation, retry/recovery, streaming responses. Public-API design for cross-host integrations (MCP server, CLI)

+

AI Engineering: LLM orchestration and guardrails on the backend: multi-model routing (Claude / GPT / Gemini), context engineering, prompt caching (73% Gemini context-cache hit rate), schema validation, retry recovery. Embeddings-based retrieval. MCP: custom server development; cross-host agent integration

+

Commerce & CMS: Shopify, Shopify Hydrogen, Crystallize, Stripe. Sanity, Storyblok, Contentful, Payload. Content modeling, multi-environment publishing, large-scale migrations

+

Infrastructure & Delivery: Docker, docker-compose. Vercel, Cloudflare, Serverless & Edge functions. CI/CD pipelines, NPM package publishing. Web performance: Core Web Vitals, Lighthouse, WCAG

+

Full-Stack adjacent: React, Next.js (App Router, SSR/SSG/ISR), TanStack Start/Router, Vite, Tailwind, shadcn-style design systems

+
+ +
+

Experience

+ +
+
+ PixelPoint Ltd. + Tech Lead & Senior Full-Stack Engineer, PrimeUI +
+
+ France · Remote + Feb 2025 – Present +
+

+ PrimeUI (primeui.com, launched Feb 2026) is an + AI-native platform for generating production-ready websites, spanning Studio web app, + public API, MCP server, CLI, and code-export pipeline. Sole full-time engineer on the + project, owning roughly 70% of platform architecture across all surfaces. +

+
    +
  • Architected the AI generation layer on the Node.js backend: multi-model orchestration via Mastra + Vercel AI SDK (10 agents, 17 workflows) with per-task routing across Claude, GPT, and Gemini; embeddings-based component retrieval over 1,555 chunks (OpenAI text-embedding-3-small) with three-tier fallback from exact key to family bucket to semantic search; prompt caching reaching 73% Gemini context-cache hit rate.
  • +
  • Public API, code-export pipeline, and CLI: generates a production-ready Next.js project repo in ~45 seconds, ~1.5 minutes end-to-end from UI Export to a running local project. The generated codebase is customer-owned, shipped as a standard Next.js project, pre-configured for 8 selectable AI coding agents.
  • +
  • Built and published @primeuicom/mcp on NPM: 25 tools that let any external codebase connect to PrimeUI from inside AI coding environments, with cross-host compatibility verified across 6 major coding agents (Claude Code, Cursor, Codex, others).
  • +
  • Owned the Node.js server runtime end-to-end, including WebSocket-based streaming of model responses adapted to UI rendering, schema validation, retry and recovery flows for LLM calls, and third-party API integrations.
  • +
  • Drove team AI-tooling adoption: Claude Code from project start, team transition to Codex ahead of public release. Open-sourced codex-bee and epic-loop as spinoffs.
  • +
+
+ +
+
+ FocusReactive + Tech Lead & Senior Software Engineer +
+
+ London · Remote + May 2019 – Feb 2025 (5 yrs 10 mos) +
+

International web consultancy for clients in the US, UK, Europe, and Australia.

+
    +
  • Architected the Tipico US backend on Sanity Headless CMS at consumer scale: 75M requests/month, 122 CMS users, 98 document types, 165K stored documents. 5 publishing environments, 3 datasets, white-label architecture for core + state teams.
  • +
  • Built a Claude-based content automation pipeline: JSON translation flow for 190 country-specific Storyblok pages, integrated into publishing and saving ~1 month of manual work.
  • +
  • Led migration of 15 client projects to Headless CMS and commerce platforms (Sanity, Storyblok, Contentful, Payload, Crystallize, Shopify, Hydrogen), restructuring content models and cutting update cycles from weeks to days.
  • +
  • Designed and built CMS-KIT, an open-source Headless CMS starter and component library used across 15 client projects, cutting kickoff from days to hours and accelerating development by ~30%.
  • +
  • Led technical hiring and team development: designed an assessment mirroring real working conditions, ran 30 interviews leading to 8 hires, mentored new engineers; drove team adoption of Claude.ai for research, content, and codebase analysis from 2024 onwards.
  • +
+
+ +
+
+ GitNation + Senior Software Engineer (Part-time, concurrent) +
+
+ Remote + May 2019 – Feb 2025 +
+

Built publishing flow via Slack API and a reusable web framework for conference websites; migrated GitNation conferences to Headless CMS.

+
+ +
+
+ Osome + Frontend Developer +
+
+ Singapore + Jun 2018 – May 2019 +
+

Built fuzzy-logic search system and advanced UI animations for the corporate-services platform.

+
+ +
+
+ Skipp + JavaScript Engineer +
+
+ Moscow + Nov 2017 – Jun 2018 +
+

B2B marketplace for Skolkovo Innovation Center (100 companies); GraphQL subscriptions for real-time chat.

+
+
+ +
+

Portfolio

+

+ PrimeUI, + MarketFinance, + Tipico-Platform, + IWM membership, + NotSoApp, + CasinoReviews, + VegasSlotsOnLine, + Caleffy, + Hadhat, + Porchlight, + Gitnation, + FocusReactive blog, + Skolkovo R&D Market, + Reverse Health, + Firsty +

+
+ +
+

Open Source & Writing

+
    +
  • Storybook: contributor and steering team member during the 2016–2017 community revival; addon maintainer (storybook-addon-console, 7M NPM downloads; storybook-addon-material-ui, 18K weekly).
  • +
  • AI developer tooling: codex-bee, a wrapper for long-running Codex sessions; epic-loop, a Codex skill solving context degradation in long autonomous coding sessions via techlead/engineer role separation and durable epic state.
  • +
  • Technical writing: articles on frontend, Headless CMS, and developer tooling at FocusReactive blog and Dev.to.
  • +
+
+ +
+

Education

+

Master in Engineering, Faculty of Electronic Engineering, Moscow Power Engineering University (MPEI), Russia

+
+ +
+

Languages

+

English C1 · Russian native

+
+ + diff --git a/tailored/tangory/oleg_proskurin-senior-engineer.md b/tailored/tangory/oleg_proskurin-senior-engineer.md new file mode 100644 index 0000000..823ccc3 --- /dev/null +++ b/tailored/tangory/oleg_proskurin-senior-engineer.md @@ -0,0 +1,90 @@ +# OLEG PROSKURIN +**Senior Node.js Backend Engineer & Tech Lead** + +Remote · GMT+7 (EMEA full overlap, US East AM) · Deel contractor, W-8BEN + +usulpro@gmail.com · Telegram @usulpro · [LinkedIn](https://www.linkedin.com/in/oleg-proskurin-76784453/) · [GitHub](https://github.com/UsulPro) · [Dev.to](https://dev.to/usulpro) · [Blog](https://focusreactive.com/blog/author/usulpro/) + +--- + +## Summary + +Senior Node.js / TypeScript backend engineer and Tech Lead with 9 years of production experience, currently leading the backend and AI generation layer of PrimeUI ([primeui.com](https://primeui.com/), launched Feb 2026): an AI-native code generation platform for professional websites that ships customer-owned Next.js projects. Designed and operated consumer-scale backends on PostgreSQL and the Sanity-based Tipico US platform (75M requests/month, 122 CMS users). Comfortable owning services end-to-end: REST API design, database modeling and optimization, performance tuning, third-party integrations, and AI/LLM orchestration as a first-class backend concern. + +--- + +## Skills + +**Backend & APIs**: TypeScript, Node.js, REST APIs, WebSockets, GraphQL. PostgreSQL, Drizzle ORM, SQL design and query optimization. Schema validation, retry/recovery, streaming responses. Public-API design for cross-host integrations (MCP server, CLI) + +**AI Engineering**: LLM orchestration and guardrails on the backend: multi-model routing (Claude / GPT / Gemini), context engineering, prompt caching (73% Gemini context-cache hit rate), schema validation, retry recovery. Embeddings-based retrieval. MCP: custom server development; cross-host agent integration + +**Commerce & CMS**: Shopify, Shopify Hydrogen, Crystallize, Stripe. Sanity, Storyblok, Contentful, Payload. Content modeling, multi-environment publishing, large-scale migrations + +**Infrastructure & Delivery**: Docker, docker-compose. Vercel, Cloudflare, Serverless & Edge functions. CI/CD pipelines, NPM package publishing. Web performance: Core Web Vitals, Lighthouse, WCAG + +**Full-Stack adjacent**: React, Next.js (App Router, SSR/SSG/ISR), TanStack Start/Router, Vite, Tailwind, shadcn-style design systems + +--- + +## Experience + +### PixelPoint Ltd. — Tech Lead & Senior Full-Stack Engineer, PrimeUI +**Feb 2025 – Present** · France · Remote + +PrimeUI ([primeui.com](https://primeui.com/), launched Feb 2026) is an AI-native platform for generating production-ready websites, spanning Studio web app, public API, MCP server, CLI, and code-export pipeline. Sole full-time engineer on the project, owning roughly 70% of platform architecture across all surfaces. + +- **Architected the AI generation layer on the Node.js backend**: multi-model orchestration via Mastra + Vercel AI SDK (10 agents, 17 workflows) with per-task routing across Claude, GPT, and Gemini; embeddings-based component retrieval over 1,555 chunks (OpenAI `text-embedding-3-small`) with three-tier fallback from exact key to family bucket to semantic search; prompt caching reaching 73% Gemini context-cache hit rate. +- **Public API, code-export pipeline, and CLI**: generates a production-ready Next.js project repo in ~45 seconds, ~1.5 minutes end-to-end from UI Export to a running local project. The generated codebase is customer-owned, shipped as a standard Next.js project, pre-configured for 8 selectable AI coding agents. +- **Built and published `@primeuicom/mcp` on NPM**: 25 tools that let any external codebase connect to PrimeUI from inside AI coding environments, with cross-host compatibility verified across 6 major coding agents (Claude Code, Cursor, Codex, others). +- **Owned the Node.js server runtime end-to-end**, including WebSocket-based streaming of model responses adapted to UI rendering, schema validation, retry and recovery flows for LLM calls, and third-party API integrations. +- **Drove team AI-tooling adoption**: Claude Code from project start, team transition to Codex ahead of public release. Open-sourced [codex-bee](https://github.com/usulpro/codex-bee) and [epic-loop](https://github.com/usulpro/epic-loop) as spinoffs. + +### [FocusReactive](https://focusreactive.com) — Tech Lead & Senior Software Engineer +**May 2019 – Feb 2025** (5 yrs 10 mos) · London · Remote + +International web consultancy for clients in the US, UK, Europe, and Australia. + +- **Architected the Tipico US backend on Sanity Headless CMS at consumer scale**: 75M requests/month, 122 CMS users, 98 document types, 165K stored documents. 5 publishing environments, 3 datasets, white-label architecture for core + state teams. +- **Built a Claude-based content automation pipeline**: JSON translation flow for 190 country-specific Storyblok pages, integrated into publishing and saving ~1 month of manual work. +- **Led migration of 15 client projects to Headless CMS and commerce platforms** (Sanity, Storyblok, Contentful, Payload, Crystallize, Shopify, Hydrogen), restructuring content models and cutting update cycles from weeks to days. +- **Designed and built CMS-KIT**, an open-source Headless CMS starter and component library used across 15 client projects, cutting kickoff from days to hours and accelerating development by ~30%. +- **Led technical hiring and team development**: designed an assessment mirroring real working conditions, ran 30 interviews leading to 8 hires, mentored new engineers; drove team adoption of Claude.ai for research, content, and codebase analysis from 2024 onwards. + +### [GitNation](https://github.com/GitNation/live-conferences) — Senior Software Engineer (Part-time, concurrent) +**May 2019 – Feb 2025** · Remote +Built publishing flow via Slack API and a reusable web framework for conference websites; migrated GitNation conferences to Headless CMS. + +### [Osome](https://osome.com/sg/) — Frontend Developer +**Jun 2018 – May 2019** · Singapore +Built fuzzy-logic search system and advanced UI animations for the corporate-services platform. + +### [Skipp](https://www.skipp.dev) — JavaScript Engineer +**Nov 2017 – Jun 2018** · Moscow +B2B marketplace for Skolkovo Innovation Center (100 companies); GraphQL subscriptions for real-time chat. + +--- + +## Portfolio + +[PrimeUI](https://primeui.com/), [MarketFinance](https://focusreactive.com/marketfinance-case-study/), [Tipico-Platform](https://focusreactive.com/sanity-platform-case-study/), [IWM membership](https://www.iwm.org.uk/membership#membershipModal), [NotSoApp](https://focusreactive.com/notsoape-case-study/), [CasinoReviews](https://focusreactive.com/casino-reviews-case-study/), [VegasSlotsOnLine](https://www.vegasslotsonline.com/), [Caleffy](https://www.caleffionline.it/), [Hadhat](https://focusreactive.com/hardhat-case-study/), [Porchlight](https://focusreactive.com/porchlight-case-study/), [Gitnation](https://github.com/GitNation/live-conferences), [FocusReactive blog](https://focusreactive.com/blog/), [Skolkovo R&D Market](https://rnd.sk.ru/lk/main), [Reverse Health](https://join.reverse.health/tour/nutrition-monthly-generic-others), [Firsty](https://www.firsty.app/) + +--- + +## Open Source & Writing + +- **Storybook**: contributor and steering team member during the 2016–2017 community revival; addon maintainer (storybook-addon-console, **7M NPM downloads**; storybook-addon-material-ui, **18K weekly**). +- **AI developer tooling**: [codex-bee](https://github.com/usulpro/codex-bee), a wrapper for long-running Codex sessions; [epic-loop](https://github.com/usulpro/epic-loop), a Codex skill solving context degradation in long autonomous coding sessions via techlead/engineer role separation and durable epic state. +- **Technical writing**: articles on frontend, Headless CMS, and developer tooling at [FocusReactive blog](https://focusreactive.com/blog/author/usulpro/) and [Dev.to](https://dev.to/usulpro). + +--- + +## Education + +**Master in Engineering**, Faculty of Electronic Engineering, Moscow Power Engineering University ([MPEI](https://mpei.ru/lang/en/Pages/default.aspx)), Russia + +--- + +## Languages + +English C1 · Russian native diff --git a/tailored/tangory/oleg_proskurin-senior-engineer.pdf b/tailored/tangory/oleg_proskurin-senior-engineer.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f99e61bd51f3ed794531d51fdd4acc8d8ba8d42e GIT binary patch literal 109296 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ⅆu@wx9}M-)?Bqu4E>DY%_Rl)@~zh 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