Full Time | Reports To: Executive Director | Posted on May 24, 2022
The Software Developer (SD) develops end to end data and software solutions to support the analytics requirements, business workflows, and data management of the Quantum Algorithms Institute (QAI). The role designs, develops, deploys and operationalizes secure software applications and big data techniques to streamline, automate, and improve business process workflows, and integrates data across multiple sources for analysis, reporting, decision making, and performance optimization. The SD ensures application security and proper handling of private and sensitive business data across the pipeline of applications and solutions. The position leads projects from conception to implementation and consults with business managers and leaders to ensure that the solutions meet the needs of the client.
Duties and Responsibilities
Manages all aspects of analysis, design, configuration, deployment, implementation, and documentation of the suite of research intelligence software and web applications by:
Leading efforts to architect, engineer and implement front-end and back-end application components, including API design, user interface, statistical reports, and data visualization
Designing and administering databases, using hybrid technologies, including relational (SQL) and non-relational (e.g. MongoDB) solutions
Delivers solutions with the highest level of security, privacy, and quality (i.e., ensuring network security and access, requirements gathering, defining specifications, developing code, implementation/deployment, testing, debugging, documentation, determining backup/recovery procedures, and system administration)
Ensuring applications meet specifications; and conducting a detailed review and analysis of
specifications, design, development, implementation, upgrades, and ongoing technical support
Drafting and maintaining an up-to-date, detailed developer and user documentation on all software applications
Interfacing with clients to manage releases of new functionality and resolution of issues
Providing technical expertise, training and consultation to other users and technical staff
Overseeing the work of coop students; assigning/scheduling tasks, providing direction, guidance,
coaching, mentorship, performance feedback and team leadership
Provides functional and technical expertise to clients by:
Ensuring a thorough understanding of business processes and requirements
Engaging with various stakeholders from academia, government, and industry to achieve objectives
and manage client expectations
Spearheading project planning and implementation of application solutions
Statistical analysis and operational availability:
Conducting statistical research to integrate and interpret data to answer complex business questions,
designing the development and maintenance of systems to ensure the highest possible uptime
Collaborating with clients, business analysts, project managers, systems engineers, directors, and team members to resolve technical issues, derive actionable insight from data, and enhance system features/integration, security, scalability and performance requirements
Contributes to ongoing strategic planning by:
Providing expert-level input, advocating for improved tools, processes, and procedures
Leading applications implementation
Serving as the key technical consultant for data services, security, and applications networking
Maintaining up-to-date knowledge of current information technology techniques/tools, modern development environments
Qualifications & Education
PhD degree in Computing Science, Physics, Electrical Engineering, Physics, Math or related discipline and five years of experience in large scale research computing, or an equivalent combination of education, training and experience. Record of published work in quantum algorithms. Proven experience in successfully developing and supporting all aspects of software development in a quantum research environment. Experience with modern software development tools and environments and supporting, developing, and coaching individuals in a team setting. Experience carrying out independent research, deploying large research computing software packages, setting up web front ends for scientific applications and queuing and batch scheduling systems. Experience with Advanced Research Computing (ARC) resources and awareness of digital research infrastructure organizations in Canada (e.g. CANARIE, Compute Canada).
Expert knowledge of programming languages used for high-performance research computing: C/C++, Fortran. Must be proficient in shell programming and other scripting languages.
Excellent knowledge of programming, development and project management in a complex environment.
Excellent project management skills and use of tools to ensure projects are completed on time and
within established budgets.
Excellent organizational, analytical and problem-solving skills.
Excellent negotiation, interpersonal skills and ability to explain difficult concepts.
Ability to communicate effectively at a high level to represent QAI.
Ability to work collaboratively to provide exemplary service and advice on research software.
Ability to understand research needs to match and link software development efforts to the
researcher's research program.
Ability to analyze the needs and requests of the client to define, propose, negotiate and deliver
Ability to reach set and agreed-to goals while working independently with limited supervision.
Ability to analyze, decipher, and understand technical problems, and to find, develop, and implement
software solutions where there may be little local expertise or existing material.
Ability to define and build a sustainable business model for a software development team.
Send your resume and a statement of interest to email@example.com and include “Software Engineer Lead” in the subject line