University of British Columbia Software Developer – Skin Simulation Part Time in Vancouver, BC

University of British Columbia

Branch Vancouver BC CA

Software Developer – Skin Simulation
Vancouver, BC

It requires developing and refining requirements with Dr. This job function helps support users of the software….

To design, implement and test software systems to support research in fast and robust numerical simulation of skin.

Organizational Status

The developer will interact with staff and graduate students in the Sensorimotor Systems Laboratory in the Department of Computer Science. The developer will report to Dr. Dinesh Pai, a faculty member in the Department of Computer Science.

Work Performed

Major responsibilities include:

– Developing new functionality and evolving existing functionality as part of a software project. This job function provides scientific computing infrastructure for an NSERC Idea-to-Innovation grant. It requires developing and refining requirements with Dr. Pai, designing and implementing software to fulfill the requirements using existing frameworks and infrastructure and testing for correctness and robustness.

– Investigating the use of existing technologies. This job function provides input into decisions made for the software development described above. This includes use of state-of-the-art algorithms for scientific computing, especially involving numerical linear algebra and geometric computing. This investigation is based on web searches, reading relevant papers and theses, evaluating demo copies of technologies and systematically comparing features between technologies.

– Analyzing software performance. This job function enables good design decisions for the software development to be undertaken and also generates research results. This job function requires writing software that takes advantage of high performance graphics processing units (GPUs) and using profiling tools such as NVIDIA’s NSight.

– Developing application programming interfaces. This job function is part of ensuring that the software developed is usable. It involves interacting with potential users of the software and other parts of the team that will be developing plug-ins for modeling and animation tools such as Autodesk Maya.

– Providing training, presentations and consultations. This job function helps support users of the software. This job function requires verbal and technical skills to describe how to use the software, the development of written documentation of the software code, tutorials and the use of Powerpoint.

All of these job functions are done to further the research and development efforts of the group led by Dr. Dinesh Pai.

Supervision Received

This position reports to Dr. Dinesh Pai. The supervisor will meet with the developer as needed to specify high level objectives. The supervisor will also read and comment on progress described electronically.

Supervision Given


Consequence of Error/Judgement

This position requires judgement in the functionality required in the software developed, how that functionality is designed and implemented, in the technologies used in development (including licensing agreements, etc.) and in how the work is presented to those outside the research laboratory in which the work is conducted.

The developer will need to be responsible in making requirements, design and implementation decisions, in deciding how to communicate with others in the laboratory. Since the software library to be developed is to be licensed by UBC to industry, the developer will maintain the confidentiality of all software associated with this project and ensure that the software and algorithms are not disclosed to unauthorized entities.

Inappropriate judgement could have several negative consequences, including slowing the research work of the laboratory, and degrading the profile/success of the project and its ability to produce software that can be licensed as required by the funding source.


Undergraduate degree in a relevant discipline. Prefer B.Sc. degree in Computer Science, Mathematics, or Physics, or equivalent. Minimum of two years experience or the equivalent combination of education and experience. significant programming experience and accomplishments. Knowledge of scientific computing and numerical linear algebra very important.
Experience with programming in C++ and Matlab.significant programming experience and accomplishments. Knowledge of scientific computing and numerical linear algebra very important.
Experience with programming in C++ and Matlab. Ability to work both independently and within a team environment.

UBC hires on the basis of merit and is strongly committed to equity and diversity within its community. We especially welcome applications from visible minority group members, women, Aboriginal persons, persons with disabilities, persons of minority sexual orientations and gender identities, and others with the skills and knowledge to productively engage with diverse communities. All qualified candidates are encouraged to apply; however Canadians and permanent residents will be given priority.

or proceed with Standard Application Form.

Employment Type: Part Time
Location: Vancouver, BC, CA
Posted on: 2015-09-23
Posted by: