Обо мне

I love my job.

Even if I had the different occupation, I would be writing something in my spare time.

General strengths:

- Analytical mindset

- Strong knowledge of software design and programming principles / patterns.

- Proficiency in Architecture design.

- Ability to decompose non-trivial complex problems and research the best solution.

- Always up to date with latest technologies and best-practices.

- Rapid learning and problem solving skills.

My bookshelf contains in particular:

- Core J2EE Patterns: Best Practices and Design Strategies

- GoF

- Pattern Language _(Christopher Alexander)_

- Abstraction classes in software design _(Amnon H Eden, Yoram Hirshfeld, Rick Kazman)_

- Design Principles and Design Patterns _(Robert C. Martin)_

- Refactoring _(M. Fowler)_

My main specialisation is the angular.js based applications development.

- I'm using Angular in production since 1.0.3 version (https://github.com/angular/angular.js/blob/master/CHANGELOG.md#103-bouncy-thunder-2012-11-26)

- Since 2013, I'm tracking community news and Design Docs (https://drive.google.com/drive/u/0/folders/0BxgtL8yFJbacQmpCc1NMV3d5dnM)

- Implemented two different "frameworks" on top of Angular working at cox.ru

- Built several large apps from scratch.

Source code total investigation was the most reliable way to learn Angular in 2013.

I've kept that habit until now.

I'm Paying extra attention to every realisation aspect including

- Architecture Design

- Maintainability & scalability

- Code quality readability

- Testing

- profiling

- Tech stack relevance and propriety.

I've got a passion for cutting edge tech/tools.

I'm keen on components-based architecture, immutability, `FRP`, `DDD`, `CQRS`/`Flux` with `Angular` & `React`.

I'm working on the tutorial series about the implementation of modern approaches and best-practices in real-life.

Depending on project's circumstances, my properties may represent competitive advantages for me as a professional, playing the big role in the product and business growth.

In another case, they are useless or even harmful.

I'd like to join the team where my qualities are valuable and in demand, letting me be highly efficient,

benefiting business & helping to create a quality product that meets all requirements and core project principles.








- DDD, CQRS, Flux, …


- CI, DevOps


- ES Stage3

- Node


- Grunt, Gulp

- Yeoman

- SCSS, Stylus

- Require, Browserify

- WebPack, JSPM

- Babel

- Angular 1

- Angular 2

- React

- Karma, Protractor, nodeunit

- Tape, Jasmine, Mocha, Sinon

- Express

- StrongLoop

- Workers

- MongoDB

- Redis

- Rabbit


- MySQL, Postgres

- Ruby

Профессиональные навыки
Опыт работы
Август 2015 — по настоящее время
UI Engineer/JS Developer
Сан-Франциско и район залива
Обязанности и достижения


Разработка Client-side на Angular

Июнь 2014 — Июль 2015
Senior front-end engineer, AngularJS developer
Обязанности и достижения

(Remote, full-time)


Server side (together with Sr. Back-End Engineer):
- some global architecture decisions
- API (routing, data-structure & etc.)

Client side:
- apps build & deploy system (using bash, node, grunt etc.)
- core framework (based on angular.js)
- general features & components implementation
- unit testing & etc.

Client side team management:
- epics & features planning
- writing / editing user-stories
- tasks decomposition / estimation / assignation
- task technical requirements & documentation writing (text + UML)
- repo administration/code-review
- interviewing
- team support (training & etc)

Май 2013 — Май 2014
Common Open Exchange (COX)
Senior JavaScript programmer / Senior front-end developer
Обязанности и достижения

(Office, full-time)


A huge high-load startup in e-commerce, banking, social networking and other fields.
There are several sub-projects inside.
Generally, I worked on social networking and cooperation part.

My responsibilities:
- Close interaction with team-lead/senior system architect, taking part in application architecture design process
- Client-side architecture design and framework development (Angular.JS-based)
- JavaScript dev-team leading (including node.js), using redmine as task-management tool
- AngularJS training (and js itself)
- Code-review
- Build / deploy / code gen tool writing ( using Grunt.js )

client-side stack:
- native JS
- Angular.JS

back-end stack (in my area of responsibility):
- Node.JS + WebSockets with clusterization
- MongoDB
- RabbitMQ
- Redis
- Custom RPC-Client to communicate with other back-end components
VCS: mercurial

Январь 2013 — Май 2013
Crowd-lab (Москва, crowd-lab.com)
front-end developer
Обязанности и достижения

(office, full-time)

Participated in development of a project in social networking, crowdsourcing and technology brokerage field.

My responsibilities:

RIA/SPA development as middle JS programmer.
Close back-end dev team communication

client-side stack:
- Angular.JS
- native JS
- HTML5 + CSS (using Stylus preprocessor)

back-end stack:
- Node.JS + WS
- MongoDB

VCS: git

The project was closed because of poor off-line support / promo.

Октябрь 2012 — Декабрь 2012
front-end developer
Обязанности и достижения

(office, full-time)


Developed on-line services package (for "Svyaznoy" bank customers):
It allows the customer to book flight/tour/hotel/train/cinema tickets, buy the insurance, if required, etc.

My responsibilities:
- Markup
- JS client-side development
- Close interaction with remote Web-designers
- Interaction with back-end developers

Client-side stack
- native JS
- Knockout.JS
- HTML5 CSS3 (LESS preprocessing)

VCS: subversion

Январь 2011 — Октябрь 2012
founder, ceo
Обязанности и достижения

Это мой проект, которому, к сожалению, уже не суждено появиться на свет.В двух словах - это интерактивное телевидение с широкими социальными возможностсями, основанными на глубоком(не только статистика, но и психология-логика) машинном анализе информации о пользователе и его действиях. Достойных аналогов некоторых сервисов, заложенных в проект, нет до сих пор. Но в целом сам проект уже потерял свою актуальность.Тогда у меня было очень мало опыта в соответствующей сфере и я СИЛЬНО не рассчитал с бюджетом на разработку системы. Стоимость "программы-минимум", оказалась примерно в 30-50 раз больше, чем закладывали. Интересно, что все стальные расчеты были на удивление точны.Все что было полноценно реализованно, это создание медиа-продакшн группы, которая даже успела принести немного денег.Вот несколько роликов, сделанных нами, которые сейчас находятся в открытом доступе.http://vimeo.com/user8506055После неудачи с поиском разработчиков, я решил разобраться сам, как вообще все это делается. Неожиданно для себя, программирование меня невероятно сильно увлекло.

Высшее образование
Сентябрь 2004 — Июнь 2005
Проблем физики и энергетики; ФПФЭ
Специализация и достижения

Закончив 1 курс, ушел(не вылетел), по ряду причин.