Software Developer (Backend-Developer)
--Ottawa--
Job Summary:
We are seeking a skilled Backend Software Developer to join our team. This role focuses on designing, developing, and maintaining robust server-side applications and infrastructure using a variety of technologies.
Location: Ottawa, Canada
Work Mode: Hybrid (3 days onsite)
Job Type: Contract
Eligibility: Canadian Citizen, PR Holder, or Valid Canadian Work Permit
Responsibilities:
- Design and implement scalable backend systems using Python and Java
- Develop and maintain RESTful APIs
- Work with SQL and NoSQL databases, including PostgreSQL, MySQL, and Cassandra
- Implement and manage message queuing systems using Kafka
- Containerize applications using Docker and orchestrate with Kubernetes
- Optimize application performance and ensure high availability
Technical Skills:
- Strong proficiency in Python and at least one Python web framework (e.g., Django, Flask)
- Programming Languages: Proficiency in Python
- Expertise in SQL and database management (PostgreSQL, MySQL)
- Knowledge of NoSQL databases, particularly Cassandra
- Familiarity with message brokers, especially Apache Kafka
- Proficiency in Linux operating system
- Experience with containerization using Docker
- Understanding of container orchestration with Kubernetes
- Version control with Git
- Software Development: Experience with software development methodologies and best practices
- Data Structures and Algorithms: Strong understanding and practical application
- Object-Oriented Design (OOD): Ability to apply OOD principles for flexible and modular software
- Database Management: Knowledge of SQL and experience with both relational and NoSQL databases
- Version Control: Proficiency with Git and experience managing complex branching strategies
- Testing and Debugging: Expertise in software testing methodologies and debugging techniques
- API Development: Experience in designing and implementing RESTful APIs
- DevOps Practices: Familiarity with CI/CD pipelines and cloud platforms (e.g., AWS, Azure)
- Experience with test-driven development and automated testing frameworks (e.g., Pytest)
- Experience with Spring Boot framework for Java applications and Java, JavaScript would be nice to have
Soft Skills:
- Problem-solving: Ability to analyze complex issues and develop innovative solutions
- Communication: Excellent verbal and written communication skills
- Teamwork: Ability to collaborate effectively in a team environment
- Attention to Detail: Meticulous approach to coding and documentation
- Time Management: Capacity to manage multiple projects and meet deadlines
- Adaptability: Willingness to learn new technologies and methodologies
Qualifications:
- Bachelor's or Master's degree in Computer Science, Software Engineering, or a related field
- 5+ years of professional software development experience
- Strong portfolio demonstrating proficiency in multiple programming languages and technologies
- Commitment to writing clean, maintainable, and efficient code