About me 🤔:
1. Wide knowledge of computer science: algorithms, data structure, boolean logic, graph theory, and etc.
3. Wide expertise in Typescript and Flow.js (generics, infer, recursive types, extends, covariance/contravariance and etc.). In the last project, I created a powerful type-checking infrastructure, which excellent infers types after great manipulations and prevents wrong using the infrastructure. Also, I was a great successful experience (initiator and main maintainer) of changing the language of the codebase: from Flow.js on Typescript.
4. Deep understanding of React (Reconciliation, Fiber, Virtual Dom, lifecycle, hooks, Pure Component, Suspense, concurrent mode, HOC, render children, SSR). Had great successful experience in searching and fixing problems in different React applications.
5. Great experience with Redux (redux-toolkit, thunks, promise middleware, reselect) and understanding, that you shouldn't put a state of a select or input element in Redux store. I developed my own Redux-flow, that united redux-toolkit, typescript, and the idea of dynamic reducers. Also, I had experience with MobX and Effector, and understand, that Redux isn't a silver bullet.
6. Created a lot of complicated UI components like asynchronous select (with pagination and infinity loader), date(time)picker, table and etc. I extracted them in a separated UI library based on TSDX and used it in different company projects
7. Work with different technology for styles: styled-components, reshadow, but I prefer CSS-modules.
8. Understanding Node JS and frameworks: express, NestJS, Next.js.
9. Have great experience with REST and some pet projects on Graphql (Apollo, graphql-yoga).
10. Always write tests for different business logic and don't write tests for layout. I have a strong opinion: if your code isn't testable, it's bad code. I worked with: enzyme, jest, testing-library, karma.
11. Have big experience with git (resolving merge conflicts, interactive rebase, squash, stash, cherry-pick and etc.).
12. Have experience in creating an architecture of an application and changing the architecture of the existing project. I understand and successfully apply different principles, like SOLID, DRY, YAGNI, KISS.
13. Work with agile frameworks like Kanban and SCRUM, can decompose and estimate tasks, understand that "story points" ≠ hours. I have a belief, that your work is measured by results, not hours of working and amount of code.
✅ I've enormous interest to companies, that:
1. Appreciate my professional level and my expertise.
2. Allow me to have a high level of independence and influence on result.
3. Have a great level of flexibility and support initiative from below.
4. Don't have ossified rules and practices (ready for changing).
5. Have transparent system of salary correlation from skills, responsibilities or other ones.
6. Support my initiatives in professional growth (books, conferences, mentors, and etc.). In an ideal situation, your company has something like a "grow portal", courses, or PDP.
7. Have a package of benefits: English courses, gym, food and medical insurance.
8. Have a lot of gifts in your kitchen like buns, bakes, fruits and tasty coffee 😉.
⛔ I don't interest in companies with:
1. Unofficial salary or other machinations.
2. Great bureaucratic system and millions accesses for everything (bank or something like this).
3. System of time-tracking or synthetic KPI system.
4. Working only from office.
5. Missing coffee-machine 😿.
Разработка(в т.ч. с нуля) и поддержка высоконагруженных банковских проектов на стэке: TypeScript, React, Redux, Material-UI. Оптимизация бизнес-логики и перфоманса приложения.