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

developed complex pages with a huge amount of static and dynamic form fields without performance issues
- redesigned the angular-material library according to the customer's designs

- case from my experience: 
problem: a customer has many teams that work in different repositories but have the same UI design of projects. But they have not had shared UI components (as a problem - a lot of code duplications)
solution: I created a UI-kit library with a lot of shared UI components and styles that are used by many teams (reduced duplications, excluded different styles of the same UI elements between projects, reduced time to finish tasks because we already have had needed UI components in a new library)

- another case with another customer:
problem: we had an app that was developed only for desktop screens and the customer wanted to make the app look great for mobile devices but the mobile design in Figma was too poor (not all pages had mockups and not all cases for user interactions were covered)
solution: 
- I started a spike where I should investigate the scope and types of work that should be done to make the app adaptive to mobile devices
There also was included new design and behavior for some UI elements such as expansion panels with sticky headers for a list of items to improve user experience, a new view for tables (we were using ag-grid but for the mobile view, we have switched to card elements), redesign of root elements such as header and side navigation.
After the spike, I created a bunch of tasks for which I assigned priorities, dependencies, approximate estimations and etc. In the end, all of these tasks were discussed with our product owner from the customer side, and finalized requirements
I have worked with different technologies and completed many easy and hard, complex tasks as an Angular Front-end developer
It started with small features such as developing components, fixing bugs, writing unit tests (Jasmine, jest, mocha), and integration tests (TestCafe and Gherkin scenarios)
After that, I worked on more challenging tasks and started mentoring less experienced mates

Also, my duties included monitoring the tech debt of my project's app, I should have found it and proposed a solution how to fix the issues (reduce CSS bundle size, fix issues with micro-frontends where the final bundle was too big due to hidden relations between each module)

Now I'm responsible for the front-end part of our project (Fron-end lead). I'm leading a team with 2 front-enders and provide help for full-stack teammates (they are .Net developers but also need to work with angular)

I have a lot of experience with the following:
- adaptive and responsive design
- developing shared, reusable components with the readme and an easy interface for other developers, also I have experience with a storybook for that purpose
- state management tools: redux (NgRx), components store, subjects in service
- micro-frontends using npm packages or Module Federation; mono repo
- patterns with real examples of using (facade, adapter, mediator)
I expect to change my place of work because at the moment I have been working in one company for 4 years and I wanted to change my environment, to understand how it is in another company; what can be other approaches to customers, to employees, to be able to compare the new experience with the previous one; to develop a new product for me in order to diversify my work experience and acquire new knowledge and skills