Programmer/Analyst (Full stack)
Computational Support Team
Pacific Climate Impacts Consortium
The Pacific Climate Impacts Consortium (PCIC) is a regional climate service centre at the University of Victoria that provides practical information on the physical impacts of climate variability and change to users and stakeholders in BC and across Canada. PCIC hosts over two dozen scientists, analysts, post-doctoral fellows, and students performing leading edge climate research. Through collaboration with climate researchers and regional stakeholders, PCIC produces knowledge and tools in support of long-term planning.
Job Description
The Programmer/Analyst (Full stack) works to develop and maintain online applications for serving and analyzing climate data. Our researchers produce or collect hundreds of terabytes of high-resolution spatio-temporal climate model output, hydrologic model output, in-situ observations and derived climate analysis products. All of these must be stored and hosted in a variety of high-performance computing clusters across multiple on-premises clouds. The challenge of this position is to design and implement creative technical solutions for using that data to present and interpret the effects of climate change on British Columbia and elsewhere.
You will be a part of a talented and dedicated team that enables access to PCIC's flagship data products and innovative web-based analysis tools. You will play a key role in building applications that provide public access to and creative visualization of open and big data. Your highly sought products will serve an engaged base of stakeholders and will be used immediately to study Canada's changing climate.
Accountabilities
- Lead the development for many of PCIC's web application software (full stack) and climate data processing pipelines, perform requirements analysis and design software specs.
- Advise and mentor fellow developers, in part by providing timely code review and feedback
- Assist in high-level architecture of PCIC's software systems and data systems
- Assist in maintenance and support of PCIC's data portals and online analysis tools
- Assist in IT support (storage/backup management, system administration) as needed
- Reports to the Lead, Computational Support
Knowledge, Experience, and Abilities
Knowledge
- Master's degree majoring in Computer Science, Computer Engineering or a related field of study, or a commensurate level of related experience
- A broad understanding of the various layers of abstraction that comprise computer and software systems.
- Working knowledge (able to read and write) of 4+ programming languages (e.g., JavaScript, Python, R, Java)
- Knowledge of contemporary JavaScript frameworks (e.g., ReactJS) and client-side plotting libraries is desirable
- Knowledge of Big O notation and algorithm complexity analysis
- Some knowledge of earth or climate science and the ability to translate problems between domains
- Knowledge of relational database design, data modelling, contemporary database tooling and a working knowledge of interacting with databases via a variety of types of clients.
- Knowledge of Open Source Software (OSS) for geospatial and web mapping libraries is a plus
Experience
- Significant experience as a Linux user
- Experience with distributed revision control software and workflows
- Experience with a variety of Python web application frameworks
- Experience with contemporary JavaScript libraries, frameworks and developer tooling
- Experience using profiling and debugging tools and analyzing multi-component systems
- Experience using Test Driven Development, writing and executing automated test suites and utilizing continuous integration platforms
Abilities
- Ability to analyze multi-layer systems, correctly identify problems, and determine the most appropriate level of the system stack in which to invest and/or intervene.
- Ability to be creative and innovate when confronted with deficiencies in existing solutions and products.
- Ability to communicate through multiple media in order to work closely with peers, team members and external stakeholders and to convey technical concepts to potentially non-computational scientific staff.
Other Information:
- This is a full-time (35 working hours per week) 3-year term position, with the possibility of extension.
- Pay rate: Commensurate with education and experience.
- Start date: As soon as possible.
· Address enquiries to James Hiebert at [email protected]
Application:
Your application may be sent to James Hiebert at [email protected], with “ATTN: Programmer/Analyst (Full Stack)” in the subject line.
Please include the following in your application:
- A cover letter.
- Please indicate in your cover letter whether you are currently legally able to work in Canada.
- A resume or CV.
- The names and contact information of three professional references.
Review of applicants will start immediately and continue until a candidate is found.
Job Type: Full-time
Benefits:
- Dental care
- Extended health care
Flexible Language Requirement:
Schedule:
Ability to commute/relocate:
- Victoria, BC V8N 6M2: reliably commute or plan to relocate before starting work (required)
Education:
- Master's Degree (preferred)
Language:
Work Location: In person