Position: Senior Software Engineer
Category: JavaScript
English level: upper
Years of experience: 9


HI, I am a JavaScript developer with more than 9 years experience in web, mobile development and desktop applications.

I am well experienced in:
- Process client’s requests, analyze complexity, technical risks, prepare ballpark estimate and proposal
- Analyze requirements, break them down into features, user stories, tasks. Analyze requirements, which don’t have clear definition, able to dive quickly into project domain
- Communicate with clients (emails, chats, calls, orally)
- Kickstart new projects, setup project structure, development environment and tools
- Create high-level application architecture, module design, pick up technology stack
- Code review and audit existing projects to indicate strong and weak points
- Extensive code refactoring skills
- Leadership of small to medium development teams. Mentor and skill up team members 

My experience and expertise are:
LANGUAGES:
JavaScript, TypeScript

WEB:
HTML, CSS, DOM, Web APIs (storage, workers, history, file, etc.), browser networking (XHR, fetch, JSONP, cross- device/browser support, responsive design. HTTP (protocol semantics, caching, cookies, conditional requests, HTTP/2).

WEB APPS:
UI frameworks: React, Angular, BackboneJS, AngularJS (outdated) State management. Redux, redux- saga, RxJS
UI component kits: Material Design, Bootstrap, Tailwind Css
CSS methodologies. BEM, SMACSS, OOCSS, CSS modules, sytled- components
Tooling: eslint/tslint, Webpack, TypeScript, prettier, Babel, gulp, npm, chrome dev tools, source maps, SASS, PostCSS, etc.
Libraries: lodash, RxJS, Socket.IO, SockJS, ramda, moment, axios, jquery, D3, Chart.JS.
Testing: Jest, Karma, Protractor, Mocha, ChaiJS, Sinon, Enzyme, React Testing Library
Static site generator: GatsbyJS

BACKEND:
NodeJS, express.js, nestjs,

MOBILE:
Hybrid mobile apps Cordova, ionic, iOS and Android dev environment

WEB SECURITY:
XSS, Content Security Policy, clickjacking, Same Origin Policy, CORS, CSRF, mixed content, session management.

SOFTWARE DESIGN:
OOP programming paradigm.
Design principles and patterns. Modularity, SOLID, abstraction, DRY, simplicity, readability. Dependency injection. Design by contract. Presentation patterns: MVC, MVVM.