Job Openings

We currently have the following openings:

GAMS Technical Sales Engineer (US)

The Role

We are seeking a Technical Sales Engineer to help spearhead our growth in the North American market. As a key team member, you will be responsible to ensure a smooth client experience from top-of-funnel sales engagements through proof of concepts and the final sale. You will develop the sales processes for the North American market in close collaboration with the GAMS sales team.

The Sales Engineer position is an entrepreneurial and cross-functional role that requires multiple skill sets and involves significant interaction with our prospective clients, as well as our internal sales and development teams. As a sales engineer, you combine technical knowledge, analytical thinking, project management, and product expertise. You will describe to potential customers the benefits of our software, and how it can help them achieve their goals faster and more efficiently. You are a good listener, communicate clearly both verbally and in writing, and will be responsible for setting great first impressions with our customers. You will work both remotely and on-site with customers, will evaluate the commercial and technical requirements of new sales opportunities, and develop solutions to meet the needs of prospects and clients.

Responsibilities

  • Present GAMS and Miro to prospects, customers, and partners by email and phone
  • Respond to commercial requests via email and phone
  • Be the commercial and technical point of contact for prospects and customers, throughout the sales process
  • Act as a liaison between the Sales, Support and Development teams
  • Attend and present new product features and capabilities at technical conferences, and interact with prospects and customers at such events
  • Provide training on the usage of GAMS and Miro
  • Develop and maintain domain-specific networks
  • Additional projects as assigned

Benefits

  • Onboarding with our sales and development team
  • Training with GAMS software products
  • Working with a small, international team, in a collegial atmosphere fostering new ideas and creativity
  • Close contact with an international network of clients and industrial/academic partners
  • Competitive salary with ample paid vacation and holidays
  • Full medical insurance
  • A 401(k) retirement savings program with a generous company match

Your Profile

Requirements

  • Solid scientific or technical background, e.g. Master or Ph.D. in Economics, Agriculture, Operations Research, Computer Science, or a similar technical discipline, but with a strong interest in commercial activities
  • Demonstrated experience in technical project management, business process development, and / or software development
  • Ability to interact with technical customers in a professional and confident way
  • Excellent oral and written communication skills in English
  • Experience in technical writing
  • Ability to balance multiple projects and roles
  • Ability to connect with all relevant stakeholders within an organization with the right message and level of detail

Beneficial Skills

  • Knowledge of GAMS (or any other modeling language) and optimization practice
  • Spanish language proficiency
  • Python, R (Shiny), MS-Excel

Location

We are flexible on work location, so long as the candidate can regularly support requests (email and phone) from customers in US time zones

Equal opportunity employer

GAMS Development is an Equal Opportunity Employer committed to engaging a diverse workforce and sustaining an inclusive culture. All qualified applicants will receive consideration for employment without regard to race, color, religion, sex, sexual orientation, gender identity, national origin, disability, or veteran status.

To apply, please send your resume to jobs-us@gams.com

Working student (approx. 10 hours per week) - R / Shiny programming (data visualization)

Job Description

We are looking for a motivated, capable, and reliable, home-office based working student (m / f). The working hours are about 10 hours per week with the opportunity to work more hours during semester break.

Your task will be the development of additional custom renderers using R / Shiny (based on customer GAMS models) to be used in our new deployment system GAMS MIRO. GAMS MIRO supports the rapid creation of interactive, web-based presentations of GAMS models. It allows custom renderers to display model data that does not fit regular charting facilities.

Before applying please have a look at the example problems below and visit our documentation of the interfaces between MIRO and R Shiny to learn more: https://www.gams.com/miro/charts.html#custom-graphics and https://www.gams.com/miro/customize.html#custom-renderers.

Requirements for Consideration

  • Studying for a degree in mathematics, computer science, economics, financial mathematics, or the natural sciences
  • Experience in programming with R. Additional experience with Shiny will be beneficial.
  • Flexibility and strong communication skills in a distributed team environment
  • Very good English language skills

To apply, please send your short resume and your answers to the example problems to to FNelissen@gams.com

Some Example Problems

library(dplyr)
library(jsonlite)

########### # 1. find all flowers in the iris dataset with Petal.Length larger than 6 ###########

########### # 2. get the average petal length for each Species ###########

########### # 3. plot the average petal length for each species (you may use any plot type/tool you want) ###########

configRaw <- fromJSON('{ "min": 1, "max": 5, "step": 0.1, "default": 2 }') configRaw2 <- fromJSON('{ "min": 1, "max": 5, "step": 0.1 }')

changeDefault <- function(configRaw){

########### # 4. complete this function so that the following tests pass ########### } if(!identical(changeDefault(configRaw), list(min = 1L, max = 5L, step = 0.1, default = 5L))){ stop("Test for configRaw failed") } if(!identical(changeDefault(configRaw2), list(min = 1L, max = 5L, step = 0.1))){ stop("Test for configRaw2 failed") }

########### # 5. assign a data structure to "var" so that the following test passes ########### var <- fun <- function(el) { el$new <- 1L return(invisible("string")) } fun(var) if(!identical(var$new, 1L)){ stop("var$new not identical to 1") }