Senior Desktop Software Engineer
Senior Software Engineer (C# .NET, WPF, Desktop Applications)
Location: Derbyshire
Salary: £55,000 - £70,000 + Benefits
Overview
Senior Software Engineer to design, develop and maintain a high-performance desktop application platform used for real-time monitoring, control and data visualisation in industrial environments.
This role is ideal for an experienced engineer with strong expertise in C#/.NET and WPF, particularly in building responsive, real-time desktop applications. You will take ownership of the full software development lifecycle, from architecture and design through to release and ongoing optimisation.
Working closely with embedded, electrical and mechanical engineering teams, you will deliver a robust, scalable and safety-aware operator interface.
Key Responsibilities
Software Architecture & Development
Skills & Experience Required
Desirable Skills
Location: Derbyshire
Salary: £55,000 - £70,000 + Benefits
Overview
Senior Software Engineer to design, develop and maintain a high-performance desktop application platform used for real-time monitoring, control and data visualisation in industrial environments.
This role is ideal for an experienced engineer with strong expertise in C#/.NET and WPF, particularly in building responsive, real-time desktop applications. You will take ownership of the full software development lifecycle, from architecture and design through to release and ongoing optimisation.
Working closely with embedded, electrical and mechanical engineering teams, you will deliver a robust, scalable and safety-aware operator interface.
Key Responsibilities
Software Architecture & Development
- Design and maintain desktop application architecture using C# (.NET) and WPF (MVVM pattern)
- Develop high-performance, real-time software systems with a focus on responsiveness and reliability
- Implement clean, maintainable code following SOLID principles and Clean Architecture
- Apply common design patterns (MVVM, Factory, Observer, Strategy, Decorator, Dependency Injection)
- Develop Windows Services for background processing, monitoring and lifecycle management
- Build real-time data visualisation dashboards and charting tools for live system telemetry
- Implement structured logging, telemetry and reporting for compliance and diagnostics
- Manage local data storage using SQLite, including secure/encrypted data handling
- Develop and optimise high-performance networking using TCP/UDP protocols
- Handle real-time communication with multiple distributed devices/systems
- Implement asynchronous and concurrent data processing
- Design fault-tolerant systems, including failover and degraded-mode operation
- Work with IPv4/IPv6, multicast and unicast communication models
- Profile and optimise applications for CPU, memory and network performance
- Use tools such as Visual Studio Profiler, dotTrace, dotMemory and Wireshark
- Implement unit testing (xUnit/NUnit), TDD practices and code coverage
- Participate in code reviews and collaborative development workflows using Git
- Work in a trunk-based development environment with semantic versioning
Skills & Experience Required
- Degree in Software Engineering, Computer Science or equivalent experience
- Strong commercial experience in C#/.NET development (preferably .NET 6+)
- Proven expertise in WPF desktop application development using MVVM
- Experience building real-time, high-performance or data-intensive applications
- Strong knowledge of network programming (TCP/UDP, sockets, async I/O)
- Solid understanding of software architecture principles and design patterns
- Experience with performance profiling and optimisation
- Proficiency with Git and modern development workflows
- Experience with unit testing frameworks (xUnit, NUnit) and TDD practices
- Strong problem-solving, communication and collaboration skills
Desirable Skills
- Experience with industrial communication protocols (Modbus/TCP, RS232/RS422/RS485)
- Knowledge of Windows Services development
- Experience with SQLite and encrypted data storage
- Familiarity with data visualisation frameworks and UI styling (e.g. Material Design)
- Understanding of industrial systems or hardware-integrated software
- Ability to interpret electrical or mechanical engineering drawings