C++ Developer
Senior C++ Developer (High-Performance Scientific Software)
Overview
We are supporting a globally recognised scientific software organisation that develops cutting-edge, high-performance desktop applications used within advanced microscopy, materials science, and research-driven environments. Their software platforms are widely adopted by leading laboratories, research institutes, and industrial R&D teams to support critical analysis, imaging workflows, and precision measurement tasks.
As demand for their platform continues to grow-driven by increased adoption across both academic and commercial sectors-the team is investing heavily in the evolution, optimisation, and long-term scalability of its core product suite.
To support this growth, they are looking to engage an experienced C++ Developer with strong expertise in modern C++ and desktop application development. This individual will play a key role in contributing to both the forward roadmap of the product (feature innovation, scalability improvements) as well as the stabilisation and optimisation of an existing, complex, long-lifecycle codebase.
You will join a highly skilled but currently capacity-constrained core engineering team. This creates an opportunity for immediate impact, ownership, and technical influence-particularly in improving delivery velocity, code quality, and maintainability standards across the platform.
This role is ideally suited to engineers who enjoy working at the intersection of performance-critical systems, deep technical problem solving, and high-quality software engineering practices, within a structured and intellectually stimulating environment.
Role Context & Impact
The core product you will be working on has evolved over many years and represents a highly sophisticated system used in mission-critical scientific workflows. As such, the engineering challenges are unique and multifaceted, including:
- Maintaining and evolving a mature codebase with a long operational lifespan
- Balancing feature innovation with system stability and reliability
- Supporting high-performance requirements in data processing and rendering
- Ensuring software quality in environments where precision and correctness are essential
- Collaborating across distributed teams with shared ownership of complex systems
Given the reduced team size, the successful candidate will quickly become a key contributor, helping to:
- Accelerate delivery timelines
- Strengthen engineering best practices
- Improve system robustness and maintainability
- Reduce technical debt
- Enhance developer workflows and tooling
Key Responsibilities
Software Development & Engineering
- Design, develop, and maintain desktop applications using Modern C++ (C++20)
- Implement new features aligned with product and customer requirements
- Enhance and refactor existing code to improve performance, readability, and maintainability
- Work across the full software development lifecycle, from requirements through to deployment and support
- Contribute to performance optimisation, including memory management and efficient algorithm design
- Identify and resolve defects, bottlenecks, and stability issues in a complex system
Architecture & System Design
- Collaborate with senior engineers and architects to define and evolve system architecture
- Contribute to design decisions that balance scalability, maintainability, and performance
- Ensure adherence to strong software design principles (e.g., SOLID, modularity, separation of concerns)
- Evaluate and propose improvements to existing architectural approaches
- Participate in technical discussions, design reviews, and code reviews
Quality & Testing
- Develop and maintain robust unit tests and automated testing frameworks
- Ensure high standards of code quality through testing, documentation, and peer review
- Contribute to improving overall test coverage and reliability of the application
- Support integration testing and validation processes across components
- Advocate for best practices in quality engineering and continuous improvement
Build Systems & Tooling
- Work within structured build environments using CMake and Conan
- Maintain and improve build pipelines to ensure consistency and reliability
- Troubleshoot and resolve build-related issues across different environments
- Contribute to dependency management and packaging strategies
CI/CD & DevOps Collaboration
- Support and enhance CI/CD pipelines to enable efficient and reliable software delivery
- Collaborate with DevOps teams to improve automation, build stability, and deployment workflows
- Participate in efforts to reduce cycle times and improve release cadence
- Ensure consistent development practices across distributed teams
Cross-Team Collaboration
- Work closely with distributed engineering teams across Europe
- Collaborate with product managers, QA engineers, and domain experts
- Communicate effectively in a cross-functional, international environment
- Share knowledge and mentor less experienced engineers where appropriate
Technical Environment
The team operates within a modern and structured development ecosystem, including:
- Programming Language: C++20 (Modern C++)
- IDE/Platform: Visual Studio
- UI Framework: Qt (desktop application development)
- Build Systems: CMake, Conan
- Testing: Unit testing frameworks and automated integration testing
- DevOps: CI/CD pipelines, automated builds, and deployment workflows
- Version Control: Git-based workflows (or equivalent)
This environment emphasises engineering discipline, code quality, and long-term maintainability, making it ideal for developers who value structured, methodical development practices.
Requirements
Core Experience
- 5-10+ years of commercial experience in C++ software development
- Proven track record of working with Modern C++ (C++11/14/17/20) in production environments
- Strong experience in developing desktop applications, ideally with Qt
- Experience working on complex, large-scale, or long-lifecycle software systems
- Demonstrated ability to contribute within structured, quality-driven engineering environments
Technical Skills
- Deep understanding of C++ fundamentals, including memory management, concurrency, and performance optimisation
- Hands-on experience with Qt for UI development (desirable but not essential)
- Familiarity with CMake and/or Conan for build and dependency management
- Experience implementing and maintaining unit tests and automated testing frameworks
- Understanding of CI/CD practices and modern DevOps workflows
- Strong debugging and problem-solving capabilities
Software Engineering Practices
- Solid understanding of software design principles and patterns
- Experience writing clean, maintainable, and well-documented code
- Strong appreciation for testing, code quality, and technical debt management
- Experience working in environments with defined standards and processes
Domain Experience (Advantageous)
- Experience within scientific software, imaging systems, or data-intensive applications
- Exposure to regulated or quality-controlled environments (e.g., medical devices, engineering, scientific tools)
- Experience working with performance-critical or hardware-integrated applications
Soft Skills & Attributes
- Strong analytical and problem-solving mindset
- Ability to work independently while contributing to a collaborative team
- Excellent communication skills in English (written and spoken)
- Comfortable working in distributed, cross-border teams
- Proactive approach to identifying issues and driving improvements
- Detail-oriented with a strong focus on quality and precision
Why Join
This is an opportunity to work on a highly specialised, technically challenging product that has real-world impact in scientific and research domains.
Key benefits of the role include:
- Ownership and influence within a critical, understaffed engineering team
- Exposure to complex, high-performance software systems
- Opportunity to shape architecture and engineering standards
- Work in a domain where precision, quality, and innovation truly matter
- Collaborative environment with highly skilled technical professionals
- Long-term product lifecycle offering stability and depth of engineering challenges
Ideal Candidate Profile
The ideal candidate is a seasoned C++ engineer who:
- Thrives in complex, mature systems rather than greenfield-only environments
- Enjoys balancing feature development with system stabilisation
- Has strong opinions on code quality, testing, and maintainability
- Is comfortable navigating large codebases and improving them incrementally
- Can operate effectively in environments where impact is immediate and visible
Summary
This role represents a compelling opportunity for an experienced C++ developer to step into a high-impact position within a globally respected scientific software environment. You will contribute to both the immediate needs of a stretched engineering team and the long-term evolution of a sophisticated product.
If you are passionate about modern C++, performance engineering, and building robust, long-lived software systems, this position offers both the technical challenge and the strategic influence to take your career to the next level.
