Position: Expert JavaScript Developer (Team Lead) for Ciklum Digital
Company: Ciklum
Category: JavaScript
Experience required: 5y
English level: upper

You will join a highly motivated team and will be working on a modern solution for our existing client. The Client is an ambitious, international start-up enabling people to progress their passion for plants and nature through the application of technology.

**Project description:**

The Product you will be working with is the gateway to inspiration for garden visitors using exciting immersive technology and enabling quick, contactless ticketing for visitor access. It also motivates the public to connect with nature and enable everyone to grow big and shop small, with curated online catalogues of plants, tools and accessories from exceptional independent businesses.

Your primary responsibility will be project delivery. You will be able to forge strong relationships with our Product Management and Product Design capacities and will be able to work with their team to take an idea through from conception to production.

You are expected to actively mentor and help your fellow team members develop. You will not be the sole decision maker in a team but rather, understand how to leverage the skills across the company for the desired outcome, and if necessary, be a tie-breaker. You will be expected to be heavily involved in coordinating team ceremonies, ensuring team health and adapting working methods in response to feedback.

 **Responsibilities**
- Delivery. Create and maintain modern interfaces according to unit standards
- Code Quality. Follow and improve code quality standards
Contribute ideas through your knowledge of evolving front-end technologies
- Be proactive in communication with team members and client
- Be a part of a positive and fun team environment
- Use industry best practices of development processes & tools, adopt and improve them
- Analyze and Estimate. Perform technical assessment of UI mockups/wireframes to ensure the possibility of their implementation within reasonable time
- Software Design. Create and review software feature design documents and provide the solution
- Mentorship of junior colleagues
- Take responsibility for project delivery playing role of the most senior technical person (by stack) at the project
- Direct client communications
- Set up efficient development workflow throughout proactive collaboration with any project role (ProjectManager, BA, PO, UX, UI, Arch, BE, DevOps)
Technical organization: interview, tech audit, pre-sale
Problem solving, Solution Presentation, Meeting and Visual Facilitation

**Requirements**
- Several mainstream frameworks or stacks (Node.js, React, ReactNative)
- Successful cases of delivering Node.js applications
- Delivery flow: branching strategy, repo management, code style guides and enforcing, testing approaches, CI/CD, release plan
Software Design & Visual Facilitation
- Mental Agility: capacity to switch to any project  technical challenge
- Advance English
- Understanding of Agile and Lean principles and ability to facilitate team-work according to chosen development methodology
- Application state management
- Package management, Module bundling
- CI/CD
- oAuth, JWT
- HTTP, REST API
- Design patterns, OOP, Development principles
- Software testing. Approaches, testing types
- Git
- Node
- event loop, cluster, memory management, libuv etc.
- frameworks available for Node.js such as Express
SQL (update, retrieve, joins, group)
- RDBMS (MySQL , PostgreSQL, etc.) – (db instruments and stored procedure)
- noSQL (MongoDB etc.)
- Cache DB (redis)
- ORM (Sequelize, Mongoose, etc.)
- Database design (DB Normalization, De-normalization)
- Websocket

**Desirable**
You should have an idea of the subject and its parts. Can explain. Has experience of use of such skills:

- Other mainstream framework (React, ReactNative)
- PWA
- Quality tools (input/output complexity)
- Experience with CI/CD set up (GitlabCI)
- Application state management (MobX / Saga / etc)
- Gulp
- Sonar
- Docker
- GitlabCI
- Familiar with UX concepts such as Information Architecture
Agile (principles, Kanban, Scrum), task tracking tool (JIRA), knowledge management (Confluence)

**Personal skills**
- Works under general direction, accepts guidance and has work reviewed at agreed milestones
- Has working-level contact with customers and colleagues
- May supervise others or make decisions which impact the work assigned to individuals or phases of projects
- Performs a range of work, sometimes complex and non-routine
- Demonstrates effective communication skills
- Plans, schedules and monitors own work (and that of others where applicable) competently
- Contributes fully to the work of teams

**What's in it for you**
- Career growth opportunities
- Realization of your innovative ideas in building new Ciklum Solutions and Services
- Friendly collaborative teams and enjoyable working environment
- Professional skills development and training programs
- Variety of knowledge sharing, training and self-development opportunities
- State of the art, cool, centrally located offices with warm atmosphere which creates really good working conditions