Senior Software Engineer - Abingdon, Oxfordshire - Permanent
Hybrid 3 days on site, 2 days remote
Requirements
- 5+ years of professional software engineering building & shipping complex, production grade applications - not solely scripting, prototyping, or research.
- Strong proficiency in C#/.NET; also C/C++; demonstrated ability to work across both languages in a single product ecosystem.
- Undergraduate (or higher) degree in Computer Science, Software Engineering, or a closely related engineering discipline.
- Any Eclipse RCP or IDE's nice to have.
- Comfort & curiosity with AI assisted development tools & a track record of staying ahead of technology trends.
- Experience with cloud architecture (AWS, Azure, &/or Google Cloud).
- Proven experience with software engineering fundamentals: object oriented & component based design, design patterns, unit/integration testing, version control (Git), & code review workflows.
- Hands on CI/CD experience - building, configuring, or maintaining automated build & deployment pipelines.
- Experience modernizing legacy software - migrating codebases from older languages or frameworks to current platforms, including UI/UX modernization.
Senior Software Engineer Job Duties
This is a hands on software engineering role. My client is looking to recruit an experienced Senior Software Engineer to design, develop, & modernize high performance Rock Physics desktop & cloud applications. Reporting to the Team Lead & working closely with the Product Owner, you will own the technical direction of production software - writing code daily, reviewing pull requests, & driving architectural decisions.
Senior Software Engineer Key Responsibilities
- Design & build software - Architect, implement, & maintain complex desktop & cloud applications using modern software engineering practices (design patterns, SOLID principles, automated testing, continuous integration/delivery).
- Modernize legacy systems - Lead migration of mature C/C++ codebases to modern languages, runtimes, & UI/UX frameworks while preserving scientific accuracy & performance.
- Leverage AI assisted development - Actively adopt AI powered tools (e.g., Copilot, code generation, automated testing assistants) to accelerate delivery & improve code quality.
- Collaborate on architecture - Partner with the Team Lead & Product Owner to translate requirements into sound, maintainable technical solutions the team can implement & iterate on.
- Mentor & lead technically - Coach junior & mid level developers through code reviews, pair programming, & knowledge sharing; foster a culture of engineering excellence.
- Communicate clearly - Escalate risks, trade offs, & progress in a timely, structured manner to technical & non technical stakeholders.
- Stay current - Continuously evaluate & adopt emerging languages, frameworks, cloud services, & AI/ML tooling relevant to the product.
Self motivated & collaborative; thrives in a team environment & takes initiative without direction. Excellent analytical, communication, & problem solving skills.