bnmap.pro
Fullstack Developer (Node.js/React)
November 2024 - present
B2B Real Estate Analytics - #1 platform in Russia · 80/20 backend
- Maintain and evolve microservice architecture under 40K+ DAU and 2,000 rps: Event-Driven (pub/sub), Circuit Breaker (Opossum), MinIO/S3 for reports
- Built the full observability stack: OpenTelemetry Collector (OTLP HTTP+gRPC), Tempo (TraceQL), Loki, Prometheus, 4 Grafana dashboards / 64 panels with Telegram alerts (5xx, p95-latency, RabbitMQ backlog, Redis-down, predictive disk-full); spanmetrics + servicegraph for an auto-generated Service Map
- Migrated proxy/scraper/notification/admin/cms services from Express to Fastify - k6 latency dropped 2× at the same memory footprint
- Built a Vike+React SSR storefront: housing catalog, premium flow with guards and paywall, price analytics charts, AI chat on an in-house RAG with streamed responses
- Shipped Astro + Tailwind landing pages with WebGL Pixi.js animations - SSG, strong Core Web Vitals, search engine indexing
- Set up a Fastify + Playwright + Rebrowser + Camoufox scraper for 40 sources: anti-bot bypass, fingerprinting, ghost-cursor, RabbitMQ queue, Redis checkpoint-resume
- Introduced pgvector in PostgreSQL for embeddings and AI RAG; distributed cron on BullMQ + Redis
- Integrated Robokassa (cards, SBP, YuMoney) with a 30-day subscription and auto-termination via a scheduler service
- Adopted Drizzle ORM with type-safe migrations and a shared schema package; extracted shared packages - contracts (Zod DTOs), logger (Pino+OTel), telemetry (auto-instrumentation) - for the whole monorepo
- CI/CD on self-hosted GitHub Actions runners: changed-service detection, build + push to Docker Hub, deploy via Dokploy + Docker Swarm, pre-push gate (lint, typecheck, unit + integration)
- Testing pyramid: vitest unit, integration on docker-compose (Postgres + Redis + RabbitMQ + headless browser), k6 load tests with historical comparison
- VitePress internal docs portal - sped up onboarding for analysts and engineers