Job Description
- Design, develop, and maintain scalable and high-performance applications using Go programming language.
- Implement microservices architecture for better modularity, scalability, and ease of deployment.
- Develop robust and efficient concurrent programs to optimize application performance while managing resource utilization effectively.
- Collaborate with cross-functional teams to define, design, and ship new features, ensuring seamless integration with existing systems and services.
- Conduct code reviews and maintain quality standards to ensure code meets functional requirements and best practices in Go development.
- Write and maintain documentation for software development processes, architectures, and technical specifications.
- Manage database interactions, including writing efficient queries and optimizing existing database schemas to ensure high performance.
- Utilize version control systems (such as Git) to manage codebase and collaborate with team members on various projects.
- Troubleshoot and debug applications to identify and resolve issues, ensuring a smooth user experience and minimal downtime.
- Stay updated with industry trends and emerging technologies to enhance application performance and developer productivity.
**Required Qualifications**
- Bachelor’s degree in Computer Science, Information Technology, or related field, or equivalent practical experience.
- 2 to 10 years of professional experience in software development, with a strong emphasis on Go programming.
- Proficiency in concurrency management within the Go ecosystem, with a clear understanding of Goroutines, Channels, and synchronization techniques.
- Solid experience designing and implementing microservices architectures, with familiarity in RESTful APIs and service-oriented architecture.
- Hands-on experience with database management, including SQL and NoSQL databases, and a good understanding of data modeling principles.
- Familiarity with version control systems, especially Git, and experience in collaborative software development environments.
- Strong analytical and problem-solving skills, with the ability to write clean, maintainable, and efficient code.
- Excellent communication skills, both written and verbal, enabling effective collaboration with team members and stakeholders.
**Preferred Qualifications**
- Master’s degree in Computer Science or a related field, or equivalent professional certifications.
- Experience with cloud platforms (such as AWS, Azure, or Google Cloud) and understanding of containerization technologies (like Docker and Kubernetes).
- Familiarity with Agile methodologies and experience in working in Agile development teams.
- Knowledge of additional programming languages or frameworks (such as Java, Python, or Node.js) that complement Go development.
- Understanding of DevOps principles and experience with CI/CD pipelines for automated testing and deployment.
- Contributions to open-source projects or participation in the Go developer community.
- Experience with performance profiling and optimization techniques specific to Go applications.
- Exposure to front-end technologies or frameworks which may improve collaboration with front-end development teams.