Mathematical Optimization Quality Assurance (MOQA) Engineer

Gurobi Optimization Logo

Gurobi Optimization

๐Ÿ“Remote - United States, Germany

Summary

Join Gurobi Optimization as a Mathematical Optimization Quality Assurance (MOQA) Engineer and collaborate with R&D and IT teams to enhance and maintain the continuous integration and testing environment for the Gurobi Optimizer. You will develop domain-specific tests, monitor test execution pipelines, and contribute to the Optimizer's codebase, focusing on automating tests using software APIs and ensuring mathematical correctness and numerical accuracy. The role involves managing and enhancing the CI/CD environment, designing and implementing tests for various optimization areas, collaborating with the development team, and troubleshooting issues. You will leverage on-premise compute infrastructure and occasionally utilize cloud infrastructure. The position requires close collaboration with development and IT teams to align testing efforts with product development goals and quality standards. You will also participate in team discussions to improve testing methodologies and tooling, upholding the highest quality standards for the GurobiOptimizer.

Requirements

  • Master's degree or equivalent in Mathematics, Scientific Computing, or Engineering
  • Background in mathematical optimization software with a minimum of 3 years of experience
  • Strong knowledge of mathematical programming, particularly in linear and integer programming
  • Strong understanding of unit testing methodologies
  • Proficiency in Python and proficiency in at least one other programming language
  • Familiarity with GNU toolchain (make, gcc/g++, etc.) and the standard Unix development environment
  • Proficiency in both written and spoken English
  • Excellent communication skills

Responsibilities

  • Manage and enhance the continuous integration and testing environment for the Gurobi optimization engine
  • Ensure the infrastructure supports efficient and reliable testing across multiple platforms and programming languages
  • Design and implement domain-specific tests for mathematical optimization areas such as mixed-integer, linear, and nonlinear optimization
  • Collaborate with the development team to validate our internal algorithms' mathematical and numerical correctness
  • Oversee and optimize test execution pipelines to ensure timely feedback on code changes and feature development
  • Troubleshoot and resolve issues related to test failures or performance bottlenecks
  • Evolve into a key contributor to the Gurobi Optimizer codebase
  • Collaborate with development team to maintain high code quality and ensure sufficient code coverage for existing and new features
  • Leverage on-premise compute infrastructure for testing purposes, focusing on software APIs and algorithmic correctness
  • Occasionally utilize cloud infrastructure for CI/CD tasks, ensuring seamless integration and reliability
  • Work closely with the development and IT teams to align testing efforts with product development goals and quality standards
  • Participate in team discussions and initiatives to improve testing methodologies and tooling
  • Uphold the highest quality standards for the GurobiOptimizer, ensuring robustness, performance, and reliability

Preferred Qualifications

  • PhD in Mathematics, Operations Research, or a related field
  • Proficiency in C, C++, Java, .NET, MATLAB, R, and bash scripting
  • Familiarity with CI/CD tools such as Jenkins, Nexus, and others
  • Experience with virtualization and containerization tools like VMware, Parallels, Docker, and Kubernetes (K8s)
  • Intrinsic motivation to learn Continuous Integration/Continuous Deployment (CI/CD)
  • Familiarity with typical GitHub-based development processes
  • Proficiency in debugging tools like gdb, pdb, and valgrind
  • Familiarity with Windows, Linux and macOS operating systems

Share this job:

Disclaimer: Please check that the job is real before you apply. Applying might take you to another website that we don't own. Please be aware that any actions taken during the application process are solely your responsibility, and we bear no responsibility for any outcomes.