Responsibilities:
Modifying software to fix errors, adapt it to new hardware, improve its performance, or upgrade interfaces.
Directing software programming and documentation development.
Consulting with departments or customers on project status and proposals.
Working with customers or departments on technical issues including software system design and maintenance.
Analyzing information to recommend and plan the installation of new systems or modifications of an existing system.
Designing and developing software systems using scientific analysis and mathematical models to predict and measure outcomes and design consequences.
Preparing reports on programming project specifications, activities, or status.
Parallelization of existing software as well as new.
Requirements:
Bachelor’s degree in computer science or related degree.
Minimum 2-3 years of experience in developing software.
Knowledge of the software development life-cycle.
The desire to work in a fast-paced environment.
Ability to develop unit testing of code components or complete applications.
Creativity is always a plus.
Must understand the concepts of software engineering.
Experience working on a variety of software development projects.
Experience using CUDA in a GPU development environment is an asset
Experience with parallel programming, hyperthreading, ideally CUDA C/C++/Python
Strong mathematical skills with knowledge/interest in machine learning, artificial intelligence, advanced statistics, parallel computing, and operations research.