Senior Python Software Engineer - Toronto
Engineering | Toronto, Ontario, Canada | Full Time
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.
Responsibilities:
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)
Requirements
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
Bonus:
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.