03 / About
Interfaces, and
what runs under them.
I’m Sergey, a web developer who likes the point where a product idea becomes a real, navigable thing.
I care about the connective tissue: the words, states, transitions, and technical decisions that make an interface feel obvious once it exists. That has been the job since 2018 — charting platforms, financial data systems, product sites — mostly TypeScript, mostly React and its neighbours.
The last stretch has pulled me further down the stack. Coding agents made the runtime interesting again: how a credential gets routed, what a CLI should refuse to do, where a workflow can be made deterministic instead of merely confident. So there is Rust and Go in the recent work now, and the front end reads differently for it.
Same instinct either way. Take the thing apart until the boundaries are visible, then put back only what earns its place.
UTC+4
CurrentlyInterestsUI architecture
Rendering systems
Data interfaces
Browser runtime
Developer tooling
How I work
Understand the runtime before abstracting it
An abstraction written over behaviour you have not watched is a guess with good syntax.
Keep state transitions and ownership explicit
Most interface bugs are really ownership questions nobody answered out loud.
Prefer small composable systems to central machinery
The centre is where every future feature request ends up. Keep it small enough to move.
Make failure modes visible and verification repeatable
A green check that nobody can reproduce is a decoration.
Use constraints to find the shape of the problem
Take something away and the real structure shows up in what breaks.
Tools, roughly grouped
- Interface
- TypeScript / React / Next.js / Astro / Canvas / Sass / design systems
- Systems
- Rust / Go / Node.js / Tokio / REST / SSE / JSON-RPC / WebSockets
- Delivery
- Docker / GitHub Actions / Git / Python / SQL / PHP
Drawn to thoughtful products, difficult interfaces, and teams who care about the details.
Start a conversation