Frontend developer with 14+ years of commercial experience (If 14 feels like too much, feel free to read it as 3–6). I mainly work with React, TypeScript and JavaScript. I have built messaging interfaces, improved older codebases and debugged React performance problems.
Next.js, Vite, Webpack, Jest, React Testing Library, Zod
Experience
Atlas Acme
Senior Frontend Developer · Minsk, Belarus
Web client for an enterprise messenger and collaboration platform.
Built messaging features such as threaded discussions, reactions, polls, attachments and message forwarding.
Updated the existing encryption key flow to support regeneration and registration of a symmetric key when requested by the server. Adapted SSE event handling and REST requests to key changes.
Built a React interface with complex layouts and interactions, and integrated it with the rest of the app.
Fixed UI bugs and inconsistent behavior across screens, and simplified older modules.
Discussed requirements with designers, backend engineers and product managers. Reviewed code and helped colleagues with technical problems.
Wrapped an older form validation library to make it easier to use with React and support checks with Zod.
Built a separate module for showing validation errors in both older and React-based forms. Demonstrated the approach to the team and adjusted it for gradual adoption.
Added features to the video telematics module, clarified requirements and fixed integration problems between related parts of the app.
Built and updated shared UI components and investigated React rendering problems.
Tech: React, TypeScript, Redux Toolkit, Zod, Jest, React Testing Library
EPAM Systems
Senior Frontend Developer · Minsk, Belarus / Vilnius, Lithuania
Worked on more than 20 client projects in media, e-commerce, maritime software and other fields. Selected projects:
Berliner Zeitung
Aug 2021 – Oct 2022
Redesign of a German news website.
Built responsive article pages, photo galleries and interactive components with React and Next.js.
Integrated virtualized lists with infinite article loading. Investigated slow rendering and components showing stale state.
Helped prepare a Next.js prototype for a client presentation on a tight deadline: adapted existing styles, wrote new CSS and fixed visual issues.
Built an animated mobile image carousel using CSS only, without JavaScript.
Worked with the team on a UI library for building pages from reusable components. The same components could use different brand styles without changes to their code.
Wrote tests, added Storybook documentation and took part in code reviews.
Tech: React, JavaScript, SASS, Storybook, Atomic Design, Jest
ConstructConnect
Dec 2018 – Jul 2019
Construction bid and project management platform.
Migrated legacy React class components to Hooks and built a custom data table with multi-column filtering and sorting.
Tech: React, JavaScript, SASS, Jest
FleetGuard Enterprise Portal
Dec 2015 – Dec 2017
Maritime monitoring and analytics portal.
Built an OpenLayers map showing tropical cyclone paths.
Worked on vessel route analytics and charts. Developed interactive route maps with the team.
Built frontend modules, UI components and responsive layouts for Media Village and other clients.
Tech: JavaScript, React, HTML, CSS
Personal projects
Created two apps for my own use while learning to work with AI coding agents. I defined the requirements, chose the technical approach and tested each iteration. The agents wrote most of the code. Both apps run on the web and are packaged for Android with Capacitor.
Coin Collection Manager
Keeps track of my coin collection. A Google AI model suggests matches from photos of both sides. After I confirm a match, the app fills in coin details from a public numismatic API.
Estimates the value of silver in a coin from its weight, purity, current silver price and exchange rate. Collection data is stored in local JSON files.
Tech: JavaScript, HTML, CSS, JSON, Capacitor
Personal Finance Tracker
I use it daily to track income and expenses, manage categories and view charts and reports comparing different periods.
Highlights unusual expenses and data errors. Supports automatic JSON backups and data import/export; stores financial records locally in IndexedDB.