Software Developer

University of British Columbia


Job Category
M&P – AAPS

Job Title
Software Developer

Department
Systems & Security Population Data BC Faculty of Medicine

Posting End Date
November 13, 2022

Note: Applications will be accepted until 11:59 PM on the day prior to the Posting End Date above.

Job End Date
Dec 31, 2023

Due to the nature of funding for this position, the initial appointment is for one year and may be renewed on an annual basis.

Job Summary

Population Data BC is a multi-university, data and education resource facilitating interdisciplinary research on the determinants of human health, well-being and development.

We support secure research access to individual-level, de-identified longitudinal data on 4.8 million residents living in British Columbia, linking data across various sectors such as health, education, early childhood development, workplace and the environment.  Population Data BC (PopData) also offers a professional specialization certificate in Population Health Data Analysis, training researchers across Canada and around the world.

Key objectives of Population Data BC are to:

  • Make more data sets available for research

  • Facilitate cross-linkages among the data sets in a privacy sensitive manner

  • Provide strategic leadership to ensure streamlined researcher access to these data

  • Provide educational and other opportunities to ensure full and best use of those data

The Data Innovation Program is a data integration and analytics program for government. While every BC ministry collects and manages its own data, the Data Innovation Program (DI Program) can securely link and de-identify data from multiple ministries, giving government analysts a better understanding of BC’s complex issues.

The program supports population-level analysis, not individual or case-level analysis, unlocking the potential for new insights that lead to better programs and services for British Columbians.

Through the Data Innovation Program, existing data sets from various ministries or agencies are linked and de-identified in a secure platform (known as a Secure Research Environment, or SRE) to support specific population-level research projects. These projects aim to better understand trends and complex issues in BC.

Population Data BC works in partnership with the Data Innovation Program providing services related to data linkage, secure data storage, and project and data management.

The Software Developer will serve as the primary liaison for all technical matters relating to the partnership between Population Data BC and the Data Innovation Program.  They will design, implement, and maintain new and existing technologies required to support both Population Data BC’s and the Data Innovation Program’s key objectives. The incumbent will provide project leadership on various technical initiatives, including joint projects between the Data Innovation Program and Population Data BC.

Organizational Status

Population Data BC is based at the School of Population and Public Health (SPPH), which is in the Faculty of Medicine at the University of British Columbia. We are a key member of the International Population Data Linkage Network, through which we have promoted international research collaborations and fostered working groups on privacy and access to data.

This position is part of the Systems and Security unit of PopData and reports to the Lead, Systems and Security.  The Software Developer works with faculty, staff, researchers, students and stakeholders affiliated with Population Data BC and the Data Innovation Program.
Work Performed

  • Designs, implements, and maintains new and existing PopData-DI Program web-based applications written in Python and Django web framework

  • As primary technical liaison, works with the DI Program and other partners to integrate additional web frameworks into existing systems

  • Manages testing and migration requests between DI Program and PopData

  • Prepares and maintains documentation on both the PopData central IT wiki and DI Program-PopData documentation, including detailed procedures as well as problems and their resolutions

  • Provides technical advice to end-users, including staff, faculty, and researchers by analyzing, troubleshooting, diagnosing and applying appropriate solutions to restore systems and resolve issues

  • Administers PopData user accounts for DI Program users, setting up various user types (staff, researcher, etc.) with appropriate permissions and authentication tokens

  • Administers data transfers

  • Provides advice on information technology improvements, services, policies and procedures

  • Develops training materials, provides training for others in the use and configuration of software, hardware, network systems and peripheral equipment

  • Advises users, both remotely and in-person, to diagnose and resolve problems, escalates when necessary, and documents problem status and actions taken

  • Makes recommendations on and performs preventive maintenance tasks.  Troubleshoots and repairs a variety of computer systems and peripheral equipment

  • Monitors networks and infrastructure systems on a regular basis and evaluates incidents, resolving or escalating where appropriate

  • Deploys new hardware, software, networking and security updates

  • Maintains an inventory of equipment, service contracts, warranty and maintenance agreements

  • Modifies and debugs existing software application modules using disciplined software development processes, quality standards and procedures

  • Performs other related duties as required

Consequence of Error/Judgement

This role will work under strict confidentiality because of the nature of the data holdings.  PopData’s secure systems and network protect highly sensitive data, and any unauthorized release of those data or breach in data security would place the future of Population Data BC as well as its partner organizations at risk. Any breaches of privacy or security could result in legal and ethical repercussions for PopData and UBC.

As one of the staff members responsible for designing and maintaining systems that hold highly sensitive, individual-level data, errors and oversights made by the Software Developer have significant potential to seriously impact PopData’s reputation and credibility as an organization. 

The candidate will be required to interact with researchers, programmers and support staff at UBC in general and with personnel in the provincial government and elsewhere. This will be related to use of confidential data files from government programs, professional associations, and surveys and will require diplomacy and good interpersonal skills. Poor judgment, inappropriate procedures, incorrect information and lack of diplomacy could adversely affect relationships with Population Data BC’s primary users, stakeholders, funders and data partners and damage the reputation of Population Data BC and also the University of British Columbia.

This is a position in an organization responsible for providing services to our funders and the greater research community. Judgment within established guidelines is required with regards to the management of project priorities, schedules, and resource requirements.
Supervision Received

Works autonomously, setting priorities and performing most duties independently.  Receives direction and limited supervision from the Lead, Systems and Security.  Consults with service clients (faculty, staff, and government partners) as required.  Work is reviewed in terms of achievement of desired results.
Supervision Given

No formal reports, however, may provide guidance to student staff with technical duties.
Minimum Qualifications
Undergraduate degree in a relevant discipline. Minimum of two years of related experience, or the equivalent combination of education and experience.
Preferred Qualifications

Undergraduate degree in Computer Science preferred.

Relevant experience as a Software Developer is strongly preferred.  Experience leading project teams including application developers, business area users and technical resources is preferred.

Preference may be given to those applicants with experience and/or training with the following:

  • Experience and/or training using a broad number of application development tools

  • Experience and/or training using Linux servers

  • Experience and/or training programming applications and services with Python, Java, Node.js

  • Experience and/or training scripting and building integrations with Bash, Python and SQL

  • Experience and/or training automating the provisioning and deployment of applications using tools such as Terraform and Ansible

  • Experience and/or training developing APIs and applications based on microservice architecture

  • Experience and/or training working with automated testing frameworks (e.g., Selenium)

  • Experience and/or training implementing and managing CI/CD pipelines with tools such as Jenkins, Travis, Tekton, CircleCI, Sonarcloud

Knowledge, Skills, and Abilities:

  • Knowledge integrating and maintaining web frameworks

  • Knowledge of lifecycle of the development project

  • Ability to interpret client requirements and synthesize this with knowledge of underlying infrastructure applications, systems, and processes, and determine how these contribute to system design plans and development efforts over the lifecycle of a development project.

  • Excellent customer service and interpersonal skills

  • Assessing customer requirements, developing and implementing technical and business solutions to address

  • Coordinating resolution of technical and business problems while managing multiple tasks and priorities

  • Managing projects, developing action plans, and leading project teams in technical projects.

  • Developing source code with version control using Git

  • Using scripting languages such as Python, Bash and Terraform to automate regular tasks and build technical infrastructure

  • Querying relational databases with SQL

  • Container based development, deployment and orchestration

  • Using and administering continuous integration and deployment systems

  • Knowledge of 12 factor application design, test-driven development and the software development life cycle

  • Developing applications using test-driven development

  • Knowledge of integration and regression testing techniques

Due to the privacy sensitive nature of the data holdings at Population Data BC, the incumbent must meet the security screening requirements of our data providers.

View or Apply
To help us track our recruitment effort, please indicate in your cover/motivation letter where (jobs-near-me.eu) you saw this job posting.</strong