Открыт к предложениямOpen to work

Михаил
Киселев
Mikhail
Kiselev

Бэкенд-инженер. Node.js, PostgreSQL, Kubernetes — пятый год. Backend engineer. Node.js, PostgreSQL, Kubernetes — fifth year in.

01О себеAbout

Отвечаю за то, что происходит после запроса. I own everything that happens after the request.

Пять лет пишу серверную часть: доменные модели и миграции без простоя, транзакции и блокировки, кэш в Redis, обмен событиями через Kafka. Основной инструмент — NestJS на TypeScript, основная база — PostgreSQL. Five years of server-side work: domain models and zero-downtime migrations, transactions and locking, Redis caching, event exchange over Kafka. Main tool — NestJS on TypeScript; main database — PostgreSQL.

Не останавливаюсь на границе приложения: собираю Docker-образы, описываю деплой в Kubernetes, настраиваю CI/CD и живу в Linux-консоли. Одинаково спокойно читаю план запроса и логи пода. I don't stop at the app boundary: I build Docker images, describe Kubernetes deploys, wire CI/CD and live in a Linux shell. A query plan and a pod's logs read the same to me.

В своих проектах беру задачу целиком: семья SHFF — это self-hosted сервисы для домашнего сервера, SSH-клиент со своим эмулятором терминала и бенчмарк на CUDA и Vulkan. От формата описания стеков до релизных пайплайнов. In my own projects I take the whole thing: the SHFF family — self-hosted services for a home server, an SSH client with its own terminal emulator, and a CPU/GPU benchmark on CUDA and Vulkan. From the stack description format to release pipelines.

  • РольRole Backend / DevOps-ориентированный инженерBackend engineer, DevOps-minded
  • ФорматыEngagement Фултайм удалённо · проектная работаRemote full-time · project work
  • ЯзыкиLanguages Русский · английский (техническая переписка)Russian · English (technical)

02СтекStack

Инструменты, с которыми работаю в продакшенеTools I run in production

01TypeScript / Node.js

  • TypeScript
  • Node.js
  • NestJS

Модульная архитектура, DI, валидация на границах, тесты там, где ломается. Modular architecture, DI, validation at the boundaries, tests where things break.

02Данные / Data

  • PostgreSQL
  • MySQL
  • TypeORM

Схемы и индексы, миграции без простоя, чтение планов запросов вместо догадок. Schemas and indexes, zero-downtime migrations, reading query plans instead of guessing.

03Состояние / Events

  • Redis
  • Kafka

Кэш и распределённые блокировки, событийный обмен, ретраи и идемпотентность. Caching and distributed locks, event exchange, retries and idempotency.

04Инфраструктура / Infra

  • Docker
  • Kubernetes
  • CI/CD
  • Linux
  • Git

Сборка образов, манифесты и деплой, пайплайны и дежурство по своим сервисам. Image builds, manifests and deploys, pipelines, and being on call for my own services.

03Open source

Код открыт — можно смотреть, а не верить на слово. The code is public — read it instead of taking my word.

SHFF — семья проектов про домашние серверы и цифровую независимость. Один контейнер, одна база, ноль запросов наружу: данные остаются на твоём железе. Всё под MIT, с CI, тестами и мультиарховыми образами — включая ARM. SHFF is a family of projects about home servers and digital independence. One container, one database, zero outbound calls — the data stays on your own hardware. All MIT, with CI, tests and multi-arch images, ARM included.

Freedom can only live at home.

SHFF Dock Домашний сервер без консоли: панель ставит сервисы кнопкой — уже с конфигами, паролями и связанными соседями. Каталог тянется из отдельного реестра и обновляется сам. A home server without the console: the panel installs services with one button — configs, passwords and linked neighbours included. The catalogue is pulled from a separate registry and updates itself. TypeScriptNode.jsDocker APIcomposeReact install.sh одной командой · образ на Docker Hub one-command install.sh · image on Docker Hub SHFF Connect SSH-клиент на весь homelab: свой эмулятор VT/xterm (htop, vim, tmux, truecolor), туннели трёх видов через одну сессию, SFTP в две панели, ключи в хранилище на AES-256-GCM и Argon2id. An SSH client for the whole homelab: a hand-written VT/xterm emulator (htop, vim, tmux, truecolor), three tunnel types over one session, two-pane SFTP, keys in an AES-256-GCM vault with Argon2id. C#.NET 9AvaloniaSSHArgon2id Windows · macOS · Linux · 88 тестов ядра Windows · macOS · Linux · 88 core tests SHFF Notes Заметки, которые лежат на своём сервере: автосохранение с офлайн-очередью, markdown, поиск по тексту без разметки, выгрузка в .md одной кнопкой. Notes that live on your own server: autosave with an offline queue, markdown, search over text without the markup, one-click export to .md. Next.js 16Prisma 7SQLiteTypeScript amd64 + arm64 · 63 теста · ~80 МБ в покое amd64 + arm64 · 63 tests · ~80 MB idle SHFF Planner Поминутная разметка суток вместо списка встреч: 1440 минут, дыры видны, раскатка дня на месяц с отменой одной кнопкой. A minute-by-minute map of the day instead of a meeting list: 1440 minutes, gaps visible, roll a day out over a month and undo it with one button. ReactTypeScriptNode.jsSQLite Docker Hub · 89 тестов · ~30 МБ в покое Docker Hub · 89 tests · ~30 MB idle SHFF Registry Формат описания стеков dock/v1: инпуты становятся переменными окружения, тома создаются с нужным владельцем до первого запуска, compose не переизобретается. The dock/v1 stack format: inputs become environment variables, volumes are created with the right owner before first start, and compose is not reinvented. YAMLcomposetemplates 12 готовых сервисов · форкается под свой каталог 12 ready stacks · fork it for your own catalogue Infinite Monkey Benchmark Кросс-платформенный бенчмарк на теореме о бесконечных обезьянах: один Philox4x32-10 бит-в-бит на CPU, CUDA и Vulkan, статистика по сэмплам каждые 100 мс. A cross-platform compute benchmark built on the infinite monkey theorem: one Philox4x32-10 bit-identical across CPU, CUDA and Vulkan, sampled every 100 ms. C++17CUDAVulkan / GLSLCMake x86_64 · ARM64 · known-answer тесты x86_64 · ARM64 · known-answer tests JustHide Аналог Bartender на 300 КБ: прячет иконки меню-бара, включая системный шеврон macOS 26+, без единого разрешения. Длина расширителя подбирается калибровкой по живому бару. A 300 KB Bartender alternative: hides menu-bar icons, including the macOS 26+ system chevron, without asking for a single permission. Expander length is calibrated against the live bar. SwiftAppKituniversal binary macOS 13+ · без Accessibility и записи экрана macOS 13+ · no Accessibility, no screen recording github.com @Heisenberg4441 Остальные репозитории и коммиты The rest of the repositories

04КонтактыContact

Расскажите про задачу — отвечу в течение дня. Tell me about the task — I reply within a day.