Skip to content

Senior Research - Optimization Solver

Vancouver, British Columbia49so8

Job description

Our team has an immediate permanent opening for an Senior Research.


  • Contribute to the design and development of a general-purpose optimization solver for linear programming, quadratic programming, second-order cone programming, nonlinear programming, and mixed-integer programming.
  • Develop efficient specialized solution methods by exploiting problem structure to improve solver performance on customers’ problem instances.
  • Contribute to inter-disciplinary research on using machine learning techniques for improving various solver components.
  • Transform customer demands into solver features, from defining, to implementing, to testing, to drafting documentation.
  • Participate in team-wide activities, such as technical discussions and code reviews.
  • Give presentations at internal and external conferences.

The base salary for this position ranges from $78,000to $168,000 depending on education, experience and demonstrated expertise.

Job requirements

What you will bring to the team:

  • Master or PhD degree in Operations Research, Computer Science, Computational Mathematics, or related fields.
  • Strong skills with linear algebra and optimization theory.
  • Knowledge of classical optimization algorithms, such as simplex algorithm, interior-point algorithm, branch-and-bound, column generation, decomposition techniques, meta-heuristic algorithms, and graph algorithms.
  • Solid experience with at least one programming language, such as C, C++, Fortran or Python.
  • Analytical approach to problem solving, and perseverance when facing difficult problems.
  • Experience of sparse matrix computation and hands-on experience of numerical linear algebra routines such as BLAS, LAPACK, PARDISO is an asset.
  • Experience with optimization solvers such as CPLEX and Gurobi is an asset.
  • Experience of contribution to open-source optimization solver projects is an asset.
  • Experience in concurrent/distributed/parallel computing and experience with OpenMP, MPI, CUDA, OpenCL, pThreads is an asset.