Job Openings

C/C++ Software Engineer (Germany - Braunschweig)

About Us

GAMS is an established software company with a long track record in the field of mathematical optimization and sells products and services to more than 120 countries. We care about algebraic modeling and optimization and strive to provide the best possible optimization software and the best services for our customers. Our customers express their optimization problems using our algebraic modeling language GAMS and can choose from leading commercial and academic solvers to come up with optimal solutions to their complex decision problems in a wide range of industries and applications (energy systems modeling, macroeconomic analysis, environmental studies, production planning, and much more). We are a friendly and culturally diverse group of dedicated people from different countries who love creating quality software and helping customers formulate and solve their complex optimization problems. As a GAMS team member, you will benefit from a flexible and family-friendly work environment with a flat hierarchy and opportunities to learn and discuss your ideas with some of the brightest minds in the field.

Role

We are looking for a skilled and motivated C/C++ software engineer to be part of our solver development team. You will have the opportunity to participate in development activities at GAMS, particularly in the development of open-source solvers and solvers for nonlinear programming. Your first engagement will be the advancement of the open-source parallel interior-point solver PIPS-IPM++. This project aims to provide a robust, high-performance, user-friendly software package for the solution of large-scale block-structured linear optimization problems in a distributed environment (e.g., cloud computing).

Responsibilities

  • develop presolving methods for distributed-memory linear programs
  • improve numerical robustness and performance of PIPS-IPM++
  • investigate extensions to problems with convex quadratic objective function
  • provide PIPS-IPM++ as a user-friendly application (APIs, software packages) and in a cloud infrastructure
  • evaluate the solver on energy system optimization models (in collaboration with domain experts)
  • support other solver development activities at GAMS

Your Profile

Requirements

  • a master’s degree in mathematics (optimization, numerical analysis) or a related field
  • several years of experience in developing software for mathematical optimization
  • a strong understanding of C and C++
  • a good knowledge of linear programming and interior-point methods
  • English communication and collaboration skills

Beneficial skills

  • experience with automatic detection of block structures in optimization problems
  • experience with parallel distributed-memory software development (MPI)
  • experience in software testing and deployment (CI/CD)
  • experience with cloud infrastructure and containerization (Docker, Kubernetes, etc.)

Location

You will work closely with our teams of developers based in Berlin and Braunschweig, Germany, and also other locations in Europe and the US. Working from home or on-site in our Braunschweig office will be possible. There may also be the possibility to work in a GAMS office at Zuse Institute Berlin.

If you are interested in a job at GAMS, then please send an email to jobs-eu@gams.com with a link to a conclusive social media or online profile. Due to GDPR regulations, do not email us your personal information. If that is needed we will tell you how to transfer your data in a secure way.