Full Stack Developer

 

Description:

You will work with a multidisciplinary team of user experience researchers, designers, and developers who will support you in designing and implementing client and/or server-side support for the features in our statement of work. You will primarily work with the existing development lead to partition the work based on your skills and interests.

Duties and Responsibilities:

  • Work with lead developer and machine learning architect to design, implement, integrate, and test code that extracts useful information from visual media (photos, textbook diagrams, etc.) and puts it in a JSON format for use in implementing end-user audio and haptic experiences.
  • Design and implement code that automatically creates end-user experiences for the Monarch device, working with graduate students and other researchers to help them turn their prototypes into deployable solutions.
  • Document and create example code to help others use the IMAGE platform efficiently.
  • Maintain project test and production Linux servers, and assist team members with issues in testing and deployment. Create and maintain usage metrics and generate regular reports.
  • Fix bugs as raised by team members and end users.
  • Review and merge code from students and other team members.
  • Integrate and test dependency updates to packages to prevent security and other issues (e.g., github dependabot).
  • Take on additional development tasks from current developer lead, on an as-needed basis.
  • Contribute to academic publications resulting from work on the project.

Qualifications:

Bachelor's degree required.

The ideal candidate would have a solid technical foundation that will allow them to creatively and proactively contribute to strengthening the IMAGE platform in multiple areas. Although we list many requirements below, we do not expect the candidate to be expert in all of them. If you are weak in some areas, but are a quick learner, please apply, since we can work with you to fill in specific gaps. We also hire with an eye toward ongoing work in the lab, beyond a specific project, as funding becomes available on other projects, so we look for developers who can quickly pick up new technologies and contribute to other areas of the lab as well.

Requirements:

  • 2+ years of software development experience writing code that has been deployed into production for real-world use. (examples required)
  • Software architecture, design, and documentation, including creating usable solutions when working with less technical designers and HCI practitioners
  • Strong proficiency in server-side languages such as NodeJS or Python
  • Frontend Web development, e.g., Typescript/HTML/CSS/Javascript
  • JSON schema definition
  • Linux command line and shell scripting
  • Familiar with (or able to quickly learn) containerization and orchestration technologies, including Docker, network layer designs, client/server design and scaling (e.g., Docker Swarm/Kubernetes)
  • Experience with version control, e.g.,GitHub, and GitHub flow method of raising and merging pull requests
  • Knowledge of DevOps practices for testing and deployment, including CI/CD tools (Github Actions/Jenkins)
  • Mentoring junior designers/developers
  • Quebec resident (mandatory)
  • Bonus: Experience writing conference and journal papers and presenting results in academic venues
  • Bonus: French, spoken and/or written
  • Bonus: Experience working with the blind/low vision community

Organization McGill University
Industry IT / Telecom / Software Jobs
Occupational Category Full stack developer
Job Location Montreal,Canada
Shift Type Morning
Job Type Full Time
Gender No Preference
Career Level Intermediate
Experience 2 Years
Posted at 2024-07-12 5:41 am
Expires on 2024-10-08