Position: FS (React, NodeJs, Next.js, GraphQL) Middle+/Senior Tech lead
Company: Codemotion Company
Category: Lead
Experience required: 3y
English level: upper

Position name: Technical lead 
Level: Middle+/Senior

Hard skills
What do we expect:
• 2+ years of experience in tech leading
• 5+ years of Software Engineering experience
• 4+ years of experience with Node.js
• Strong experience with SQL databases (preferably Postgres - Amazon RDS)
• 2+ years of experience with React + virtual dom pro/con, react hooks, etc.)
• Strong experience with Next.js
• Strong experience with GraphQL + Apollo client
• Excellent knowledge ES6/ES7 (ECMAScript)
• Strong experience with a state management tool as Redux/Mobx
• Strong Software Design knowledge: OOD, FP, Design patterns
• Proficient understanding of Git
• Experience with Docker & CI/CD processes
• Experience with AWS (or similar services like GCP or Azure)
• Knowledge of Agile (preferably SCRUM) development practices
• Upper-Intermediate level of English

Will be a big plus but not MUST
• Experience with AWS Amplify

Would be great 😎 :
• Experience in the microservices architecture model 
• Automated tests for react components (puppeteer, cypress.io, chai, mocha, jest, ava)
• WebSockets, real-time apps

Soft skills
- Responsible, adult, and honest person that is accountable for his words and goals achieved.
- Understand the Project business needs and can set proper priorities (in the development and business needs). Not a tech geek obsessed with coding and implementation of all existing best practices 😊.
- Have a well-deserved reputation in the team in which you work (do not have to be the “strongest” in one or another technology stack) - a native leader.
- Can make weighted decisions that are based on analysis of current Project limits and risks while staying responsible for those decisions.
- Have experience (ideally) or understanding of the complete product development flow: from making requirements to pushing the product to “live”.
- Keep a generally positive attitude in the team.
- Able to find/explore/understand an unfamiliar technology stack (module/integration/widget).

Areas of responsibility:
- Is responsible for the technological decisions that were/will be made on the Project. Validate/discuss those decisions with the Client, if needed, and always with the team. Can integrate (communicate) with other development teams if those are present or it is required.
- Receive business requirements from the Client, provide explanations of multiple feature implementation approaches and risks related to them, translate them into technical requirements. Can explain the importance of techniques (decisions) based on the Project business needs to the Client and to the Team.
- Perfect PM’s plan from the technical side, following the tech requirements, tech specification, and abilities on stages of pre/planning sprints, releases, or when working with the backlog. 
- Estimate the Project/pull request/task for yourself and the team.
- Understand the CI/CD processes (ideally has experience of configuring them). Configure and set up environments for the Project.
- Conduct code reviews on the Projects. Organize the code-review process inside the team (cross-review, review through 2 approvals, and so on).

Office/Remote: remote
English level: upper-intermediate