Position: Golang+NodeJs developer
Company: Solvery
Category: Golang
Experience required: 5y
English level: upper

**Responsibilities**

- Ensure that your work meets all acceptance criteria. Test your work to ensure that it works as expected. Present your work to customers to achieve sign off. Work with your customers to ensure that your work will meet the business needs
- Shepherd your code (and other's code) through the process until deployment. Help own and understand the process, and contribute to improving efficiency and consistency of the process.
Take part in peer code reviews providing qualitative feedback
- Research internal implementations as well as potential new technologies, and communicate output of that research
- Detect root cause of defects and production bugs, and fix them when requested. Communicate impact of bugs and work with stakeholders to schedule fixes
- Research changes to external integrations and update code to account for changes. Understand the cadence of these changes and contribute to the ongoing plan to manage 
- Document work done in appropriate location, whether it be in code, or in a document library. Hand-off documentation to intended recipients or audience. Document previously un-documented systems or practices as encountered in your work environment
- Provide technical direction on various types of tasks on your platform
- Update team members on the progress, if you are encountering any major issues, and actively encouraging other team members to do the same while also providing insights into how to optimize this communication
- Perform necessary communication with other teams as outlined in your team agreement, and call out areas where there may be inter-team communication issues. Additionally, do what you can to drive better communication between your team and others
- Perform necessary communication with Stakeholders as outlined on your team, and calling out areas where there may be Stakeholder communication issues. Additionally, strive to have a clear understanding of Stakeholder goals to help drive better communication between your team and them
- Stay current with platform changes and third-party libraries. Proactively investigate better solutions for current technologies
- Contribute ideas on ways to make our project management systems more efficient
- Respond to emergency issues and alerts assigned to you. Contribute ideas on how to improve monitoring and alerting systems
- Be part of the technical interview team, and also offer ideas on how to improve the interview process
- Provide honest and accurate feedback when asked for it
- Other duties as assigned

**Qualifications**

- Experienced in architect programs which operate either independently or within a larger system
- Advanced proficiency in Go Programming Language
- Excellent understanding of the internal technologies used by your team. Able to provide commentary, review, and feedback to other teams about their projects and products when necessary, especially in how those integrate with your own team
- Experience with JIRA or other Ticket system and the ability to resolve tickets according to technical direction
- Understand our project management tools and processes
- Excellent understanding of build and test processes; able to modify build processes to add new modules to an existing project and develop build processes for new projects. Able to design, develop, and debug unit and integration tests for new and existing code
- Experience in Developing RESTful Web APIs, Microservices using Go. (Nice to have gRPC knowledge)
- Proficient at using your team's version control system, and the ability to address pretty much any merge conflict. Complete understanding of your team's branching process. 
- Experience in Cloud-based application development on GCP, Azure or AWS
- Good knowledge of designing, writing code using Object Oriented Programming (OOP) concepts, S.O.L.I.D design principles, and Design Patterns
- Experience in Asynchronous and Parallel programming techniques.
- Experience in modeling and working with Relational (RDBMS) databases and No-SQL databases, performance tuning long running Queries.
- Experience in writing and automating Unit tests, Functional Tests, and Integration tests.
- Experience in developing Responsive, Single Page Applications using React or Angular.
- Experience in Continuous Integration (CI) and Continuous Build mechanisms using Jenkins and Circle CI.
- Knowledge of Web Servers like nginx or any other
- Experience with all phases of systems development life cycle (SDLC) using Agile (Scrum) methodologies.
- Familiarity with Containerization of applications using Docker and Kubernetes (K8s).
- Ability to research and recommend third-party libraries and services for product development
- Understand  advanced Version Control concepts (rebase, resolving merge conflicts)

**This position also requires the following essential functions:**
- Visual acuity (e.g., needed to prepare and analyze data, to transcribe documents, to view a computer, to read, to inspect objects, to operate machinery
- Capacity to reason and make sound decisions
- Ability to read complex documents in the English
- Ability to write complex documents in the English
- Capacity to express thoughts orally (e.g., accurately, quick and loudly convey spoken instructions to workers)
- Capacity to think, concentrate and focus over long periods of time
- Repetitive motions of any part of the body