Open to Lead / Senior Fullstack roles

Vladyslav Pelykh

Lead Fullstack Engineer · Currently CTO at AdMatrix

I build revenue-critical, high-load systems for AdTech, iGaming and fintech — and lead the teams that run them. I specialize in the parts where mistakes cost money: payment and postback pipelines, real-time analytics on ClickHouse, concurrency and idempotency.

Download CVTelegramGitHub
<200ms
revenue postbacks, down from 1–6 s
20,000+
concurrent WebSocket users at peak
270k
LOC TypeScript platform architected
270+
sites provisioned on autopilot
7
engineers & designers hired and led
0
double-counted deposits

Case files

11

Production incidents and hard problems I owned — what broke, how I traced it, what shipped.

All case files

Reverse engineering

When there is no API, I build one. Traffic capture, JS deobfuscation, binary protocols and native hooks — turned into stable, typed integrations.

01 Deobfuscating a request signer

signer.min.js → signer.ts
  1. 0. raw bundle
  2. 1. inline string array
  3. 2. fold constants
  4. 3. rename by usage
  5. 4. clean signer
var _0x3f2a=['\x73\x69\x67\x6e','\x6a\x6f\x69\x6e','\x48\x6d\x61\x63'];
(function(_0x1,_0x2){while(--_0x2){_0x1.push(_0x1.shift())}})(_0x3f2a,0x1b3);
function _0x51(_0x9){return _0x3f2a[_0x9-0x0]}
function a(b,c,d){var e=[b[_0x51('0x1')]('&'),c,d][_0x51('0x1')]('|');
return window[_0x51('0x2')](0x2*0x8+0x10,e)[_0x51('0x0')](k)}

02 Decoding protobuf without a .proto

capture.bin · 23 bytes
0000089601120670656c
0008796b681a02080720
0010012a046c656164

 

// decoded
{
  "id": 150,
  "handle": "pelykh",
  "team": { "size": 7 },
  "active": true,
  "role": "lead"
}
  • Chrome DevTools / CDP
  • mitmproxy
  • Burp Suite
  • Charles
  • Wireshark
  • Frida
  • JADX
  • apktool
  • Ghidra
  • Babel AST
  • source maps
  • webpack chunk graphs
  • Puppeteer
  • Playwright
  • Protobuf wire format
  • MTProto
  • WebSocket frames
  • HMAC request signing
Enter the lab

Skills

Backend

  • TypeScript
  • Node.js
  • NestJS
  • Fastify
  • Nitro / h3
  • Go
  • BullMQ
  • Socket.IO
  • SSE
  • REST
  • OpenAPI
  • gRPC
  • Zod
  • Pino
  • Distributed locks
  • Idempotency
  • Event-driven design

Frontend

  • Vue 3
  • Nuxt 3/4
  • Pinia
  • VueUse
  • Tailwind
  • shadcn-vue
  • TanStack Table
  • TipTap
  • Vue Flow
  • Motion
  • i18n
  • React
  • Next.js
  • Canvas
  • Web Workers
  • PWA
  • SSR / SSG
  • Core Web Vitals
  • Technical SEO

Data

  • PostgreSQL
  • ClickHouse
  • Redis
  • BigQuery
  • MongoDB
  • SQLite
  • Drizzle
  • Prisma
  • ETL pipelines
  • Double-entry ledgers

Infra & quality

  • Docker
  • Kubernetes
  • AWS
  • Cloudflare
  • Nginx
  • Caddy
  • Linux
  • GitHub Actions
  • Turborepo
  • Changesets
  • Sentry
  • Grafana
  • Vitest
  • Playwright

Integrations & AI

  • Meta Marketing API
  • Google APIs
  • Telegram Bot API
  • MTProto
  • Telegram Mini Apps
  • Namecheap / Dynadot
  • Puppeteer
  • ComfyUI
  • Wan 2.2
  • Qwen-Image
  • GPU job orchestration

Security

  • Token rotation
  • OAuth 2.0
  • RBAC
  • Argon2
  • AES-256-GCM
  • CSP nonces
  • CSRF
  • Rate limiting
  • TOTP 2FA
  • HMAC signatures
  • Audit logs

Languages

English — professional working · Ukrainian, Russian — native

Experience

    • Engineering leadership. Built the engineering org from zero to 7 engineers and designers; owned hiring, onboarding, code review standards, CI quality gates and the release process; drove a roadmap prioritized against revenue goals.
    • Platform architecture. Architected a ~270k LOC pnpm + Turborepo monorepo — NestJS (Fastify) API, Nuxt SPA, shared Drizzle/Zod contracts, Telegram bots and a Mini App — with one end-to-end typed contract.
    • Core revenue pipeline. Re-engineered legacy PHP postback handlers into a NestJS S2S service on 4 gateways; strict idempotency via Redis distributed locks for FTD, redeposit and LTV attribution. Latency 1–6 s → <200 ms.
    • ETL & analytics. BullMQ pipelines streaming clicks into ClickHouse (ReplacingMergeTree, monthly partitions); eliminated double-counting and cluster OOMs; real-time ROI / ROAS / CPA / EPC on bounded queries.
    • Infrastructure automation. Provisioning pipelines over Cloudflare, Namecheap and Dynadot APIs with retries and rollback for 270+ sites and 470+ domains; migrated 219 live zones with zero downtime; brought a 250-site origin outage from load 125 down to 7.
    • Security. Refresh-token rotation with reuse detection, RBAC with 60 permissions and audited overrides, AES-256-GCM field-level encryption.
    • NestJSFastifyNuxtPostgreSQLDrizzleClickHouseRedisBullMQDocker
    • Real-time. Scaled fault-tolerant WebSocket clusters serving 20,000+ concurrent players during peak sporting events.
    • Performance. Slashed server response time by 40% through Redis caching, query plan optimization and PostgreSQL partitioning.
    • Frontend. Spearheaded the migration to Nuxt 3 (Nitro), cutting First Contentful Paint by 35%.
    • Node.jsRedisPostgreSQLWebSocketsNuxt 3
    • Payments. Engineered a high-volume USDC/BTC payment gateway on strictly idempotent APIs — zero financial discrepancies or double payouts across retries and partial failures.
    • Data. Optimized schemas and execution plans, accelerating BI transaction reporting by 60%.
    • Node.jsPostgreSQLIdempotencyCrypto
    • MVPs. Delivered 4 production-ready fullstack MVPs from scratch in tight cycles to validate seed-stage growth hypotheses.
    • Real-time. Architected Socket.IO notification infrastructure for 5,000+ concurrent users.
    • VueNode.jsMongoDBSocket.IO

Selected projects

  • AffSource— AI video & image creatives for media buyersFounder · in development

    Prompt → ready ad creative → in-browser video editor → export. Runs self-hosted open-weight models (Wan 2.2, Qwen-Image) on rented GPUs instead of paid APIs, so each creative costs a fraction of the usual price. Batch hooks × GEOs × formats generation, live SSE progress, Web Worker export.

    Nuxt 4 · Go · ComfyUI · Canvas · Web Workers · R2 + CDN

  • ORYX— USDT ledger the database enforces

    Append-only double-entry journal guarded by Postgres constraint triggers: balanced at commit, UPDATE / DELETE / TRUNCATE locked out, key-based idempotency, 18-decimal precision.

    NestJS · PostgreSQL · Drizzle

  • Ares-Nexus— Order-matching engine

    Matching on Redis Sorted Sets backed by a PostgreSQL ledger. <50 ms order-to-UI and a 60 FPS PixiJS order book over throttled WebSockets.

    NestJS · Redis · PostgreSQL · PixiJS

  • Ares-X & Fundory— Provably fair engine & Mini App

    HMAC-SHA512 provably fair game engine at 60 FPS on mobile; Telegram Mini App with deduplicated BullMQ rewards, initData verification and automated TRON payouts.

    Node.js · BullMQ · TronWeb · Telegram

  • Pulsarr— Ad tracker — Keitaro / Binom alternative

    Go click server, NestJS API and ClickHouse reporting: campaign routing, postbacks and real-time stats.

    Go · NestJS · ClickHouse · Redis

./lab · 27Hard modeReverse engineering private APIs, deobfuscating hostile JS, lock-free money flows and a Go click server at line rate — 16 challenges with code.

Contact

Hiring for a lead or senior fullstack role, or have a hard problem in payments, tracking or real-time data? Write to me — I usually reply within a day.

Write an email