Skip to content
View sinnercode228's full-sized avatar

Block or report sinnercode228

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.

Content in all repositories owned by your account will be closed.
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
sinnercode228/README.md

sinnercode (sinnercode228 on GitHub), open to contract work. Full-stack developer, commercial web development since 2019. 6 pull requests merged upstream into aiogram and unstructured. 3 Python libraries on PyPI: aiogram-stars, aioamocrm and aiomoysklad. Telegram bots, payments and CRM: aiogram, Stars, YooKassa, amoCRM.

Portfolio · Telegram @sinnercode · PyPI · dev.to · По-русски

Full-stack developer, in commercial web development since 2019. I build web products from scratch and work on existing ones: APIs, booking and subscription billing, CRM integrations, Telegram bots and Mini Apps, LLM features.

Available for contract work (fixed price, hourly or monthly), including joining your team or taking over an existing codebase. Telegram: @sinnercode.

Merged upstream

Pull request Change
aiogram #1954 InlineKeyboardBuilder.as_markup() no longer drops its options. Fixes #1423
aiogram #1956 Opt-in tasks_shutdown_timeout, so polling shutdown can wait for running handlers. Fixes #1955
unstructured #4568 translate_text() no longer repeats the first 512 tokens for every chunk. Fixes #3607
unstructured #4597 partition_email() no longer fails on attached emails (message/rfc822)
unstructured #4599 .markdown files are detected as Markdown. Follow-up to #3670
unstructured #4602 partition_pdf() debug overlays now use the DPI and PDF password passed to partitioning. Fixes #3985

Libraries

All three are on PyPI, MIT licensed, for Python 3.10+.

aiogram-stars: Telegram Stars payments for aiogram 3, pip install aiogram-stars, and the payment flow from pre_checkout_query to on_paid and refunds
aiogram-stars 0.2.0 · PyPI
Telegram Stars payments for aiogram 3, extracted from Zernolist. on_paid runs once per charge. Failed refunds are retried from a database outbox.
aioamocrm: async Python client for the amoCRM API v4 and Kommo, pip install aioamocrm, and a token refresh followed by a POST that is not resent after a 429
aioamocrm 0.1.1 · PyPI
Async client for the amoCRM and Kommo API v4. Handles OAuth2 token rotation and limits requests to 7 per second. A POST is resent only with retry=True, because amoCRM has no idempotency keys. Tested on mocked HTTP, not a live account.

aiomoysklad 0.1.0 · PyPI
Async client for the MoySklad JSON API 1.2 that keeps to its limits: request weights per token kind, including the change on 1 December 2026, at most 5 requests in flight, retries on 429 from the Lognex headers, and a stop before the automatic cut-off. Covers stock reports, customer orders and webhooks. Tested on mocked HTTP, not a live account yet.

Projects

Client code from my contract work is private, so these are standalone projects with sample data. The demos run on GitHub Pages with the API mocked in the browser.

  • tg-paid-club · Python, aiogram 3, FastAPI, PostgreSQL
    Paid access to a private Telegram channel or group, with YooKassa card renewals, Stars subscriptions and a 3-day grace period after a declined card. Only paying members' join requests are approved. No live deployment: a simulator fills the admin dashboard with sample members.
  • Zernolist · React, aiogram 3, FastAPI · demo · write-up
    A coffee and tea shop as a Telegram Mini App, paid in Stars or on receipt. Order totals are computed on the server from the catalog, never taken from the client. Stars payments go through aiogram-stars.
  • Slotbook · Go, PostgreSQL, React · demo · write-up
    Online booking for salons, with a booking widget and a staff day view. A PostgreSQL exclusion constraint prevents double booking under concurrent requests.
  • DocMind · Python, FastAPI, pgvector, React · demo · write-up
    Q&A with citations over PDF, DOCX, HTML and web pages, also as a Telegram bot. Sources are sent before the answer, so each [n] is clickable as it streams. The demo searches with BM25 in the browser, without an LLM.

DocMind demo: a question, the answer streaming with [1] and [2], and the matching source cards highlighted

Smaller demos are in portfolio: a landing page with a cost calculator, an async scraper, a lead-collection bot and an Excel dashboard.

Technical write-ups (English and Russian) are in notes/, and the aiogram-stars one is also on dev.to. Fix log: notes/fixes.md.

Experience

2025 – present · Senior Full-Stack Developer · Independent / Contract
New products and work on existing systems: APIs and integrations, admin panels, job queues and bulk imports, query optimization, CI/CD and monitoring, code review and releases.

2023 – 2025 · Full-Stack Developer · Independent projects and contracts
Services with subscriptions, payments and automation: a SaaS for links and contacts, a Telegram sales platform with automatic delivery of digital goods, a website analytics service. I designed the APIs and databases, built the UIs, deployed and maintained them. Next.js, TypeScript, Node.js, Python, PostgreSQL, Redis, Nginx.

2021 – 2023 · Full-Stack Developer · Contract development
Internal web apps for sales teams and service businesses: a CRM for incoming customer requests, a document portal with approvals, supplier catalog sync with price and stock updates. React, TypeScript, Node.js, PostgreSQL, Redis, Docker.

2019 – 2021 · Web Developer · Freelance
Websites and online stores for small businesses: an auto parts store with CSV import, a repair-shop chain site with a cost calculator that sends leads to a CRM, WordPress sites with custom themes. JavaScript, PHP, WordPress, MySQL.


По-русски

Full-stack разработчик, в коммерческой разработке с 2019 года. Делаю веб-продукты с нуля и дорабатываю существующие: API и базы данных, онлайн-запись, биллинг подписок, интеграции с amoCRM и Bitrix24, Telegram-боты и Mini Apps, функции на LLM.

  • Приняты шесть моих PR: два в aiogram (#1954, #1956) и четыре в unstructured (#4568, #4597, #4599, #4602).
  • На PyPI три мои библиотеки: aiogram-stars для приёма платежей в Telegram Stars в aiogram 3, aioamocrm, асинхронный клиент API amoCRM и Kommo, и aiomoysklad, асинхронный клиент API МойСклада, который соблюдает его лимиты на запросы.
  • Технические разборы проектов на русском: notes/.

Работаю по фиксированной цене, почасово или помесячно. Могу подключиться к вашей команде или взять на поддержку существующий проект.

Telegram: @sinnercode · Портфолио

Pinned Loading

  1. portfolio portfolio Public

    Demo projects: landing page with cost calculator, async web scraper, Telegram lead bot, Excel dashboard generator

    Python 2

  2. aioamocrm aioamocrm Public

    Async Python client for the amoCRM and Kommo API v4: OAuth2 with refresh-token rotation and shared token storage, 7 req/s spacing, retries that never resend a write unless asked, pagination, typed …

    Python 1

  3. aiogram-stars aiogram-stars Public

    Telegram Stars payments for aiogram 3: signed invoice payloads, pre-checkout answered before the 10 s deadline, on_paid run once per charge, and a refund outbox in SQLite or PostgreSQL that retries…

    Python

  4. tg-shop-miniapp tg-shop-miniapp Public

    Telegram Mini App shop: React + Vite + TypeScript, aiogram 3 bot, FastAPI backend, initData validation, Telegram Stars payments. Browser demo.

    Python 2

  5. docmind-rag docmind-rag Public

    RAG document assistant: FastAPI, pgvector, MMR retrieval, Claude/OpenAI, streamed answers with citations, Telegram bot, React chat UI with in-browser demo.

    Python 1

  6. aiomoysklad aiomoysklad Public

    An async toolkit for integrations with the MoySklad JSON API 1.2: a client that keeps to MoySklad's limits, plus helpers for stock, customer orders and webhooks.

    Python