Role description
The Senior Software Engineer is a key technical leader and emerging people manager, responsible for driving the design, development, and delivery of high-quality software solutions across geoscience domains. This role blends deep technical expertise with leadership responsibilities, including being able to act as a Scrum Master, mentoring team members, and preparing for future people management roles.
The Senior Software Engineer contributes hands-on to front-end and/or back-end systems, with a strong focus on user experience, performance, and scalability. They help align strategic priorities with day-to-day development and teamwork and take ownership of part(s) of the delivery. They play a pivotal role in translating business and scientific goals into practical, maintainable software solutions.
Working within a cross-functional team, including subject matter experts, software engineers, testers, technical writers and product owners, the Senior Software Engineer helps deliver innovative, domain-integrated software. They lead by example in coding standards, foster a culture of collaboration and continuous improvement, and actively support the growth of junior software engineers.
Duties and Responsibilities
- Implement high-quality software solutions using modern development practices such as Test-Driven Development (TDD) and Domain-Driven Design (DDD).
- Facilitate Agile ceremonies.
- Work closely with the Product Owner to ensure the team delivers on the commitments made at the start of each sprint.
- Anticipate delivery risks by monitoring team progress and proactively identifying when sprint goals may not be met; communicate issues early and collaborate on mitigation strategies.
- Guide software engineers through code reviews, pair programming, and technical coaching.
- Collaborate with subject matter experts, software engineers, testers, technical writers and product owners to deliver user-centric, domain-relevant software.
- Drive continuous improvement in development practices, tooling, and team workflows.
- Maintain and enhance legacy systems, ensuring integration with modern platforms and data models.
- Begin taking on responsibilities related to team development, performance feedback, and onboarding—preparing for future people management.
Skills & Competencies
Technical Skills
· Profound proficiency in one or more of the tech stacks: C#, C++, JavaScript, Python.
· Strong understanding of software engineering practices including Test-Driven Development (TDD) and software design.
· Experience with Scrum and agile tooling.
· Fluency with the GIT version control system.
· Familiarity with CI/CD pipelines, and DevOps practices.
Soft Skills
· Strong leadership and facilitation skills.
· Excellent communication and interpersonal abilities.
· Ability and desire to mentor, inspire, and elevate team performance.
· Strategic thinking with a focus on long-term maintainability and scalability.
· Empathy, openness to feedback, and a growth mindset.
· Willingness to take initiative and contribute to team culture and cohesion.
· Ability to communicate clearly with both technical and non-technical audiences.
· Desire to mentor and lead within a team.
Qualifications & Requirements
Required:
· Bachelor (BSc) or master’s degree (MSc) in Computer Science, Software Engineering, Geophysics, Physics, Mathematics, or in a scientific field with strong affinity with software development.
· Minimum of 6 years of professional experience in software development.
· Proven proficiency in one or more of the following: C#, C++, JavaScript, Python.
· Demonstrated experience with Test-Driven Development (TDD) and software design.
· Familiarity with CI/CD pipelines, DevOps practices, and Git version control.
· Experience working in Agile/Scrum teams using tools like Jira or similar.
· Experience with cross-platform (Windows and Linux) development.
· Proficiency in written and spoken English.
Desired:
· Certified Scrum Master (CSM) or equivalent Agile certification.
· Experience with cloud platforms (e.g., AWS, Azure, GCP).
· Hands-on experience with virtual machines and Docker for containerized environments.
· Exposure to geoscience domains such as rock physics, petrophysics, or geology.
· Experience in a multinational or cross-functional team environment.
· Proficient in using AI-assisted code generation tools to accelerate development and improve code quality.
Travel
Occasional travel may be required for team meetings, conferences, or client engagements.


.png)
