A leading technology firm in India seeks a Software Engineer to independently deliver large projects. The candidate should have strong skills in Golang, relational databases, and experience in designing distributed services. Responsibilities include coding, mentoring juniors, and participating in on-call support. The role offers opportunities for professional growth and collaboration in a dynamic environment.
Qualifications
3-5 years of hands-on experience in software design and development.
Good understanding of Golang and its concurrency patterns.
Experience in designing extensible distributed services.
Strong understanding of clean architecture and S.O.L.I.D principles.
Responsibilities
Deliver large-size projects including design, development, and maintenance.
Write clean and modular well-tested code.
Participate in on-call rotation and resolve issues.
Support hiring and mentoring junior team members.
Skills
Golang
Software development
Cross-team collaboration
Data modeling
Clean architecture
Education
Bachelor's degree in computer science or equivalent
Tools
SQS
Kafka
Relational databases
NoSQL databases
Job description
Responsibilities:
Successfully and independently deliver large-size projects, including scoping, planning, design, development, testing, rollout and maintenance.
Write clean, concise, modular well-tested code. Review code from junior engineers and 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:
3-5 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 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.