Evgenii Rodionov / ← Home
Evgenii Rodionov
Portfolio · Timeline · 2026

Built solo.
Led at scale.

A timeline of what I've built and led end to end — shipping solo as a founder, and steering distributed teams.

9+ yrs shipping Founder · zero → revenue Led teams · 50+-eng orgs
Latest first
The work — newest first
Jun — Jul 2026 Solo · design → build → platform ~6 weeks

Mailpool

A marketing website its owner runs by talking to it.

6 wk
solo · zero to platform
0
developers to publish
100%
automated deploys
1 → ∞
sites from one platform
The stakes
Every business site dies the same way: the owner can't change a word without a developer. Content rots, launches slip, and agencies bill by the hour to move a comma.
The timeline
Six weeks. Solo. From a Figma file to a self-updating platform — designed, built, wired end to end, and ready to go live.
The promise
Built so its owner changes any page by describing it — “make the hero bolder, swap the testimonial” — and the edit ships to production automatically. No developer. No deploys.
The delivery

A full production site: designed in Figma, built in Astro, with a real CMS for the blog and customer stories, SEO and structured data, and streamed video. Every push runs build, lint, test, and audit — then deploys itself to the edge.

AstroTailwind v4TypeScriptStrapi CMSCloudflare WorkersR2Bunny StreamGitHub ActionsFigma → Code
The delivery — the live site, annotated

Tap + to see the details

hero-landing.com — the live marketing site
The scale
And it isn't built as a one-off — it's designed to become a factory: one platform, many sites. Mailpool is site #1, engineered so the next comes far faster.
2026 — Present Founder & CTO · solo ~3 mo to revenue

Anketta

A privacy-first dating app I took from zero to paying users — solo.

3 mo
to first paying customers
10
services, solo (8 + 2 apps)
99.5%
availability · 14-day rolling
15–20
deploys a day
The bet
Dating is broken by looks-first swiping. Anketta is a bet on the opposite: text-first, where people are matched by what they actually write and believe — and I own every call, product, business and engineering.
The platform
Eight backend services and two apps run on high-availability Kubernetes with GitOps deploys, canary releases and encrypted secrets — 99.5% availability and 15–20 deploys a day, operated by one person.
Under the hood — the live product, annotated

Tap + to see the details

anketta.ru — the live product site
The matching
A self-hosted multilingual model matches people on their manuscripts, not their photos. Signals you leave — resonant, or off-key — reshape the feed live, and every embedding stays local. Privacy isn't a setting here; it's the architecture.
The safety net
A cascaded moderation pipeline runs cheap checks first and language models only when needed, with cost-tier gating and circuit breakers — so it stays fast and inexpensive at scale.
The practice

And it's shipped by a fully autonomous multi-agent pipeline — code to tests to docs to an atomic commit to a merge request — the engineering practice I'd scale to a team for compounding velocity.

TypeScriptBunElysiaNext.jsDrizzlePostgreSQLpgvectorKafkaRedisKubernetesFluxFlaggerbge-m3ONNXWebSocketsPostHogStripe
2025 · 6 months Eng Manager / Tech Lead · business-aviation SaaS ~16 engineers · 2 teams

RusJet

Two distributed teams, one auth surface — brokered in two weeks.

16
engineers, across 2 teams
2
teams, unified on one auth
2 wk
to broker + migrate auth
6 mo
as EM / tech lead
The standoff
Two distributed teams — about sixteen engineers under two leads — were about to fork authentication. One used native REST decorators on a shared Nest.js auth library; the other's non-native GraphQL blocked clean integration, and the two were drifting apart in maintenance and security posture.
The move
I reframed the fight from tech-stack preference to the real cost — maintaining and reusing a shared library. The compromise: the GraphQL team kept GraphQL, but moved onto the native Nest.js library. Both teams landed on a single auth surface in about two weeks.
The hardening

Then I made both teams' systems more resilient: OpenTelemetry, Grafana and Prometheus across services so on-call could trace incidents across team boundaries; idempotency, retry/backoff and dead-letter queues on Kafka; and RFC review across both leads to stop the stacks diverging again — while still shipping features alongside the ICs.

Nest.jsNext.jsGraphQLRESTKafkaOpenTelemetryGrafanaPrometheusRFC reviewon-call
2019 — 2025 Sr Software Engineer → Team Lead · YC-backed B2B SaaS 6 yrs · 50+ eng

TrendMD

Six years at a YC-backed SaaS — from a revenue bug to an org-wide migration.

6 yrs
IC → team lead
30%
billable engagement recaptured
8
teams aligned on a monorepo
0
incidents in a zero-downtime cutover
The find
I spotted a long-standing bug in the credit-metering pipeline: the tracker logged only left-clicks, missing middle-clicks and context-menu opens — common on recommendation widgets. I instrumented production traces to prove it, and roughly 30% of billable engagement was going uncounted. The fix converted that into prepaid credit consumption — real revenue, with no price change to customers.
The migration
I led a zero-downtime migration of the high-throughput event-tracking service — the click/impression tracker feeding metering — from a legacy Node service to a refactored TypeScript one. A gradual percentage-based cutover, with full load-balancer rollback on any error-budget breach, shipped it with no customer-visible incidents.
The consolidation

Then, org-wide: I drove eight teams' fragmented services — mixed Meteor, Hapi and Express on mixed Node versions — into one Nest.js monorepo. I authored the migration ADR and aligned eight leads over async memos, cutting the on-call burden of inheriting unfamiliar stacks on rotation.

TypeScriptNode.jsNest.jsmonorepoevent trackingzero-downtime migrationADRteam leadershipon-call