I have done commercial web development since 2019. Now I build web products end to end and work on existing systems. The public projects below cover APIs, integrations, Telegram bots and Mini Apps, and LLM features.
2025 – now · Senior Full-Stack Developer · Independent / Contract
Full-cycle web products and work on existing systems: architecture, dashboards and admin panels, APIs and integrations, optimizing queries, job queues and large imports, CI/CD, monitoring, backup and restore, code review, refactoring 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 API and database, built the UI, deployed and supported them. Next.js, TypeScript, Node.js, Python, PostgreSQL, Redis, Nginx.
2021 – 2023 · Full-Stack Developer · Contract development
Internal web apps for sales departments and service companies: a CRM for handling 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 site for a chain of repair shops with a cost calculator and requests sent to a CRM, WordPress sites with custom themes. JavaScript, PHP, WordPress, MySQL.
The commercial code from this work is private, so the public repositories below are standalone projects built on made-up data.
The demos run on GitHub Pages without a backend. The API is replaced by code in the browser.
Pulse · TypeScript, Fastify, SQLite, React · demo
Cookieless web analytics with uptime monitoring. Each rollup row stores a HyperLogLog sketch: an exact set up to 512 hashes, then 2048 registers. That is how unique visitors are merged across time buckets.
Relay · Python, FastAPI, Redis, SQLite, React · demo
Takes webhooks from Tilda, amoCRM and Bitrix24 and delivers them to Telegram, Google Sheets, amoCRM and email. The Redis queue is built on sorted sets: a worker claims a job with a lease (120 seconds by default), and if the worker dies, the job goes back to the queue when the lease runs out.
DocMind · Python, FastAPI, pgvector, React · demo
Answers questions over PDF, DOCX, HTML files and web pages with citations, and has a Telegram bot. Sources go out over SSE before the model is called, so each [n] is clickable as soon as it streams in. The demo has no LLM: it searches with BM25 in the browser.
Zernolist · React, aiogram 3, FastAPI, SQLAlchemy · demo
A coffee and tea shop inside Telegram, with payment in Stars or on receipt. The server prices every order from the catalog and ignores client prices: a test sends price: 1 and still gets the catalog subtotal.
FlowDesk · Next.js, Fastify, Prisma, PostgreSQL · demo
A CRM with a deals kanban and roles. Refresh tokens rotate, and a reused one revokes every token from that login. A conditional updateMany inside a transaction stops two concurrent refreshes from both getting a new pair.
n8n-home-ai-workflows · n8n, Ollama, Qdrant, Docker Compose
Four workflows: meeting notes to Notion via Claude, a family calendar digest, document Q&A on local models, an error handler. Code-node logic is built from ES modules, and the tests run the jsCode stored in the workflow JSON. No live demo, and I haven't run the workflows against live Anthropic, Notion, Google or Telegram accounts.
Smaller demos are in portfolio: a landing page with a cost calculator, an async scraper, a lead-collection bot and an Excel dashboard.
Bugs I filed against my own projects and haven't fixed yet:
- FlowDesk: a second tab gets logged out after a token refresh in the first
- Relay: an event is stored but never queued if enqueue fails
- DocMind:
docmind askfinds nothing afterdocmind ingestwith default settings
Telegram @sinnercode · portfolio
Коммерческая веб-разработка с 2019 года. Сейчас занимаюсь разработкой веб-продуктов полного цикла и развитием существующих систем. В открытых проектах выше — API, интеграции, Telegram-боты и Mini Apps, функции на LLM.
- 2025 — сейчас. Senior Full-Stack Developer, independent / contract. Полный цикл разработки веб-продуктов и развитие существующих систем.
- 2023–2025. Full-Stack Developer, независимые проекты и контракты. Сервисы с подписками, платёжными интеграциями и автоматизацией.
- 2021–2023. Full-Stack Developer, контрактная разработка. Внутренние веб-приложения для отделов продаж и сервисных компаний.
- 2019–2021. Web Developer, фриланс. Сайты и интернет-магазины для малого бизнеса.
Коммерческий код из этой работы закрыт, поэтому открытые репозитории выше — самостоятельные проекты на выдуманных данных. У каждого есть описание на русском.
Написать: Telegram @sinnercode, портфолио.