Denis Voronin

Product Software Engineer

Useful products.
Built end to end.

I’m Denis. I build the interface, connect the data and make the details work together.

Booking tools, music that keeps playing across pages, and commercial websites. React, TypeScript and fullstack product thinking.

BelarusB2 EnglishOpen to roles & contracts

01 / The mindset

About Me

From making precise parts to building thoughtful products.

Denis, Product Software Engineer
Denis Product Software Engineer · Belarus

Product Software Engineer

A systems mindset.
A product focus.

  • 16 First code
  • 2023 Web journey
  • Fullstack Product work
  • B2 English
  1. Systems & precision

    Mechanical engineering and machining taught me to break complex systems into precise, dependable parts. I bring that discipline to software.

    • Clear contracts
    • Predictable state
    • Type safety
  2. Learn, then build

    From Python bots and Telegram Web Apps to RS School and React. I learn through documentation, source code, and real products.

    • Self-directed learning
    • RS School
    • React & TypeScript
  3. Build with purpose

    Types are a contract. Performance is a feature. I keep the architecture simple so the product stays fast and easy to use.

    • KISS · DRY · YAGNI
    • Performance
    • Useful products

02 / The journey

Education & Experience

From the first HTML page to production fullstack work.

  1. Sep 2023 – Mar 2024

    01

    Foundation & Pure Craft

    Started on 1 September 2023. Learned HTML, CSS, and JavaScript on my own, built the first small apps in vanilla JS, and checked that base in RS School before moving into React and TypeScript.

    • Responsive layouts with media queries, Flexbox, and Grid
    • Data structures, Git, and the first vanilla JavaScript applications
    • RS School Stage 1, then React — classes first, then hooks — and TypeScript
    • HTML
    • CSS
    • JavaScript
    • React
    • TypeScript
  2. Mar 2024 – Dec 2024

    02

    Freelance & Telegram Mini Apps

    First paid products: shop catalogs inside Telegram, a Django-backed assortment manager, and lead widgets that calculated a price and sent the inquiry straight to the client.

    • Telegram Web App catalog with filtering, search, and a native mobile layout
    • Django and SQLite admin on Railway so the owner could update prices and stock
    • Multi-step cost estimator with Telegram webhooks, plus a mobile layout cleanup that removed layout shift
    • React
    • Telegram WebApp
    • Django
    • JavaScript
  3. Dec 2024 – May 2025

    03

    SaaS Contracts & Funnels

    Contract work on subscription products: pricing, checkout, and a cancellation flow that kept the conversation going instead of dropping the user.

    • Live plan calculator with animated progress and monthly/annual billing toggles
    • Checkout and tier comparison redesign
    • Cancellation-prevention modal wired to a Node.js and Express API for contract checks, follow-up email, and churn logging
    • React
    • Node.js
    • Express
  4. Sep 2025 – Present

    04

    Webbee Technologies

    Mid-level frontend at an international company: the marketing site and a legacy SaaS admin. Moved the site from static Astro to TanStack Start with TinaCMS, and rewrote the tracking API in Hono.

    • Mobile First Paint from 6.0s to under 2.0s, about 500ms on desktop
    • Hero and funnel redesign that doubled Get demo clicks, checked with A/B tests
    • 300+ pages, a Matomo click heatmap, and dynamic JSON-LD for blogs and FAQ
    • Contact configurator rebuilt as a linked list of steps with persisted Zustand state
    • Express rewritten to TypeScript and Hono; SaaS admin typed and moved from Redux connect to slices
    • TanStack Start
    • TinaCMS
    • Hono
    • TypeScript
    • Zustand
    • Redux Toolkit
  5. Next

    Future Your next product

    A new team, a meaningful problem, and something useful to build together.

03 / Measured in production

Commercial Impact

Measured results from production work.

04 / Selected engineering work

Flagship Projects

A booking engine, a music player, a commercial software website, and a coffee roastery landing page.

01

Multi-tenant SSR and admin canvas

Bookio

Booking forms for more than one organization. The public page is rendered on the server for that tenant, and the admin edits the same form on a canvas.

  • TanStack Start
  • Nitro
  • TanStack Query
  • Zustand
  • Hono
  • Drizzle
  • PostgreSQL
  • Better Auth

Architecture

TanStack Start and Nitro resolve /:organizationSlug/:bookingFormSlug and write Open Graph and Twitter tags into the document head before hydration.

  • One route per organization and form
  • Social cards are in the first HTML response
  • Nitro runs the server render

02

Audio engine and persistent routes

BROOKLYN

A music app with its own player. Changing the page does not stop the track, because the audio element lives outside the route.

  • TanStack Router
  • Redux Toolkit
  • SCSS
  • Hono
  • Drizzle
  • PostgreSQL

Architecture

An HTML5 Audio element wrapped by Redux Toolkit middleware. Shuffle uses Fisher-Yates. Repeat, seek, scrubbing, and keyboard shortcuts all go through that middleware.

  • The UI does not own the audio element
  • Shuffle, repeat, and seek share one path
  • Keyboard shortcuts work from any route

03

Commercial work at Webbee Technologies

Butlerapp

A marketing website for course and booking software. At Webbee, I moved it to server rendering, improved page speed, and rebuilt the demo funnel.

  • React
  • TypeScript
  • TanStack Start
  • TinaCMS
  • Zustand
  • Hono
  • Matomo

Architecture

Moved the marketing website from static Astro pages to TanStack Start server rendering. Content lives in a separate repository with TinaCMS, so marketing can edit it without changing the site code.

  • Astro SSG migrated to TanStack Start SSR
  • Separate content repository with TinaCMS
  • Self-hosted on a Linux VPS with Nginx

04

Coffee roastery website · Technical assessment

Kvarta

A landing page for a Minsk coffee roastery. I designed the architecture and backend structure, directed AI-assisted implementation, reviewed the code, and refined the result.

  • Astro
  • React
  • Hono
  • PostgreSQL
  • Drizzle ORM
  • Telegram Bot API

Architecture

Designed the site architecture and backend structure, then guided AI-assisted implementation through code review and final refinements.

  • Astro and React frontend
  • Hono backend with PostgreSQL and Drizzle ORM
  • AI-assisted implementation with code review

05 / Technical arsenal

Technical Arsenal

The tools I use, grouped by the problems they solve.

Languages & web foundations

The languages behind the interface, server, and database.

  • TypeScript
  • JavaScript (ES6+)
  • HTML5
  • CSS3 / SCSS
  • SQL

Frontend & SSR systems

Fast first paint, useful interfaces, and routing that fits the product.

  • React 19 / 18
  • TanStack Start
  • Astro
  • TanStack Router
  • Vite
  • SCSS Modules
  • TinaCMS
  • Paraglide JS
  • Motion
  • Vitest
  • Testing Library

State & data synchronization

Clear boundaries between server data, local drafts, and validated forms.

  • TanStack Query
  • Zustand
  • Redux Toolkit
  • RTK Query
  • Reselect
  • Context API
  • React Hook Form
  • Zod

Backend & type safety

Shared API contracts, reliable storage, and access checks at the boundary.

  • Hono
  • NestJS
  • Hono RPC
  • Node.js
  • Express
  • PostgreSQL
  • Drizzle ORM
  • Prisma 7
  • SQLite
  • Database transactions & indexing
  • Better Auth
  • REST & GraphQL

Infrastructure & performance

From deployment to measurement: keeping production fast and dependable.

  • Core Web Vitals
  • GitHub Actions
  • Docker (multi-stage builds)
  • pnpm Workspaces
  • Nginx
  • VPS deployment
  • Linux & Bash
  • Matomo DataLayer
  • JSON-LD

06 / Contact

Let’s build something useful.

Have a product in mind or a place on your team? Tell me what you’re working on.