Position: Senior Software Engineer
Category: JavaScript
Experience: 5 years | English: upper

I have participated as a mentor and taught more than 14 mentees in 2022 in the following programs:
- Javascript Mentroring Program
- React Fundamentals
- Web Performance Optimization 
- ReactJS Global Mentoring Program

I'm glad that different projects/life experiences taught me a few key things such as:
- be proactive, don't wait till others will tell you what to do.
(example: the client didn't want to spend the budget on tests, I allocated my spare time and covered the most important part of the project with tests and added CI/CD, after my presentation on demo and explaining in a real-case scenario how much it simplifies life and how it could possibly economy the time(and accordingly the money too) wasting on the routine) 
- think more widely, and imagine yourself as a user of your product. If you know that the project/task could be improved - demo and implement it - even if BA/PO missed something in the requirements. 
- Support others, and allocate some time to teach and improve your team. 
- Don't be afraid to try new things. After I delivered the WebGL-based task in which I didn't have any experience at all I understood the key thing in development -"everything could be done, the matter only in time and dedication"
- Clients are not always sure about implementation, present them with a few options if it's appropriate.
Started as a Project manager in 2016. Transitioned to Front-end in 2017.

In Sep2019 became ‘Middle Software Engineer’ at EPAM.
In less than 2 years, passed the Senior assessment and covered the topics: Programming Paradigms/Communication Protocols/Security Basics/Performance Optimization/Web App Design and frameworks/React deep dive/Architecture/Patterns/Code Quality/CI CD CD GIT/Estimations/Team Management and soft skills.

Projects:
- Commodity Document Library:
Allows clients to filter and download secure documents as well as modify/publish documents manually via an Administration tab for analysts/journalists/product managers.

Legacy Java project that should've been transferred to core JS. 
Imported all JSPs and converted them to a single-page application.
Added: webpack/npm/linter/polyfills, IE10 support/i18n, time localization/caching mechanism/themes switching/custom web component library.
Tests: 0 on the beginning, 84% unit coverage with Mocha, and automation tests with Cucumber/BDD scenarios. 

- Freight Calculator
Calculate the implied freight rate by considering the total cost of the voyage including time charter rate/bunkers and port-related changes.
 The app was built from scratch, so as a key developer I’ve decided to use the modern stack for it: React/Hooks/TS/Redux/Thunk. To conceal actual API and to avoid complex calculations on the front side - the support server + restful API was created on the project side using Node.js/Express.  Using TDD with jest and Enzyme snapshot testing 97% test coverage was achieved.  Configured CI/CD with GitHub Actions. 

- Interactive Map
The app allows users to see physical assets. Visualize key factors that affect the supply chain and impact prices, such as refinery outages, vessel movements, and weather. 

Improved app performance and shown impressive improvements of such web vitals as TTFB/FCP/LCP/TTI. 
Updated the app UI with the custom Element Framework from LSEG.
Developed RealTime data features.
Updated the server to make SOAP/XML requests.
Improved performance by replacing SVG icons with WebGL.(there could’ve been hundreds of thousands of vessels on the map)
Improved test coverage from 44% to 89% 
 
- Metals Spreads and Trades
Calculate metal spreads by building a spread matrix and superimposing heatmaps to analyze markets. Available in the app is also a filterable matched trades database with historical data using WebSocket API.  Stack: React/Redux/TS/Saga/ELF custom library/Styled Components
It would be nice to get enterprise experience with GraphQL/Apollo.

My main goal is Front-end development but it would be great to work with Node.js/Express as well