Software Engineer (Golang)
Tucows
- Toronto, ON
- $117,000-130,000 per year
- Permanent
- Full-time
- Design and develop secure, scalable, reliable, and efficient backend services using appropriate technologies.
- Work closely with frontend developers to define API endpoints and request/response formats and contents.
- Design and optimize database schemas, write efficient queries, and ensure performance and reliability.
- Integrate third-party services, libraries, and tools into our applications architecture.
- Implement security best practices, such as encryption, authentication, authorization, and protection against common security vulnerabilities.
- Optimize code and system architecture for scalability, performance, and maintainability.
- Write unit tests, integration tests, and end-to-end tests to ensure the reliability and stability of our software.
- Debug and troubleshoot issues in new and existing systems.
- Participate in code reviews, provide constructive feedback, and contribute to a culture of continuous improvement.
- Document code, APIs, and system architecture to facilitate knowledge sharing and onboarding of new team members.
- Set up and maintain CI/CD pipelines to automate the process of building, testing, and deploying software updates.
- Bachelor's degree in Computer Science, Engineering, or a related field, or equivalent work experience.
- 3+ years of professional experience as a backend software engineer or similar role.
- Proficiency in Python or Golang programming languages.
- Experience designing and implementing Restful APIs using web frameworks such as FastAPI or Gin.
- Experience with relational databases, preferable PostgreSQL and PL/pgSQL.
- Strong understanding of web technologies, protocols, and standards (e.g., HTTP, REST, JSON, XML).
- Experience with Continuous Integration concepts and tools.
- Experience with version control using Git.
- Comfortable with agile methodologies, JIRA, and other project workflow tools.
- Excellent problem-solving skills and attention to detail.
- Ability to debug and troubleshoot issues in backend services and web applications.
- Ability to work independently as well as part of a team.
- Experience working remotely with a distributed team.
- Strong communication and collaboration skills.
- Experience with message brokers, with a preference for RabbitMQ.
- Experience with cloud services (e.g., AWS, Azure, Google Cloud) and containerization technologies (e.g., Docker Swarm, Nomad, Kubernetes).
- Knowledge in API security frameworks, token management and user access control including OAuth, JWT, OpenAPI, etc.
- Knowledge in networking, system administration, operations and infrastructure.