Фриланс-бэкенд-инженер · Малага

Maxi
Kirschberg

API, интеграции, автоматизация, наблюдаемые системы.
Никаких смоделированных данных, никаких игрушечных проектов.

↓ листай
01 · обо мне

Как я сюда пришёл

Я начал рано, берясь за системы, которые были слишком велики для моего тогдашнего уровня. Пока многие вокруг писали базовые CRUD, я был одержим тем, что происходит за реальным продуктом: очереди, кэши, конкурентность, деплои, сокеты, инфраструктура. Переломным был день, когда я перестал воспринимать бэкенд как «писать API» и начал видеть его как проектирование систем, которые не разваливаются, когда ими действительно пользуются. С этого момента я подсел окончательно.

Большая часть того, что я знаю, пришла из того, что я ломал. Деплои, которые клали целые сервисы, плохо настроенные прокси, баги конкурентности, которые невозможно воспроизвести, миграции PostgreSQL, сделанные в спешке, middleware, генерирующий абсурдные редиректы в продакшене. Именно там я учился больше всего. Я понял, что мне нравится отлаживать сложные системы и охотиться за реальными узкими местами куда сильнее, чем строить красивые интерфейсы. Понять, почему что-то падает на низком уровне, и починить элегантно — это самое близкое к flow, что у меня бывает.

Со временем мои проекты сместились в сторону настоящей архитектурной работы: автоматизированные пайплайны, реалтайм SSE, многосервисные Docker-стеки, обратные прокси на nginx, скрапинг и системы трендов, контент-автоматизация, внутренний тулинг. «Общие приложения» меня никогда особо не интересовали. Я хочу строить инфраструктуру, которая полезна, быстра и стабильна для продуктов, которые реально двигаются.

02 · стек

Чем я работаю

Это то, к чему я тянусь первым, а не то, что терплю. Выбрано по годам износа в продакшене, а не по анонсам.

03 · отгружено

Недавняя работа

Небольшое число реальных систем, каждая работает на реальных пользователей. Это не портфолио из недоделанных демок.

Kramaru

Редакционная автоматизация · 13 сайтов · в проде

Мульти-тенантная редакционная платформа, которая отслеживает 11 источников трендов, оценивает возможности, генерирует и ревьюит статьи и публикует на 13 нишевых сайтах на 12 языках. Postgres, воркеры pg-boss, интеграция с Claude, собственные QA-пайплайны и дашборд с живым tail каждой очереди.

kramaru.es

PolyMarket trader

Крипто · 24/7 в проде

Четыре стратегии polyvps, работающие 24/7, со smart take-profit, часовыми гейтами и circuit breakers. Реальные деньги, а не бэктест. Ежедневный дашборд метрик, kill-switch, аудит-лог каждой сделки.

Triada AD

Спортивная аналитика · Docker

Движок сеттлмента футбольных прогнозов поверх OpenFootball плюс обогащение Sofascore, подключён к Docker-стеку с хардненингом каждого контейнера. NGINX, Postfix, ключи шифрования Server Actions зафиксированы, чтобы предотвратить replay-атаки заголовков после прошлого инцидента.

TopSec

SaaS · прачечные

POS на Flutter Desktop, бэкенд на Node, MySQL, термопечать, интеграция WhatsApp. Реальные клиенты, offline-first.

Live Demo · поток событий на .NET 8

SSE · Postgres · реалтайм

Публичное демо на mkir.es: один процесс .NET 8 раздаёт события изменений базы данных множеству браузеров через Server-Sent Events. Никаких клиентских зависимостей, чистый HTML, отрисовывающий триггеры Postgres в реальном времени.

mkir.es
04 · кейс

TopSec, в деталях

Длинная версия проекта, который обычно я ужимаю в одно предложение. Сложные решения, что я ломал и что реально работает.

Проблема

TopSec существует, чтобы агрегировать, синхронизировать и визуализировать данные в реальном времени, не опираясь на гигантскую инфраструктуру и не используя стеки, перегруженные для нужд продукта. Бриф был прост в формулировке и труден в исполнении: держать данные живыми, быстрыми и согласованными, пока несколько сервисов разговаривают друг с другом одновременно.

Самое сложное решение

Провести чёткую линию между тем, что живёт в бэкенде .NET 8, и тем, что решается со стороны Next.js. Один тонкий случай сделал эту линию очевидной: маршруты /api плюс middleware next-intl генерировали 307-редиректы на /es/api/*. Технически валидно, на практике сломано. Реалтайм-эндпоинты и stat-эндпоинты молча падали на определённых локалях.

Патч, о котором тебя никто не просит, — это тот, что оправдывает ставку инженера: вместо того чтобы править правила редиректов поштучно, я переписал matcher middleware так, чтобы исключить /api полностью. Маленькое визуальное изменение, огромное архитектурное.

Оптимизировать слишком рано — плохо. Игнорировать производительность с первого дня — хуже. Рабочий принцип

Другое решение — оставить PostgreSQL единственным источником истины. Для этого продукта согласованность и возможность писать сложные запросы стоили больше любых выигрышей в скорости, которые можно было выжать из NoSQL. «Скучно» — это нормально, когда «скучно» — это правильно.

Что я сломал

Прод однажды лёг, потому что я допустил, что Docker-образ действительно был пересобран. «Новый» код вёл себя как старый. На самом деле виноват был npm ci, который молча падал, потому что отсутствовал package-lock, оставляя билд в неконсистентном состоянии. Я потратил часы на отладку логики приложения для того, что было проблемой пайплайна.

Урок Не доверяй ни одному деплою, пока своими глазами не убедился, какой именно артефакт реально запущен. SHA образа, хеш контейнера, лог коммита билда при старте. Самая дешёвая минута, которую ты когда-либо потратишь.

Результат

  • Стабильная многосервисная архитектура на VPS: бэкенд, фронтенд, Redis, PostgreSQL, nginx — всё скоординировано.
  • Большое снижение ошибок маршрутизации и реалтайма после переписывания middleware.
  • Время отклика улучшено за счёт точечного кэширования и чистого разделения ответственностей.
  • Архитектура готова расти новыми модулями без переписывания ядра.
  • Публичная часть: mkir.es. Более глубокие технические разборы — по запросу.
05 · как я работаю

Мнения, которые я отстаиваю

Сильные позиции, заработанные продакшен-инцидентами, а не в Twitter. Если какое-то напрягает — скорее всего, мы поладим.

Первые два часа в новом проекте

  1. Понять реальную бизнес- или пользовательскую задачу. Не тот стек, который, по мнению клиента, ему нужен.
  2. Найти потенциальные узкие места до того, как написана хоть одна строка кода.
  3. Набросать поток данных на бумаге или в документе.
  4. Нарисовать минимально жизнеспособную архитектуру, и не больше.
  5. Выбрать стек по реальным ограничениям, а не по моде.
  6. Поднять воспроизводимое окружение с первого дня.
  7. Решить, какие части должны масштабироваться, и, что важнее, какие не должны.

Источники, сформировавшие моё мышление

06 · что я не беру

Честный фильтр

Говорить «нет» делает «да» надёжнее. Это проекты, где я был бы плохим выбором.

07 · доступность

Работать со мной

Фриланс и контракты с 2022. Открыт к remote-first ролям или гибриду в Малаге и на Коста-дель-Соль, когда проект того стоит. Не интересны глубоко корпоративные среды, где инженерия исчезает под процессом.

Статус
Доступен для новых проектов, гибко по объёму.
Форматы
Фриланс, контракты, сложные бэкенд-сборки, аудиты архитектуры систем.
Ставка
35–60 € в час, в зависимости от объёма и ответственности. Также возможна цена за проект.
Локация
Сначала remote. Гибрид в Малаге или на Коста-дель-Соль, когда поездка оправдана.
Языки
Испанский (родной). Английский (C1, технический и профессиональный).
Образование
DAM, разработка кроссплатформенных приложений.
08 · связь

Связаться

Email отвечает быстрее всего. LinkedIn — для знакомств, GitHub — для кода.

emailmaxikirschberg1@icloud.com linkedinMaximilian Kirschberg github@MaxiKirCas портфолиоmkir.es