Position: JavaScript developer (office)
Company: Teamvoy
Experience required: 1y
English level: intermediate

A JavaScript developer is responsible for implementing front end logic that defines the behavior of visual elements of a web application. A JavaScript developer is also responsible for connecting front end logic with services that reside on the back end. This person might work alongside other front end web developers, who specialize in markup and styling.

Main Duties and Responsibilities

* Develop solutions and algorithms according to technical specifications or other required documentation
* Use standard algorithms in applicable cases
* Detect defects in program code and resolve problems
* Track and commit changes, compare source code in the defined version control system
* Modify existing software code and test its availability 
* Analyze software code compliance with readability and performance standards
* Structure and format source code, comment and mark up the code, name variables, functions, classes, data structures, and files according to the company conventions and industry best practices
* Reproduce defects logged in an issue tracking system, identify defect causes, and then modify the code to eliminate defects
* Review code of team members
* Write unit and integration tests based on industry best practices
* Work with QA: reproduce and fix found bugs
* Estimate project tasks (with the help of a mentor and based on project methodologies)

Requirements

Skills

* Intermediate+ level of English
* Algorithms / Data Structures
* Basic knowledge of Object Oriented Design
* Basic knowledge of NodeJS (Express, Koa, HapiJS, Mongoose, Sequelize)
* Knowledge of popular UI  technologies / frameworks (AngularJS, BackboneJS, ReactJS, VueJS, EmberJS)
* UI Architecture (Redux, MobX, VueX )
* Basic knowledge of UX / UI ( Sketch / Photoshop)
* Experience with CSS and Preprocessors (CSS, LESS, SASS, Stylus, PostCSS)
* Basic Knowledge of system version control (primary Git)
* Testing tools (Moca, Jest, Jasmine, Ava)
* Testing methodologies (TDD, BDD)
* Network protocols (HTTP / HTTPS / HTTP2, AMQP,  ZMQ, Sockets, WebSockets)

 Education 

BS/MS degree in Computer Science, Computer Engineering, Mathematics, Physics or a related field

 As a plus Skills:

* Basic knowledge of any programming language (Ruby ideally), OOP principles
* Experience running, writing and maintaining automated tests
* Basic knowledge of API
* Understanding high-quality UI&UX for web and mobile apps

 We offer:

* Interesting and challenging work in a dynamically developing company
* Personal and professional development (tech talks, experience sharing meetings) 
* Performance reviews every 3-6 months
* Superb office in the city center