Backend Developer
Job Description
On Site
Calgary, Canada
Requirement:
Responsibilities include:
• Design, develop, and maintain backend code using Java, Python programming languages.
• Develop and manage RESTful APIs and microservices.
• Containerize applications using Docker and create/manage Kubernetes manifests and Helm charts for deployment.
• Deploy, manage, and scale applications within Kubernetes clusters on cloud platforms AWS, Azure, and customer's on-prem environments.
• Implement and manage CI/CD pipelines for automated builds, testing, and deployments.
• Design and interact with databases (SQL and NoSQL) ensuring optimal performance and data integrity.
• Monitor application and cluster health using tools like Prometheus, Grafana, and ELK stack; troubleshoot and resolve issues promptly.
• Implement and enforce security best practices for applications and infrastructure within the Kubernetes environment.
• Optimize applications for maximum speed, scalability, and resilience.
• Stay current with emerging cloud-native technologies and Kubernetes best practices.
• Contribute to infrastructure-as-code initiatives using tools like Terraform or Ansible.
• Participate in code reviews and advocate for high-quality coding standards.
Required Education And Skills
• BS or MS in Computer Science or related Engineering discipline
• Proven experience delivering software applications
• Solid understanding of how to build publicly exposed APIs
• Familiarity with CI/CD principles and tools technologies: Jenkins and GitLab Runner
• Must be self-motivated but be able to work well in a team environment
• Team player; willing to coach junior team members and cooperate on cross-functional problem solving
• Experience with Cloud and SaaS Development: Azure, AWS, Docker, Kubernetes.
• Working in an Agile development environment
Desired Experience
• Knowledge of infrastructure-as-code tools (e.g., Terraform, Ansible).
• Understanding of networking concepts in Kubernetes.
• Experience with serverless computing.
• Distributed Computing: distributed job orchestration on Kubernetes, parallel execution patterns, backpressure, sharding/partitioning, fault tolerance, checkpointing; frameworks (Ray/Spark/Dask) if applicable. We are mostly interested in Ray
• Implemented Kafka-based message-driven services and event-driven autoscaling on Kubernetes using KEDA (consumer-group scaling, DLQ/error handling, and scaling policies with performance/cost guardrails).
