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. Youll 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, with a strong emphasis on COM (Component Object Model) interop. 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 GUIs 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: Bachelors degree in Computer Science, Engineering, or a related field (or equivalent experience). Industry experience in a similar role with relevant technical responsibilities.