Software Developer C++/C# Guildford, Surrey (Hybrid, 2 days per week onsite) Permanent, £45k-£60k per annum In this role you will be working for a well-established manufacturer of medical imaging devices. You’ll be developing code for beneficial products and will be part of an exceptionally friendly and highly skilled engineering team. Job Summary: We are seeking a skilled Software Developer with experience in C++ and C# development using Visual Studio 2019/2022. This role involves maintaining and developing applications that bridge managed and unmanaged code, integrating C# .NET applications with legacy or third-party COM components, and ensuring high performance and stability. Key Responsibilities: * Design, develop, and maintain applications in C++ and C# using Visual Studio 2019/2022. * Implement and maintain COM Interop between managed (.NET) and unmanaged (native C++) code. * Analyse and debug issues involving interop boundaries, memory leaks, and marshalling problems. * Develop and consume COM interfaces and ensure proper registration, activation, and lifecycle management. * Collaborate with other developers, testers, and product owners to deliver reliable, maintainable, and high-performance software. * Write and maintain clear technical documentation for interop designs, interfaces, and processes. * Participate in code reviews and enforce coding standards, particularly for interop safety and performance. Required Skills & Experience: * Strong proficiency in C++ (including COM development) and C# (.NET Framework). * Proven experience working with Visual Studio 2019/2022. * Development of GUI’s using WPF optionally (WinUI or other Windows GUI frameworks). * Solid understanding of COM fundamentals: interface definitions (IDispatch, IUnknown), reference counting, threading models, and COM registration. * Hands-on experience with P/Invoke, RCW/CCW, and .NET attributes for COM Interop ([ComVisible], [Guid], etc.). * Ability to analyse interop issues, including memory management, threading, and performance. * Experience integrating with or maintaining legacy Windows applications. Desirable Skills: * Experience with .NET Framework 4.x or .NET 6 migration. * Familiarity with ATL, MFC, or Win32 API. * Understanding of unit testing and automated builds for mixed-language projects. * Familiarity with tools such as Process Monitor, Dependency Walker, or WinDbg for low-level debugging. * Knowledge of software development best practices and Agile methodologies. Qualifications: * Bachelor’s degree in Computer Science, Engineering, or a related field (or equivalent experience). * Industry experience in a similar role with relevant technical responsibilities