Software Engineer - Backend (sde I/sde Ii/senior)

Engineering · Full-time · Surrey, Canada

Job description

Pocketpills is Canada’s online pharmacy. We are revolutionizing the pharmacy experience by combining personalized care with innovative proprietary technology. We are a team of engineers, designers, data scientists, and pharmacists transforming a $42 billion industry. Through our easy-to-use app and website, members can fill prescriptions, order refills and consult with pharmacists—wherever and whenever they need. With a presence in every province and territory, we are committed to making medication more accessible and affordable for all Canadians. Pocketpills is one of Canada’s fastest-growing health tech companies, with more than 300,000 members and counting.

Position

We are looking for experienced software engineers to join our team and play a key role in driving the development of our website and web applications through which we provide pharmacy services. The position will be focused primary on backend  development in a team responsible for acquisition and revenue growth through organic and B2B channels.  This is an exciting opportunity to contribute to Canada’s leading online pharmacy, collaborating closely with engineers, product managers, and operations to shape our platform and enhance user experiences.

Job Duties (all roles)

  • Own product development and implement new features for our backend web services and APIs

  • Collaborate with cross-functional teams to understand user needs, business objectives, and technical requirements, translating them into efficient and effective technical solutions.

  • Design and implement various databases and storage systems, and build data processing pipelines

  • Triage, understand and fix production issues across multiple levels of the tech stack,  and identify the root causes.

  • Use our analytics systems to understand product usage and use it to come up with feature ideas and prioritize development. SQL Skills required.

  • Follow  complete  Software  Development  Life  Cycle  starting  from  Planning,  Designing, and Developing till the deployment of software.

  • Create design  documents to  analyze various  approaches  to  solve  the  problems  and choose the optimal one which fulfills all the given requirements.

  • Maintain quality of code by writing Unit test cases, integration testing, and other types of testing with the dependent system.

  • Research industry-standard coding design practices and take part in the coding evaluation process to improve the code quality of the current system.

  • Continuously improve the existing codebase by prioritizing scalability, reliability and testability.

Additional Job Duties for Senior Software Engineer position:

  • Prepare comprehensive system design documents aiming to optimize the system architecture and assess performance and reliability across various scenarios.

  • Make effective tradeoffs that considers business priorities, user experience, and a sustainable technical foundation.

  • Evaluate multiple technologies and be able to propose engineering solutions against both long-term and short-term roadmaps.

  • Establish and uphold best practices in engineering, security and technical design.

  • Lead and mentor junior engineers.

Qualifications & Experience (all roles)

  • Bachelor in Computer Science, Engineering stream or relevant equivalent experience.

  • Over 1  year of experience developing web applications.

  • Graduates without professional experience may be considered if they are able to demonstrate equivalent project experience with internships / co-op .

  • Strong understanding of object-oriented design, data structures and algorithms.

  • Proficient in a programming language such as Java, Javascript or Python

  • Familiarity with relational databases, SQL and ORMs

  • Deep understanding of writing modular, well documented, testable, maintainable code.

  • Understanding of various aspects of software development including architecture, development, QA and monitoring.

  • Genuinely excited to work in a fast-paced environment,  learn and solve problems without getting constrained by current knowledge or experience.

  • A strong desire to innovate, experiment, collaborate and learn.

  • Motivated to drive tasks to completion and take ownership of projects.

Additional qualifications for Senior Software Engineer position:

  • 5+ years of experience in software engineering.

  • Familiarity with various caching solutions across the databases, applications and platforms.

  • Knowledge of streaming and messaging services such as kafka, SNS, rabbitmq.

  • Experience using cloud-based architectures like AWS, GCP.

  • Experience with monitoring and alerting systems (sentry.io, ELK, New Relic).

Considered an asset:

  • Full stack experience.

  • Experience programming in Java and with the Play and Spring frameworks.

  • Familiarity with SEO concepts to improve web traffic.

  • Experience working on public-facing frontends or APIs with high traffic.

  • Prior experience working in the eCommerce space and/or customer engagement platforms.

  • Knowledge of CI/CD pipelines and containerization technologies.

The annual compensation is based on a number of factors and may vary depending on job-related knowledge, skills, experience and is within market range. Additionally, we offer permanent full time employees a comprehensive  health benefits package and a matching GRSP program. Depending on the position the overall compensation package includes an annual performance based bonus and company stock options. 

Job Type: Full Time, Permanent

Location: (Onsite) Surrey, BC