*PLEASE DO NOT APPLY TO THE INDEED.COM WEBSITE. PLEASE IGNORE THE HR(AT)PHAS.UBC.CA EMAIL ADDRESS LISTED FOR APPLICATIONS.
IN ORDER TO ENSURE THAT YOUR APPLICATION IS RECEIVED AND REVIEWED, IT MUST BE UPLOADED TO THE UBC CAREERS WEBSITE: https://www.hr.ubc.ca/careers-postings/staff-s.php
This successful applicant will work with remote and on-site members of the CHIME team as a
programmer leading the development and automation of an HPC-based data acquisition system
for the CHIME radio telescope, operating 24/7 and located in the Okanagan Valley. This
- Traditional cluster-based scientific computing. Our pipeline is mostly Python with the
heavy lifting done in C or in numerical libraries (e.g. LAPACK)
- Management systems, e.g. tracking and moving data around (custom Python); keep
tracking of the telescope configuration (Python+MySQL backend, PHP frontend);
monitoring the telescope status (Prometheus and Grafana).
- High throughput streaming systems. This is the onsite real-time processing side and is
almost entirely C++ based.
Where exactly the developer spends their time will be determined by their strengths, interests
and where the most pressing needs are for the project, but a successful candidate will touch all of
the above at some point.
Tasks will include consulting with users, scientists and engineers to determine requirements and
specifications for data processing and storage, also the design, development, installation,
deployment, testing and maintenance of the software, and providing support to understand and
operate the system.
CHIME (chime-experiment.ca) is an exciting, cutting-edge experiment, and we are looking for a
skilled developer who is enthusiastic about science to strengthen our software team.
Reports to the UBC Investigators of the CHIME Project (Faculty, Professor) and to the Project
Manager of the CHIME Project. Also interacts with scientific staff and programmers on the
CHIME project at UBC, McGill University, University of Toronto and the Dominion Radio
The work environment is a Physics lab, a friendly and informal environment, with flexible
working hours. The team consists of skilled developers (staff and postdoctoral scientists with a
heavy software leaning), and physics graduate students, whom the new developer would help
CHIME will generate ~6 TB of data per second. The data must be mined in real time for
calibration and flagging purposes, and reduced, for storage, to a more manageable size. The
successful applicant will:
Maintain a development environment on a heterogeneous cluster used for scientific data
Work on automation of application deployment and configuration management (ansible)
Maintain and enhance existing data-quality monitoring framework for the overall
operation of the telescope
Design and develop testing and documentation procedures.
Develop procedures and methods for transfer of data from remote, and bandwidth
limited site, to Compute Canada.
Participate in weekly meetings to provide updates on project.
Design, develop, install and maintain systems for remote control and monitoring of the
HPC system and its associated infrastructure using web and mobile-based platforms.
CONSEQUENCE OF ERROR
Good technical judgement by the candidate will result in a well-maintained easy-to-use
instrument tuned to its scientific purpose. Good design decisions will result in well-written code,
with clear software implementation of algorithms, which is easy to test, enhance and maintain
Poor judgement can result in damage, lost observing time and sensitivity, delays and reduced
productivity for the entire collaboration.
Much of the work will be performed in a team environment. Overall supervision will come from
the UBC faculty members and the Project Manager (a UBC Scientific Engineer). The employee
will also be expected to interact constructively with his/her counterparts at UBC, McGill
University and the University of Toronto and the Dominion Radio Astronomical Observatory.
The applicant will not directly supervise anyone, though will need to work with UBC CHIME
research group members at all levels, and is expected to offer minor training to other members of
Undergraduate degree in a relevant discipline. Â¿ An undergrad degree in Computer Science or Computer Engineering preferred with two
years of relevant experience. Alternatively, a degree in Physics and Astronomy with
strong knowledge of computer programming and few years of relevant experience.
In depth understanding of Unix/Linux operating systems.
In depth experience with Python (essential)
Ability to work in a fast changing environment and to learn new tools and applications
quickly and independently.
Strong problem solving skills and attention to detail.
Database and web-based programming [bonus].
Experience with concurrent programming, in particular to run large scientific calculations
Experience in troubleshooting operational anomalies in HPC systems is an asset.
Good team player with strong focus on delivering results to meet the scientific needs.
Self-motivated and demonstrated ability to work on different projects concurrently and to
Excellent communication, organizational, and interpersonal skills in English (spoken and
C/C++ application development and maintenance. [bonus, not essential]
Python/C++ preferred, outfit. Knowing a strongly-typed compiled language,
and a modern scripting language (e.g. Python, Ruby... ) is a requirement. Minimum of two years experience or the equivalent combination of education and experience.
Equity and diversity are essential to academic excellence. An open and diverse community fosters the inclusion of voices that have been underrepresented or discouraged. We encourage applications from members of groups that have been marginalized on any grounds enumerated under the B.C. Human Rights Code, including sex, sexual orientation, gender identity or expression, racialization, disability, political belief, religion, marital or family status, age, and/or status as a First Nation, Metis, Inuit, or Indigenous person.
Job Type: Full-time
Salary: $61,840.00 to $74,238.00 /year
- Computer Programming: 2 years (Preferred)
- software development: 2 years (Preferred)