Back to jobs
Software Developer (Fortran, background in Math)
Successfully
Req. VR-121512
One of the world's largest providers of products and services to the energy industry has a need to develop and support enterprise information system in Oil & Gas domain.
We are looking for a Software Engineer to contribute to the development of a global optimization capability for petroleum surface networks within the NEXUS reservoir simulator.
This role is product-focused and centers on building, integrating, and hardening a Bayesian Optimization (BO)–based engine that complements the existing gradient-based GRG optimizer. The feature enables reservoir and production engineers to identify more robust and globally optimal well control strategies—such as gas-lift allocation and choke settings—when dealing with highly non-linear and multimodal network behavior.
You will work as part of a product engineering team, collaborating closely with domain experts, QA, and platform engineers to deliver maintainable, performant, and user-ready functionality into a production-grade simulator.
What You’ll Work On:
Implement and integrate Bayesian Optimization workflows within the existing NEXUS surface network optimization framework
Develop and maintain Gaussian Process–based surrogate models used during optimization runs
Integrate acquisition functions that support reliable decision-making across challenging objective landscapes
Implement initial sampling strategies to ensure stable and repeatable optimization outcomes
Contribute to performance tuning, memory efficiency, and parallel execution in large simulation workloads
Improve code robustness, testability, and maintainability in a long-lived product codebase
Must have
Programming & Implementation:
Fortran 90/95:
Experience working with modules, allocatable arrays, and structured Fortran code
Ability to modify and extend existing numerical code responsibly
Numerical Computing:
Numerical linear algebra fundamentals
Practical use of Cholesky decomposition and triangular solves
Experience using LAPACK routines
Awareness of numerical stability and basic conditioning issues
Optimization & Modeling:
Gaussian Process regression (practical level):
Understanding of GP concepts (mean, covariance, kernels)
Ability to implement or adapt GP prediction code with guidance
Bayesian Optimization concepts:
Familiarity with acquisition functions such as Expected Improvement (EI) and Upper Confidence Bound (UCB)
Understanding of exploration vs. exploitation from a user-outcome perspective
Sampling & Experiment Design:
Latin Hypercube Sampling (LHS)
Experience implementing or using space-filling designs for initial parameter exploration
Product & Engineering Expectations:
Focus on reliability, usability, and repeatability rather than experimental novelty
Write clear, maintainable code aligned with existing platform standards
Ensure features behave predictably across a wide range of customer models
Collaborate with QA and support teams to diagnose and resolve field issues
Be mindful of performance, memory usage, and MPI execution constraints
Nice to have
Exposure to reservoir simulation or production optimization domains
Experience working on large, long-lived scientific software products
Familiarity with user-facing configuration workflows or optimizer settings
Languages
English: C1 Advanced
Seniority
Regular
Belgrade, Serbia
Req. VR-121512
Other System Languages
Cross Industry Solutions
31/03/2026
Req. VR-121512
Apply for Software Developer (Fortran, background in Math) in Belgrade
*Indicates a required field