Description:
The Research Database Developer position reports to the Manager, Research Workflow Design in Research Computing Services (RCS). RCS provides local research computing services to the research community at the University of Calgary and enables researchers to use national High-Performance Computing (HPC) infrastructure. This position will be part of the Research Dataflow Services (RDS) team within RCS. The specific focus of the RDS team is on the development of highly scalable research workflow infrastructure and the design of novel data systems in support of new university initiatives for enabling data-driven discovery and reproducible research data management. Daily work activities include consulting with researchers about their specialized computing needs, developing data processing workflows, collaboratively designing databases and novel data structures in support of research projects, and implementing pilot projects to confirm that designs meet specialized research needs. This environment allows RDS to work with a diverse research ecosystem including Medicine, Science, and Engineering research. This role requires a highly skilled database and software developer who is capable of supporting multiple research projects simultaneously.
Position Description
Summary of Key Responsibilities (job functions include but are not limited to):
Technical Leadership:
Meet with researchers to analyze and understand if a computational research problem can be undertaken and match the research needs with a software solution and set of infrastructure requirements.
Consult with researchers and teams on possible research programs/ideas.
Conduct seminars on software and database best practices.
Contribute work back to the research community as appropriate.
In-Scope Supervision:
Provide mentorship and coaching to Tech II software developers on the RCS team.
Provide training for database analysts on research teams.
Liaise, collaborate, and provide consultative advice to RCS and researchers.
Research Dataflow Services Strategy:
Produce data system strategy proposals and documents compatible with existing storage architecture.
Lead meetings with other RCS staff about data system strategies.
Database Development:
Create brand-new software, or extend, modify, or integrate existing software as necessary, to meet research needs.
Support domain-specific development of data models with computational expertise.
Develop a novel data lake solution to manage complex research data.
Qualifications / Requirements:
A BSc in a computationally focussed discipline (such as computer science, computational biology, or applied mathematics) is required.
A minimum of 5 years of directly related work and educational experience in developing and providing expert guidance to teams that develop and build research software and research databases is required.
Programming experience:
Python, C, and shell scripting required.
Haskell and Rust are assets.
A minimum of 5 years work and educational experience in SQL and NoSQL database design:
distributed database architectures
schema design (including index and constraint design)
experience with query optimization and transforming data
debugging and troubleshooting
Database experience:
Significant Document database (e.g. MongoDB) experience required.
Some Relational database (e.g. postgres or mysql) experience is required.
Some Graph database (e.g. Neo4j) experience is required.
knowledge of Key-Value stores, hash functions and join algorithms is also an asset.
A strong working knowledge of Linux operating systems is required.
Experience deploying and maintaining data pipelines using open-source workflow management software such as Apache Airflow is an asset.
Experience with software packages and libraries used in scientific workflows is required.
Experience using the git command line interface for version control is required.
Experience developing RESTful APIs is required.
Strong working knowledge of job scheduling systems such as SLURM is an asset.
Working knowledge of different parallelization paradigms and frameworks such as openMP, MPI, CUDA and OpenCL is an asset.
Proven experience in successfully developing and supporting all aspects of modern software development in a higher-education research environment is an asset.
Strong experience installing and managing research software packages is an asset.
The incumbent must have the demonstrated ability to:
Work collaboratively and cooperatively to provide exemplary service and advice to the research community on research software;
Understand research needs to match and link software development efforts to the researcher's research program;
Be able to communicate clearly, both verbally and in writing;
Analyze the needs and requests of the researcher to define, propose, negotiate and deliver successful solutions;
Reach set and agreed-to goals while working independently with limited supervision;
Analyze, decipher and understand technical problems, and to find, develop, and implement software solutions where there may be little local expertise or existing material;
Establish and maintain excellent and effective working relationships
Organization | The University of Calgary |
Industry | IT / Telecom / Software Jobs |
Occupational Category | NoSQL Database Developer |
Job Location | Abbotsford,Canada |
Shift Type | Morning |
Job Type | Full Time |
Gender | No Preference |
Career Level | Experienced Professional |
Experience | 5 Years |
Posted at | 2023-09-28 2:23 pm |
Expires on | 2024-12-13 |