University of Alberta

Senior Programmer Analyst

Libraries - Information Technology Services

Competition No.  -    S101738916
Posting Date  -    May 08, 2019
Closing Date  -    May 27, 2019
Position Type  -    Full Time - Operating Funded
Salary Range  -    $67,002 to $94,046 per year
Grade  -    12
Hours  -    35

This position offers a comprehensive benefits package which can be viewed at: Faculty & Staff Benefits.

University of Alberta Libraries (UAL) is looking to fill a Senior Programmer Analyst position. Review of applications will begin on May 28th, 2019.

Are you interested in creating and developing applications to support new, innovative ways to distribute academic digital scholarship, and contributing to the next generation of digital repository services? Want to have a real impact on the academic research community and beyond?  

Join a library charged with managing an increasingly diverse ecosystem of digital materials, tools, and services. Become part of a dynamic team that is committed to the use of open source, community-based technologies, and to following best practices in software engineering (Agile, code review, continuous integration, web accessibility, etc). Be part of a unit that values continuous learning, the open sharing of ideas, and that fosters respect and appreciation in the workplace.  

We are looking for a committed and knowledgeable Senior Programmer Analyst. As a member of the Digital Initiatives and Information Technology Services Teams,  you will be responsible for identifying and analyzing problems, needs and opportunities for UAL to design and develop software systems and applications that support our institutional commitment to learning and research support within the university. You will design, develop and implement applications and tools to support a growing range of digital asset management use cases, including ingest, discovery, access, management, analysis, and preservation. We work with digital dissertations and theses, research data of many types, digitized library and archival materials, e-books, multimedia content, web archives, and other digital objects produced locally and abroad, along with metadata in many formats. You will be working on projects that focus on user experience, accessibility, sustainability, test-driven development, and peer-reviewed code management process.  Many of our applications are built with open-source components with an eye to collaboration with broader open-source communities and peer institutions. Almost all of the code we develop is open-source (the only exceptions are where there are security reasons for keeping it closed). The incumbent will have the opportunity and expectation to be an active member of those communities and to continue to develop the reputation of UAL as a leader and innovator in digital repositories and support for scholarship.

Currently, the team works primarily in Ruby on Rails and MySQL/PostgreSQL with Docker, with some Java components, and manages its code on Github. We are eager to learn more new technologies and trends that could be applied in library application development. We strive to adopt industry-standard solutions and strong adherence to the best code management and documentation practices to increase the sustainability of our work. Our applications are founded on the user needs that we determine from user testing, and we employ a user-centred design approach to our work.


  • Supports and augments the systems and applications within the ecosystem of Digital Asset Management (DAMS)
    • Identifies, evaluates, and designs software solutions and technological platforms for components of the DAMS to manage, analyze, preserve and provide discovery and access to digital content.
    • Develops and implements the public interface to provide access to digital content based on a standard web development framework such as Ruby on Rails.
    • Develops and implements discovery applications with technology such as Apache Solr or ElasticSearch to support the scholarly and public needs to search and access the digital collections and resources in the Libraries, and other external digital collections and repository services.
    • Designs, develops and implements software integration and bridges between the institutional repository services, multimedia repository service, research data repository services, and other local, national and international repository services.
    • Develops and implements preservation utilities and workflows that integrate the various repository services with the long-term preservation storage solutions such as OpenStack Swift.
    • Develops robust preservation architectures that ensure the future accessibility of our digitized and born-digital collections as part of our DAMS.
  • Takes a leading role in requirement analysis and solution designs for applications that support ingest, discovery, access, management, curation, analysis and long term preservation of critical digital assets of the University, and support our external partnerships.
    • Applies in-depth knowledge of current technology to respond to and analyze new requirements raised from internal and external stakeholders and partners.
    • Conducts research and investigates alternatives, gathers and interprets information, and evaluates and recommends designs, platforms and development strategies to support the decision-making in selection and design of the technology architecture of various applications, to ensure the applications have a high degree of usability, supportability, and sustainability.   
    • Conducts systematic evaluations of application performance using analysis and management tools and provides leadership and advice in the enhancement and improvement of the applications based on the analysis.
    • Analyzes existing systems and functions to determine how to evergreen and maintain them as sustainable architectures to ensure a reliable system for long-term preservation.
  • Develops and articulates recommendations assisting in the establishment of programming standards and best practices that contribute to ongoing collaborative improvement in these standards and practices (e.g., best practices for agile development, test-driven development, code management, deployment management, continuous integration and online security such as OWASP); Takes a leading role to provide technical coaching, quality control and signing off on technical development work of others in the team.  
  • Collaborates with the Operations Team in the development or modification of configuration management plans, policies and procedures for DAMS and other library services.
  • May be required to work standby, on call back or overtime.    


  • Minimum of an undergraduate degree in Computing Science or equivalent, emphasizing software engineering, systems design, software architecture and/or data structure.
  • Expert-level knowledge of interactive Web-based applications using programming languages and middleware applications.
  • In-depth knowledge and experience with Ruby and Ruby on Rails, or equivalent programming languages such as Python.
  • Knowledge of MySQL/MariaDB/PostgreSQL including in-depth understanding of relational database concepts and experience with relational database design.  
  • Knowledge of and experience with OS virtualization/containerization tools (we use Docker and Docker Compose) is highly desirable.
  • Knowledge of and experience with continuous integration and current tools (we use TravisCI and Jenkins) is highly desirable.
  • Knowledge of Agile and traditional project management methodology is highly desirable.
  • Knowledge of and experience with configuration management and current tools (we use Ansible) is desirable.
  • Knowledge of Test Driven Development is considered as an asset.
  • Knowledge of ITIL framework is considered as an asset.
  • Experience with the Solr or ElasticSearch search platform is considered as an asset.
  • Strong analytical, diagnostic and communication skills, both written and oral.
  • Strong interpersonal skills for effective communication; ability to clarify technical information for non-technical audience.
  • Ability to work effectively both independently and collegially in a team environment and under pressure.
  • Willing to contribute actively and to share your ideas, knowledge and code with teammates as well as with the broader library, academic and open-source communities.

How to Apply

Apply Online

Note: Online applications are accepted until midnight Mountain Standard Time of the closing date.

We thank all applicants for their interest; however, only those individuals selected for an interview will be contacted.

The University of Alberta is committed to an equitable, diverse, and inclusive workforce. We welcome applications from all qualified persons. We encourage women; First Nations, Métis and Inuit persons; members of visible minority groups; persons with disabilities; persons of any sexual orientation or gender identity and expression; and all those who may contribute to the further diversification of ideas and the University to apply.