Software Engineer
Indexed description
Software Engineer (Java)
Abingdon - 3 days a week
Overview
We are seeking a Java Software Engineer to join a team building complex desktop applications used in a highly technical and scientific environment. The role focuses on developing robust, high-quality software using Java, with a strong emphasis on desktop application development and frameworks such as Java RCP and Eclipse RCP.
You will work on challenging engineering problems alongside subject matter experts, contributing to software used by geoscientists and engineers to interpret and analyse complex data. Strong Java skills and experience with desktop application development are essential, while C++ is a nice-to-have.
This role would suit either an experienced software engineer or a high-potential early-career developer with strong academic ability, particularly in mathematics or a related technical discipline, and a genuine interest in building sophisticated technical software products.
Key Responsibilities
- Design, develop, test, and maintain high-quality desktop software applications using Java and related technologies
- Contribute to the ongoing development and enhancement of complex technical software products used by scientists, engineers, and domain specialists
- Collaborate with product managers, software engineers, UX designers, and subject matter experts to deliver new features and improvements
- Analyse complex technical problems and develop robust, scalable, and maintainable software solutions
- Participate in all stages of the software development lifecycle, including requirements gathering, design, implementation, testing, deployment, and support
- Develop intuitive and efficient user-facing functionality within desktop application environments such as Java RCP and Eclipse RCP
- Write clean, well-structured, and thoroughly tested code that aligns with engineering best practices
- Troubleshoot, debug, and resolve software defects and performance issues
- Contribute to software architecture discussions and help drive continuous improvements in code quality, development processes, and tooling
- Work closely with technical and non-technical stakeholders to understand business requirements and translate them into effective software solutions
- Support the modernisation and evolution of existing software platforms while ensuring stability and reliability
- Participate in peer code reviews and knowledge-sharing activities to support team development and maintain high engineering standards
- Stay up to date with emerging technologies, development methodologies, and industry best practices
- For more experienced candidates, provide technical guidance and mentorship to junior team members and contribute to technical decision-making
- Develop an understanding of the scientific and technical challenges faced by customers and help build solutions that address complex real-world problems
Required Skills & Experience
- Commercial experience developing software applications in Java
- Strong understanding of object-oriented programming principles and software design patterns
- Experience developing and maintaining desktop applications
- Experience with Java RCP, Eclipse RCP, SWT, OSGi, or similar desktop application frameworks
- Ability to write clean, maintainable, and well-tested code
- Strong problem-solving and analytical skills
- Experience working within Agile software development environments
- Excellent communication and collaboration skills
Desirable Skills & Experience
- Experience developing scientific, engineering, geospatial, GIS, CAD, modelling, simulation, or data-intensive software applications
- Knowledge of geoscience, geology, geophysics, reservoir engineering, or related technical domains
- Experience working on complex desktop software products used by technical or scientific end users
- Exposure to cloud technologies and modern software development practices
- Experience with C++ development (beneficial but not essential)
Education & Background
- Degree in Computer Science, Software Engineering, Mathematics, Physics, Engineering, Geoscience, or a related technical discipline
- Candidates with strong mathematical backgrounds, including calculus, geometry, statistics, numerical methods, or data analysis, are particularly encouraged to apply
- We welcome applications from both experienced software engineers and high-potential graduates or early-career professionals who can demonstrate strong academic achievement and a genuine passion for software development
Create a free Caio profile to unlock more results and save your role and location preferences.
Unlock free search