Position: Software Architect (product-team)
Company: BitcoinWide
Category: Lead
Experience required: 5y
English level: intermediate

**Requirements:**
•  5+ Fullstack Development experience;
•  2+ TeamLead/Architecture experience;
•  2+ Architecture Management;
•  Skills: OOP, DevOps, Automated Testing, AWS, Git, REST API, DDD. CI\CD, Micro-service architecture;
•  Deep understanding and experience with one technology stack: NodeJS, GOLang, Python, etc.;
•  Knowledge and the successful appliance of OOP paradigm;
•  Deep understanding of networking and communication patterns;
•  Knowledge of multiple DBs. Knowledge about the pros and cons of different DB models (relational, key values, document, etc.). Production experience with at least several of them;
•  Knowledge and experience with JavaScript at browser and server; 
•  Experience with NodeJS toolset;
•  Proven ability to architect solutions from start to finish: designing specifications, prototyping, managing POCs, etc.;
•  Experience in documenting software and with software requirements management;
•  Knowledge of architectural, design and infrastructure patterns;
•  Knowledge of top software security vulnerabilities and understanding patterns of protection against them;
•  Experience with web front-end development using modern frameworks;
•  Be an expert in next development areas: CI/CD, automated testing, development tools;
•  Understanding an agile and SCRUM framework in particular. Understanding how the architecture development phase can work in agile environment;
•  Be proactive and have a strong position regarding reaching the required software quality.

**Would be a plus:**
•  Knowledge of functional paradigm.

**Responsibilities:**
•  Design and document solutions architecture that covers both functional and non-functional requirements;
•  Participate in all areas that are needed for successful solution implementation - from UX to backend;
•  Take architecture decisions and communicate them to teams and stakeholders. Provide in-depth decision analysis if needed;
•  Perform solutions analysis and create a proof of concepts;
•  Be a technical mentor for teams, support teams in technical issues and address issues in architecture;
•  Analyze and document functional and non-functional requirements. Identify solution risks and find ways to mitigate them;
•  Define and enforce technical excellence during solution implementation;
•  Analyze and document existing systems, identify “weak” points and contribute to the strategy of a system evolving;
•  Eventual reviews of solutions architectures, system changes, teams scope and code.

**We offer:**
•  To become a part of an effective product team with a common vision to deliver a great value for the world of cryptocurrencies.