Question existing methods when needed, analyze algorithmic bottlenecks and flaws, and propose improvements.
Participate in writing technical documents, including functional specifications and design documents.
Estimate time frames and resource requirements for development tasks in projects.
Provide technical support to clients and employees.
Work with customer-facing teams to understand customer needs and validate the feasibility of product commitments.
Perform other related duties as assigned.
Qualifications
BSc. (M.Sc. or Ph.D. is an asset) in Computer Science, Applied Mathematics, Operations Research, or another related field.
At least 3 years of experience in software development.
Experience developing software to solve large-scale, computationally intensive problems.
Understanding of mathematical optimization concepts, including Linear Programming (LP) and Mixed Integer Linear Programming (MILP).
Familiarity with optimization techniques and algorithms such as graph algorithms, shortest path, dynamic programming, or related methods.
Experience with C programming or another related low-level programming language.
Experience with the POSIX operating system and shell/Perl/Python scripting.
Asset: familiar with version control concepts.
Team oriented, results oriented, with strong customer focus.