Job Summary
Job Title: Software Engineer
Positions: Senior Software Engineer, Team Lead
Staff Type: Permanent
Location: Abingdon, just outside London
Hybrid working: Available, ideally 3 days based in the office
Salary: Please get in touch; I will reply straight away with salary details (highly negotiable)
Must Have Skills
- Java, Eclipse RCP/SWT
- Strong problem‑solving abilities
- Clear communication skills
- Evidence of solving algorithmic problems
- Experience with large monolithic thick‑client applications and the differences from web‑based applications
Very Nice to Have
- Experience using AI in development
- Domain experience in Geophysics or another geoscience field
Subsurface Senior Java Application Developer
Responsibilities
- Collaborate closely with geophysicists, data scientists, and software engineers to translate scientific domain requirements into robust on‑prem or cloud software solutions.
- Design, develop, and maintain high‑performance applications for geophysical and geological data analysis, interpretation and visualization (e.g., seismic, horizon, fault, velocity model, etc.).
- Present architectural designs and technical proposals to the architecture review board.
- Break down development tasks and create clear implementation roadmaps.
- Implement and optimise computation algorithms.
- Design and develop thin and thick client applications that interact with cloud‑based microservices.
- Ensure high code quality through unit testing, code reviews, security hardening and continuous integration with other domain tools.
- Provide technical support and lead user troubleshooting sessions to resolve issues and ensure smooth operation of DSG application.
- Mentor junior developers and actively contribute to architectural and implementation decisions.
- Embrace Agile/Scrum methodologies, delivering and demonstrating working solutions at the end of each sprint.
- Stay current with emerging technologies and trends in geophysical computing and software development.
Required Education and Skills
- BS or MS degree in computer science, geoscience, applied mathematics, or a related engineering discipline.
- Minimum of 10 years experience in software development using Java.
- Ability to break down complex development tasks and define clear, actionable implementation roadmaps.
- Strong Java proficiency.
- Knowledge of C++ is a strong benefit.
- Proficiency with development tools and environments:
- GitLab, Eclipse RCP/SWT, VS Code, CI/CD pipelines.
- Performance tools: VisualVM, JMC/JFR, Async.
- Operating systems: Windows and Linux.
- Hands‑on experience using GitHub Copilot to accelerate code implementation and enhance development productivity.
- Must be self‑motivated and able to work well in a team environment.
Desired Experience
- Knowledge of geoscience software tools and formats:
- SEG‑Y, Landmark seismic BRICK, CMP, OpenVDS.
- DSG, Petrel, Kingdom, GeoFrame, or PaleoScan.
- Familiarity with cloud platforms and distributed computing:
- RESTful API design and implementation.
- AWS and Azure.
- Tools for scalable data processing: Kubernetes, Spark.
- Experience with Java 2D graphics and 3D OpenGL programming.
- Experience with scientific computing libraries and frameworks:
- Python: NumPy, SciPy, Pandas, TensorFlow (for ML/AI).
- C++/Java: CUDA (for GPU acceleration).
- Angular or React.
- Microservice frameworks: Quarkus, Spring Boot, AWS API Gateway.
- Docker, Kubernetes.
About the Company
NES Fircroft (NES) is the world’s leading engineering staffing provider across Oil & Gas, Power & Renewables, Chemicals, Construction & Infrastructure, Life Sciences, Mining and Manufacturing sectors, with over 80 offices in 45 countries.