Senior engineer β TypeScript / React in production, Rust and developer tooling in public.
π Tbilisi, Georgia Β· Open to relocation Β· Senior IC roles Β· BSc Applied Maths & Physics (MIPT)
I build high-performance UI and Canvas-based rendering β shipped editors, real-time analytics dashboards, and banking tools across AdTech, enterprise software, and EdTech. Full work history on LinkedIn.
-
yoptascript-rs β A full compiler frontend from scratch in Rust: lexer, recursive-descent parser, AST, tree-walking interpreter. Built alongside my Biome contributions β Biome is a large, mature JS/TS parser/linter, so I wanted a small from-scratch counterpart to understand each layer end-to-end.
-
financial-rust β Multi-format financial transaction parser (CSV β text β custom binary), with a library and two CLIs designed around
Read/Writetraits and a versioned binary format. -
v8-simple-profiler β A profiler that measures how V8 deoptimizes monomorphic vs polymorphic code paths, using V8 intrinsics and proper statistics for honest measurement.
-
task-tracker-elysia β A task API on Bun + Elysia with strict Clean Architecture / DDD layering, typed error handling via
Resultunions, and a scheduled worker for due-date notifications.
- π¦ Contributing to Biome β Rust-based JS/TS linter & formatter. Recent work in its type-inference engine:
- Fixed overloaded-function resolution (#10585 + #10586) β models TypeScript's overload sets in the module graph and selects the matching signature at the call site, so
noFloatingPromisesstops misfiring on overloaded calls. - Expanded
noUnnecessaryConditionsto flag type-aware dead conditions: nullish/optional chaining on non-nullable types, always-falsy negations, unreachableswitchcases. - Earlier: ported
noAriaUnsupportedElementsand addednoRedundantRolesfor HTML a11y.
- Fixed overloaded-function resolution (#10585 + #10586) β models TypeScript's overload sets in the module graph and selects the matching signature at the call site, so
π§ denisenkoforwork@gmail.com Β· πΌ LinkedIn