Back-End Developer

EcoBase Solutions Inc. Published: October 13, 2020
Location
Kelowna, British Columbia
Internship Type
Salary range
$45,000 to $55,000
Hours per week
35
Start Date
2020/11/02
End Date
2021/04/30

Description

EcoBase is looking for an experienced back-end developer to build and deploy data driven APIs to power our web applications and user experience. This involves building a complete back-end architecture in a cloud environment from the ground up to be consumed by data analysts and applications. You must be confident in your ability to architect cloud based microservices and be conscious of security and deployment considerations.

Duties and responsibilities

Key duties and responsibilities include:

  • Develop backend services using NodeJS to deliver GraphQL or Restful APIs
  • Apply industry best practices in API design
  • Secure services using JWT tokens with RBAC and design the necessary roles and access patterns required by the application and business requirements
  • Connect to a PostgresQL database, Redis memory store, object storage buckets, and any other required data warehouses or pipelines in a cloud infrastructure
  • Deploy services using Continuous Integration/Deployment patterns and monitor deployment success
  • Maximize service uptime and delivery SLAs through high availability patterns
  • Deliver service logs to a centralized cloud logging store and monitor for problems
  • Use Git for code deployment and collaboration
  • Manage service configuration and secrets using environment variables
  • Use tools such as Prettier and ESLint to enforce code quality standards
  • Collaborate with web developers to document and integrate APIs

Knowledge and skills

  • Experienced writing NodeJS applications using ES6+
  • Highly knowledgeable with designing GraphQL APIs
  • Solid understanding of designing Postgres database schemas and access patterns:
    • Organized with putting together and explaining diagrams
    • Knowledgeable in creating keys and indexes
    • Knowledgeable in connecting a SQL database to a GraphQL schema, maximizing performance, reducing query redundancies or overfetching
    • Writing migration scripts
  • Familiar with the following languages or frameworks:
    • Typescript
    • TypeORM
    • Apollo (GraphQL)
    • Express
  • Experienced with cloud infrastructure:
    • Automated deployment to EC2 instances
    • Cloud logging patterns
    • Connecting to various AWS services such as databases
    • Configuring VPC and subnets
  • Understanding of security best practices
    • Password hashing
    • Configuring RBAC roles
    • Managing JWT tokens
  • Bonus for knowledge in the following areas:
    • Email delivery
    • File uploads
    • Reflection and DI
    • GraphQL Dataloader

Education required

Bachelor's Degree or higher in computer science or related field of study.

Eligibility criteria

Career-Launcher Internships are funded by the Government of Canada under the Youth Employment Strategy. For program criteria information visit their website.

 

Qualified interns are:

  • Post-secondary students and graduates
  • No more than 30 years of age at the start of the internship
  • Canadian citizens, permanent residents or persons granted refugee status in Canada*
  • Legally allowed to work according to the relevant provincial and Canadian legislation and regulations
  • Available to work for at least six months
  • Not previous participants of a federal youth employment program
  • Not employees of the hiring employer prior to the start of their internship (does not apply to previous coop students or student interns)

*Refugee protection must be conferred under the Immigration and Refugee Protection Act. Persons awaiting refugee status, as well as those who hold a temporary visitor visa, student visa or work visa, are ineligible to participate in a Youth Employment Strategy initiative.

Apply
Drop files here browse files ...
Allowed formats: pdf, doc, txt, rtf, docx
Drop files here browse files ...
Allowed formats: pdf, doc, txt, rtf, docx
Accept and Submit
Captcha