Selected work.
Shipped work, reduced to what matters: the problem, my contribution, and the result.
POS Terminal Management
An internal platform for operating a POS terminal estate from the browser - devices, merchants, commands, batch operations and transactions, with a live analytics dashboard and reporting. Built from scratch in zoneless Angular.
EvidenceBuilt from scratch in modern Angular - signals throughout, and no zone.js
AngularTypeScriptCadence
A scheduling API in Rust: hosts publish weekly availability rules, invitees book the slots those rules generate, and confirmation and reminder emails leave through a transactional outbox so they can never describe a booking that did not happen.
EvidenceAvailability is stored as weekly rules rather than materialised slots - `slots_for_day` expands a rule into bookable start times on request, so a host edits one row instead of a calendar
RustAxumTokiosqlx+2Betsson.ge
An online gaming platform where registration was gated behind identity verification. I separated the two, so an account can be created first and verified inside a window afterwards.
Resultverification no longer blocks registration
AngularTypeScriptCustomer CRM
An internal CRM for managing the bank's customers and clients. I redesigned screens, added features, built a reusable component layer, and cut the app's change-detection load.
Resultchange detection per keystroke: 20+ runs → 3
AngularTypeScriptOffers Hub
A management panel for merchants and for the offers the bank runs with them - promotions, cashback, and bonus-point campaigns aimed at merchants and customers.
Resultcascading merchant tree made reliable; redundant passes over large JSON removed
AngularTypeScriptამინდი / Amindi
A Georgian-language weather site for Georgia: current conditions, hourly readings, and forecasts out to sixteen days for 96 cities, resorts, and mountain passes, with a full English translation.
Evidence96 locations - cities, ski resorts, and mountain passes - grouped by region, each listed with its elevation
Next.jsReactTypeScriptOpen-Meteo+1BetPro
An Angular sports-betting front end: browse and filter events, build a betslip with live-updating odds, and track placed bets with running win/loss statistics.
EvidenceThree NgRx feature stores (events, betslip, bet history) with effects for async work
AngularNgRxRxJSAngular Material+2Filmpire
A film discovery app built on the TMDB API: browse by category or genre, search the catalogue, and sign in with a TMDB account.
EvidenceBrowse by Popular, Top Rated, and Upcoming, or by any of 19 TMDB genres
ReactRedux ToolkitMaterial UITMDB API+1
See something relevant?
I can walk you through the decisions, constraints, and trade-offs.