Job Title:
Software Engineer
Positions:
- Senior Software Engineer
- Team Lead
Employment Type:
Permanent Staff Positions
Location:
Abingdon, just outside London
Hybrid Working:
Hybrid working available, ideally 3 days based in the office
Salary:
Please get in touch and 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 understanding differences from web‑based applications from an engineering perspective
Very Nice to Have:
- Experience with using AI in development
- Domain experience (Geophysics or another geoscience related field)
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 lay out clear implementation roadmaps.
- Implement and optimise computation algorithms.
- Design and develop both 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 of experience in software development using Java.
- Ability to break down complex development tasks and define clear, actionable implementation roadmaps.
- Strong Java proficiency.
- C++ knowledge and experience (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 but able to work well in a team environment.
Desired Experience:
- Knowledge with 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