Lead frontend engineer for a 12-location cinema chain: I own the admin panels, the public website (planetakino.ua) and the Electron cashier workstations front-desk staff use every day. I design frontend architecture for complex business systems — modular Vue/Nuxt apps, reusable components, fast UI — and mentor the team through code reviews and shared standards. I treat frontend as solving business problems, not closing tickets: I question requirements when it helps the product and choose the solution that fits the business.
Own the frontend of a cinema chain with 12 locations: internal admin panels, the public website (planetakino.ua) and the cashier workstation (POS/ARM) systems used in every cinema.
Launched the cashier workstation (POS/ARM) from scratch — from the first prototype to rollout across all 12 cinemas; it is now the system front-desk staff work in every day. Built as a cross-platform Electron desktop app integrating payment terminals and barcode/QR scanners for virtual loyalty cards, tickets, receipts and orders.
Designed and built the authentication and access-control layer used across the admin panels and cashier workstations: role-based permission model, token refresh strategy and session security.
Migrated the codebase from Vue 2.6 to 2.7 and then to Vue 3: moved components from the Options API to the Composition API and state management from Vuex to Pinia, keeping the product shipping throughout.
Mentor a team of 5 frontend developers: review merge requests, set shared code and component standards, and onboard new engineers.
Raised PageSpeed scores to 90+ on key public pages and brought Core Web Vitals to target thresholds through rendering, asset and bundle optimization, and handled technical SEO with SSR in Nuxt.js.
Vue.js
Nuxt.js
JavaScript
Pinia
Tailwind CSS
Vuexy
BootstrapVue
Axios
GraphQL
REST
WebSockets
AWS
Electron
Sentry
LiqPay
Vchasno PRRO
HLS
Video.js
August 2021 – January 2022 · 6 mos
Frontend Developer
VJET Group · Dnipro, Ukraine
Delivered client-side applications for international clients end-to-end: designed the architecture, implemented the key modules and owned performance and maintainability.
Worked on a marketing platform for an advertising company: an admin panel that managed and delivered advertising content to 1,000+ tablets deployed across Ukraine.
Admin panel and B2B/B2C website for a Polish furniture factory.
Took part in building the admin panel for the "Choice" restaurant chain, covering the full flow — from creating a restaurant and its menu to order management and guest tipping.
Nuxt.js
Vue.js
REST
SCSS
Vuetify
BootstrapVue
WebSockets
Google Maps
i18n
FullCalendar.js
May 2021 – July 2021 · 3 mos
Frontend Developer
QuartSoft · Kramatorsk, Ukraine
Built a nationwide cartography service for Ukraine, working with cadastral and land-registry data.
Delivered both the desktop and the mobile version of the platform, focused on map rendering performance and usability on large datasets.
Nuxt.js
Leaflet (interactive maps)
SCSS
REST
vanilla JavaScript
August 2020 – May 2021 · 10 mos
Frontend Developer
Foxprime.tv · Kyiv, Ukraine
Took part in launching a streaming service from the ground up, building both the admin panel and the public website for a platform with 4,000+ active users.
Built the streaming experience for TV channels, movies and radio, including a custom video player on top of Video.js with HLS playback.
Developed the subscription flow and the user account area: plans, recurring billing and LiqPay payments.
Replaced BootstrapVue with custom in-house components, cutting bundle size by 45% and giving the team full control over the UI.
Contributed to system architecture, SEO and performance optimization.
Nuxt.js
Vue.js
JavaScript
WebSockets
GraphQL
HLS
Video.js
custom video player
LiqPay
custom Vue components
REST
SCSS
SEO
Key projects
Planeta Kino · since 2022
Cashier workstation (POS) for 12 cinemas
Cross-platform Electron desktop app that front-desk staff work in every day: tickets, virtual loyalty cards, receipts and orders.
Launched from scratch — from the first prototype to rollout across all 12 cinemas.
Integrated payment terminals, barcode/QR scanners, LiqPay payments and receipt fiscalization via Vchasno PRRO.
Auto-update and application logging: new versions reach every cinema without on-site intervention, incidents are diagnosed without physical access to the till.
Sentry across the workstations for visibility into production errors.
Result: the system front-desk staff work in every day in all 12 cinemas.
Electron
Vue.js
Pinia
LiqPay
Vchasno PRRO
Sentry
Planeta Kino · since 2022
Migrations: Vue 2 → 3, REST → GraphQL
Modernizing the frontend stack and the API layer of a live product.
Vue 2.6 → 2.7 → 3.
Options API → Composition API.
Vuex → Pinia.
REST → GraphQL, including a hybrid REST + GraphQL setup.
Result: the product kept shipping throughout the Vue migration.
Vue 2.7
Vue 3
Composition API
Pinia
GraphQL
REST
Planeta Kino · since 2022
Internal product suite
The chain’s internal tools, delivered end-to-end.
Analytics system.
Reporting system.
Showtime scheduling tool.
Visual builder for auditorium seat maps.
Real-time interaction in the ticket purchase flow.
Ticket refunds.
Discount system.
Marketing and promotions system.
Marketing mailing system.
Result: the chain’s internal tools for sales, scheduling, marketing and reporting, delivered end-to-end.
Vue.js
Nuxt.js
Pinia
Tailwind CSS
Vuexy
GraphQL
Planeta Kino · since 2022
Authentication & access control
Shared authentication and access-control layer for the chain’s admin panels and cashier workstations.
Role-based permission model.
Token refresh strategy.
Session security.
Result: one access layer used across all admin panels and cashier workstations.
Vue.js
Nuxt.js
Pinia
Axios
Foxprime.tv · 2020–2021
Streaming platform
Streaming service launched from the ground up: admin panel and public website for TV channels, movies and radio.
Custom video player on top of Video.js with HLS playback.
Subscription flow and user account: plans, recurring billing, LiqPay payments.
Replaced BootstrapVue with custom in-house components.
Result: 4,000+ active users; bundle size cut by 45%.