Job Description

Title: Senior Developer: Mathematical Optimization Software

Location: Work from Anywhere

Classifications: Remote Full-Time

Posted by: Lauren Bogert

The Position

The optimization algorithms and APIs constitute the core value proposition of Gurobi Optimization. As a developer, you will help to extend and improve these. This requires a good understanding of the key algorithmic components of the solver, its overall design, as well as a detailed understanding of some of the major components. This forms the basis for proposing, implementing, and benchmarking new algorithmic ideas as well as developing efficient and easy to use APIs to access the power of the solver.

Our team is made up of sharp minds who are singularly focused on building, marketing, and supporting the most powerful optimization tool worldwide. We’re privately held and founded by three renowned experts in mathematical programming with an intriguing history. Gurobi’s vision is to spread the power of mathematical optimization across the globe, making it a tool for every complex decision. Our cutting-edge, proven artificial intelligence technology is consistently rated as the innovation leader in the marketplace. We are on an upward trajectory with steady and profitable growth between 20-40% year over year, proudly expanding our team across more than 10 different countries, all working remotely.

What you will be doing?

  • Develop and enhance algorithms for solving mathematical programming problems (LP, QP, QCP, MILP, MIQP, MIQCP, etc.).
  • Work closely with a small team of highly skilled software developers. The position will require significant collaborative work, as well as significant independent work.
  • Provide internal support, as needed, for our internal product support and marketing functions.
  • Develop test cases and product documentation as part of the process of creating and releasing new product capabilities.
  • Present new product features and capabilities at technical conferences and interact with product users.

What you should have?

  • Academic: PhD in Operations Research, Computer Science, or similar discipline; alternatively, a master’s degree in one of these fields and multiple years of practical experience in developing an LP or MIP solver
  • Work Experience: 5 years’ experience in developing a high performance mathematical programming solver in C or C++. *This could be a simplex algorithm, an interior point algorithm for convex or non-convex problems, or components of a MIP solver. It should be a solver that can be applied on a general problem class like LP, MIP, SOCP, NLP, MIQCP, or MINLP, and not only applicable to a specific application. You should have experience in implementing algorithms inside such a general solver, and not only in using a solver for a particular application.

Skills & Abilities:

  • Ability to understand, implement, and extend complex mathematical algorithms.
  • Experience with evaluating the performance and numerical robustness of a mathematical programming solver.

Specialized Knowledge:

  • 3 years of experience in programming in C.
  • Solid knowledge in computer science, including software design and parallel computing
  • *Other languages, including C++, Java, C#, Python, Matlab, R are a plus.