Position: Principal JavaScript Full Stack Developer
Company: Sigma Software Group
Category: JavaScript
Experience required: 5y
English level: upper

We view technology as a tool, and we aren’t religious about it. We put these tools in service of our customers and love it when a hard problem can be solved in a simple, beautiful, and cost-effective way. This is what drives our technology choice today, and it’s what will drive our choices tomorrow, and the day after.

As a Principal Developer, you will be responsible for analyzing and solving different business problems in a scope of technology field. Designing, implementing, unit testing, and documenting software systems will be your daily routine.

**BY JOINING US YOU WILL:**
- have autonomy in making design and engineering decisions for components, modules, and subsystems you are responsible for, elaborating and tuning of a software development process
- suggest improvements in all engineering and architectural aspects of the project
- improve own qualification within areas of expertise at various training courses, seminars, or other educational organizations

**REQUIREMENTS**
- 5+ years of software engineering experience
- Excellent knowledge of JavaScript, TypeScript
- Solid experience with ReactJS, Node.js, and the related ecosystem
- Strong knowledge of algorithms and data structures
- Experience with designing, implementing, and shipping rich web applications
- Expert in documentation and Software Development Lifecycle and ALM Tools
- Strong estimation skills, ability to come up with solutions, pros/cons
- Strong knowledge of functional programming concepts and other programming paradigms
- Openness to working and collaborating in a multidisciplinary team
- Ability to communicate design rationale and build team’s consensus over business drivers

**PERSONAL PROFILE**
- Proactive person
- Enthusiastic problem-solver
- Good team player
- Customer Orientation
- Openness to feedback and changes
- Result oriented
- Thoroughness and accuracy
- Striving for high quality solutions

**RESPONSIBILITIES**
- Elaborate technical design of complex systems or their large components
- Implement portions of software following given classes/components design and using your primary tech stack
- Ensure quality, maintainability, and conformance of software to best practices
- Produce clean code
- Participate in requirements clarification sessions, collect inputs and requirements of assigned tasks
- Proactively review own code with peers to ensure its quality
- Participate in estimation and planning sessions
- Play supervisory, advisory, and coaching role for one or several Senior specialists, ensure their assigned tasks delivery thanks to guidance and peer reviews provided
- Develop technical project documentation and user documentation
- Participate in project and team meetings, provide relevant contributions and information
- Participate as the technical solution owner in proposal preparation efforts and perform knowledge transfer to the team lead/responsible software architect when the project starts
- Analyze given business problem, extract and document business requirements and elaborate technical solution
- Communicate with customer on complex matters, discussions, negotiations
- Participate in technical interview of software developer specialists and perform assessment of candidates’ capabilities against job requirements
- Work without supervision