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.
FAQs
Congratulations, we understand that taking the time to apply is a big step. When you apply, your details go directly to the consultant who is sourcing talent. Due to demand, we may not get back to all applicants that have applied. However, we always keep your resume and details on file so when we see similar roles or see skillsets that drive growth in organizations, we will always reach out to discuss opportunities.
Yes. Even if this role isn’t a perfect match, applying allows us to understand your expertise and ambitions, ensuring you're on our radar for the right opportunity when it arises.
We also work in several ways, firstly we advertise our roles available on our site, however, often due to confidentiality we may not post all. We also work with clients who are more focused on skills and understanding what is required to future-proof their business.
That's why we recommend registering your resume so you can be considered for roles that have yet to be created.
Yes, we help with CV and interview preparation. From customized support on how to optimize your CV to interview preparation and compensation negotiations, we advocate for you throughout your next career move.
