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
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) Desktop & Backend Functionality
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 Networking & Real-Time Systems
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 Performance & Quality
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