Position: Golang Developer
Company: JetSoftPro
Experience required: 5y
Category: Golang
English level: upper
Published: 2023-06-01T00:00:00+03:00

Project Description	
As the Senior Software Engineer, you will spearhead the architecture and development of the application and infrastructure. You will be responsible for overseeing the scalable development of all systems including API, backend, and frontend.

Client Description	
USA Client, from the EdTech industry, provides educators with a formative practice and productive language assessment tool that accelerates language development by providing constructive feedback to students and informing teacher practice.

Requirements	:
- 5+ years of experience as a software engineer.
- 3+ years of experience with Golang
- 1+ years of experience with the AWS platform building, deploying, and monitoring solutions.
- Hands-on experience building and scaling resilient microservice architectures and serverless applications(e.g., Golang, Postgres, GraphQL, React, AWS).
- Experience with modern CI/CD tools, GitHub, automation tools, and testing frameworks.
- A clear passion for software development best practices (e.g.design patterns, feature flags, trunk-based development, test-driven development, code profiling, and debugging).
- Self-motivated worker with the ability to be productive in a fast-paced iterative environment.
- B.S. in Computer Science or a related field or equivalent professional experience.

Preferred Skills:
- Experience building AI models and working with NLP.
- Experience with Terraform or other infrastructure as code tools.
- EdTech development experience


Responsibilities:
- Own the ideation and refinement, development,and maintenance of multiple software components, from initiation to integration into production.
- Take complicated problems and break them down in to bite sized pieces, then ship every few weeks to get there.
- Work throughout the entire stack, from hosting infrastructure to front-end performance and back.
- Fully participate as a member of a Scrum development team.
- Create automation to ensure quality.
- Work with product Management in the planning, scoping, estimation, and execution of technical solutions.
- Provide technical guidance and mentoring to the team and help them embrace change as new processes are introduced
- Participate in code reviews and provide constructive feedback that ensures the scale and stability of the application.