Your browser cookies must be enabled in order to apply for this job. Please contact if you need further instruction on how to do that.

Senior Python Software Engineer - Toronto

Engineering | Toronto, Ontario, Canada | Full Time

Job Description

Shopkick is a shopping app (30M+ downloads) that connects brands and retailers to consumers along the entire path to purchase. We provide measurable solutions for our customers as we get our audience to engage with content, learn about and pick up products helping drive incremental store traffic and sales using “kicks” instead of cash back, coupons, or discounts.

Shopkick is looking for a Senior Python Engineer with a strong background in the architecture & design of cloud-native systems built for scale. Candidates must have a commitment to collaborative problem solving, sophisticated test design, automation, and delivering high-quality products. Join us and build something meaningful.



  • Design and develop backend services that communicate with our mobile applications

  • Debug issues & bugs in distributed processing systems

  • Design, develop, and maintain event driven architectures

  • Integrate with external services such as Kafka

  • Mentor junior engineers through code reviews and best practices

  • Work on a highly collaborative team of 5-10 engineers

  • Build applications that are used by millions of users and process hundreds of millions of events each day

  • Participate in Agile workflows (sprint planning, daily scrum, retrospectives)



  • 5+ years of experience designing, building and implementing server software at scale

  • Expert at coding in Python

  • Experience with FastAPI, Django, or another Python application server such as Flask or Pylons

  • Proficiency in an ORM framework such as SQLAlchemy

  • Experience with event driven architectures is highly desirable

  • Excellent team player with strong communication skills (verbal and written)

  • Experience working with large legacy systems

  • Ability to investigate complex code without documentation

  • Enthusiastic about collaborative problem solving

  • Experience using both relational and NoSQL database systems

  • Experience designing for scalability

  • Ability to examine and evaluate server architectures

  • Solid understanding of performance & optimization in distributed processing systems

  • Experience taking ownership of your code, providing unit tests, and carrying out integration tests

  • BS in computer science or a related field, or equivalent experience


  • Experience coding in Java

  • Knowledge of testing, profiling, and debugging practices

  • Experience working with JWT Authentication

  • Experience working on a remote team

Any unsolicited resumes/candidate profiles submitted through our website or to personal email accounts of employees of Shopkick are considered the property of Shopkick and are not subject to payment of agency fees.