Senior Full-Stack TypeScript Engineer

Alexander
Safiullin

End-to-end product engineering — React, TanStack, Astro, Solid, Bun, Drizzle, Telegram Mini Apps, offline-first systems.

a.safiullin@gmail.com Remote English · 中文 · Русский

01 · Profile

Senior full-stack engineer turning complex product ideas into maintainable systems.

Focused on production-oriented web applications, automation platforms, and domain-heavy product systems — React, TanStack Start, Astro, Solid.js, Node/Bun, Drizzle, Turso/libSQL, Telegram Mini Apps, PWA/offline architecture, CI/CD, and AI-assisted product workflows.

Specialised in client-state architecture, authenticated server functions, database modeling, background workflows, media processing, deployment automation, and human-in-the-loop AI tooling. Comfortable owning projects end to end — from domain modeling and UI architecture to infrastructure, testing, and operational reliability.

02 · Selected Projects

Four production systems, owned end to end.

Shaolin Content Factory

Telegram content automation · multi-channel publishing

Architected and built a production-oriented Telegram content automation system serving multiple Telegram channels through several workflow-specific AI agents. The backend owns drafts, versions, media, scheduling, publication, retries, and persistence; agents perform generation, transformation, scraping, localization, and content preparation.

Stack — TypeScript · React 19 · TanStack Start / Router / Query · Mantine · tRPC · grammY · Effect / Effect.TS · Drizzle · Turso / libSQL · QStash · OpenClaw · Bun · Playwright · SOPS · Telegram Mini Apps
  • Deterministic backend around AI agents — TanStack Start / grammY / Turso architecture keeps business-critical state transitions outside the agent runtime.
  • Plugin-based workflow architecture where Telegram topics bind to workflow-specific agent_code values, letting multiple agents share one bot, one operator surface, and one draft lifecycle.
  • Draft lifecycle services — creation, versioning, rendering, media mutation, scheduling, unscheduling, publication, discussion routing, comment-driven revisions.
  • Typed tRPC control-plane contract shared by the backend and Bun-compiled agent callback CLIs, cutting schema drift between workflow agents and the application core.
  • Drizzle / Turso schemas for drafts, versions, media, projections, topic bindings, scheduled jobs, recurring schedules, idempotency keys, voice intake, and workflow-owned state.
  • Telegram Mini App editor — React + TanStack Query + Mantine, Markdown preview, signed auth, media-aware editing, save / schedule / unschedule flows.
  • Reliability: QStash signature verification, command idempotency, callback de-duplication, projection-backed reply routing, OpenClaw webhook session persistence fixes.
  • Effect / Effect.TS Telegram userbot RPC services for media-album publishing — typed errors, session validation, exclusive operation gating, timeouts, platform failure modes.
  • Scheduled generation workflows including Playwright-based scraping of external sources and human-approved draft publication.

Lotus Cast

Audio learning app · podcasts & long-form foreign-language study

Media-heavy language-learning app combining podcast listening, transcription, AI explanations, quizzes, Anki workflows, Telegram bot/WebApp integration, and offline-friendly mobile playback. Both Telegram users and a standalone web app served from the same TanStack Start codebase.

Stack — TypeScript · React 19 · TanStack Start · Bun · Drizzle · Turso / libSQL · Better Auth · Telegram Bot / WebApp · TanStack Query · Jotai · Dexie · Serwist · Cloudflare R2 · Fly.io · Cloudflare Workers · Go · Playwright
  • Full-stack audio learning app with authenticated server functions, Telegram bot/WebApp integration, podcast ingestion, episode playback, standalone web routes.
  • Podcast & personal-audio workflows — Podcast Index ingestion, Yandex Disk browsing, persisted libraries, playlist navigation, dynamic artwork theming, mobile player state.
  • Transcription architecture with range coverage tracking, lock management, provider-backed STT, persisted segments, R2 audio chunks, retry behavior, usage/cost event recording.
  • Offline-friendly playback — Serwist service workers, Browser Cache API, range-aware audio caching, Dexie / IndexedDB persistence, TanStack Query persistence.
  • AI-assisted learning — contextual transcript explanations, audition/quiz workflows, Anki note generation with model metadata sync and audio media upload.
  • Go audio proxy with JWT validation and Go FFmpeg worker with OpenAPI codegen and R2 chunking; Cloudflare image resizing worker.
  • Automated Fly.io / Cloudflare deploys with GitHub Actions path filters, SOPS secrets, version tags, health checks, Playwright smoke tests.
  • Layered test coverage across Bun unit tests, Vitest UI/integration tests, and Playwright mobile smoke / E2E scenarios.

Qimen Walking

Telegram Mini App + standalone web · Qi Men Dunjia walking recommendations

Chinese metaphysics application computing auspicious walking directions and time windows using Qi Men Dunjia and BaZi. Runs both as a Telegram Mini App and as a standalone web app from one shared TanStack Start codebase.

Stack — TypeScript · React 19 · TanStack Start / Router · Mantine 9 · Panda CSS · Jotai · TanStack Query · Better Auth · Drizzle · Turso / libSQL · Telegram Mini Apps · Serwist · Fly.io · Sentry
  • Dual-runtime Qi Men web app for Telegram Mini App and standalone browser use, sharing route tree, state architecture, and business logic across both environments.
  • Layered client-state architecture — TanStack Query (server), Jotai (orchestration), IndexedDB / sessionStorage / Telegram CloudStorage (persistence).
  • Client-side Qi Men / BaZi stroll search engine over shared domain libraries — ordinary results and best-of-week/month pipelines.
  • Read-through best-results cache with contextKey reuse checks and in-flight deduplication to avoid duplicate 30-day calculations across route mounts.
  • Better Auth extended with Telegram OIDC, Telegram native auth, Google login, account merge flows, Drizzle-backed auth/session schemas.
  • Storage-first settings hydrating from IndexedDB or Telegram CloudStorage, with optional server sync gated by subscription tier.
  • Offline-capable after first load — Serwist service worker for app-shell / assets, TanStack Query IndexedDB persistence for Qi Men reference content.
  • Fly.io CI/CD with GitHub Actions path filters, SOPS/age secret staging, tag-derived versions, Sentry source-map upload, runtime env validation.

Qimen.Guru Calculator

Interactive Qi Men Dun Jia calculator & educational site

Production-oriented Chinese metaphysics calculator and content site combining Astro content delivery with Solid.js interactive calculator islands and shared TypeScript domain packages.

Stack — TypeScript · Astro 5 · Solid.js · Panda CSS · Park UI · Better Auth · Drizzle · Turso / libSQL · TanStack Query · TanStack DB · IndexedDB · PWA · Playwright · Vitest · Fly.io · Docker · GitHub Actions
  • Interactive Qi Men Dun Jia calculator and educational site — Astro, Solid.js, Panda CSS, reusable TypeScript domain packages.
  • Client-side chart state restoration and URL synchronization — calculated charts can be shared, restored, and migrated from legacy links.
  • Offline-capable calculator behavior — PWA precaching, IndexedDB-backed TanStack Query persistence, local saved-chart storage.
  • Saved-charts repository — local persistence, record sanitization, search, metadata editing, sharing, restoration, Playwright regression coverage.
  • Better Auth guest sessions with protected Astro server actions, transparent unauthorized-session recovery, unit tests for retry/concurrency behavior.
  • Shared Drizzle/Turso schemas for auth, Telegram bot users, subscriptions, referrals, promo broadcasts, Stripe webhook idempotency.
  • CI/CD automation — Turborepo, Docker, Fly.io deployment, SOPS secret staging, change-based workflow filters, deployment version tags.
  • Reusable domain libraries — BaZi, Qi Men, lunar calendar utilities, metadata rules, generated reference info across a pnpm / Turborepo monorepo.

03 · Engineering Strengths

Six areas where the work compounds.

Full-stack product ownership

Multiple end-to-end applications covering frontend architecture, backend APIs, auth, DB schema design, background jobs, deployment, testing, and operational workflows.

Complex client-state architecture

Applications combining TanStack Query, Jotai, IndexedDB, service workers, browser storage, and Telegram CloudStorage with clear ownership boundaries between server, local, and durable state.

Telegram platform expertise

Telegram bots, Mini Apps, native Telegram auth, OIDC-style flows, init-data validation, discussion-thread routing, inline callbacks, topic-bound workflows, human-in-the-loop operator flows.

Offline & media-heavy apps

PWA/offline via service workers, Browser Cache API, range-aware audio caching, IndexedDB/Dexie, query persistence, media proxying. Architectures for unstable remote URLs and mobile connectivity.

AI-assisted workflows & automation

AI/STT provider integrations and agentic workflows integrated into production-shaped systems — keeping deterministic state, security, idempotency, and review flows under application control.

Infrastructure & delivery

Automated deploys with GitHub Actions, Docker, Fly.io, Cloudflare Workers, QStash, SOPS-managed secrets, Sentry releases, path-filtered deploys, and health checks.

04 · Additional Technical Experience

  • TypeScript monorepos with pnpm workspaces, Turborepo, shared domain / lint / config / database packages.
  • Drizzle schemas and migrations for auth, subscriptions, media, drafts, workflow state, transcription coverage, locks, Anki notes, Telegram users, webhook events.
  • Provider integrations — Telegram, Podcast Index, Apple Podcasts, Spotify links, Yandex Disk, AnkiConnect, Cloudflare R2, QStash, Sentry, STT/LLM providers, custom media services.
  • Go for dedicated infrastructure services — audio proxying and FFmpeg-based media processing.
  • Unit, integration, and E2E tests with Vitest, Bun test runner, Testing Library, and Playwright.
  • Architecture decisions documented through ADRs, subsystem design docs, testing notes, and project outlines.