Responsibilities:

  • Successfully and independently deliver large-size projects, including scoping, planning, design, development, testing, rollout and maintenance.
  • Write clean, concise, modular and well-tested code. Review code from junior engineers and provide constant and constructive feedback.
  • Contribute to building and maintaining documentation related to the team's projects.
  • Create high quality, loosely coupled, reliable and extensible technical designs. Actively understand trade-offs between different designs and apply the solution suited to the situation / requirements.
  • Participate in the team's on-call rotation and lead the troubleshooting and resolution process of any issues related to the services/ work sub-streams/ products owned by your team.
  • Constantly improve the health and quality of the services / code they work on, through set practices and new initiatives.
  • Lead the cross-team collaborations for the projects they work on.
  • Support hiring and on-boarding activities along with coaching and developing junior members in your team, and contribute to knowledge sharing.

Qualifications and Experience:

Must have:

  • 4-6 years of hands-on experience in designing, developing, testing, and deploying small to mid-scale applications in any language or stack. 2+ years of recent and active software development experience.
  • Good understanding of Golang. Able to use Go concurrency patterns and contribute to building reusable Go components.
  • Strong experience in designing loosely coupled, reliable and extensible distributed services.
  • Great understanding of clean architecture, S.O.L.I.D principles, and event-driven architecture. Experience with message broker services like SQS, Kafka, etc.
  • Strong data modeling experience in Relational databases.
  • Strong cross-team collaboration and communication skills.
  • Self-driven with a passion for learning new things quickly, solving challenging problems, and the drive to get better with the support from the manager.

Nice to have:

  • A bachelor degree in computer science, information technology, or equivalent education.
  • Experience with NoSQL databases.