Software Engineer

Title: Software Engineer (Client)

Reporting to: Lead Software Engineer

Travel: Occasional travel

Place of work: Head office, Uxbridge

The company

Wavestore’s truly independent open platform Video Management Software (VMS) enables users to achieve maximum return on investment from their security solution by unlocking its full potential.

Sitting at the very heart of a security system, Wavestore combines powerful ‘any source’ video, audio, data and recording management with deep integration across multiple technologies from a wide range of third-party technology providers. These include leading camera, video analytics, access control, intruder and other sensors and inputs, making it possible for users to effortlessly operate, monitor, control and manage a best-in-breed total security solution from a single screen.

Wavestore’s VMS is available in Base, Premium and Enterprise editions which can be supplied as software only or pre-installed on Wavestore’s own range of Network Video Recorders and Hybrid Video Recorders. Completely scalable and future-proof, Wavestore provides users with a choice for what they need today, safe in the knowledge that it can be easily expanded and upgraded in the future. Compatible with thousands of devices and fully ONVIF Profile-S conformant, Wavestore can satisfy the clear majority of applications as standard but can also quickly and cost effectively integrate specialist and bespoke devices cost-effectively and quickly using its in-house WaveStar integration service.

The role

As C++ Software Engineer, you’ll be an important part of a highly skilled and innovative development team responsible for designing, implementing and maintaining new and existing software applications that integrate with current and emerging video technologies.

Your role will primarily be to work on the client-side technologies of our Video Management Software (VMS) platform which is at the cutting edge of technology, used predominantly for integrated security solutions but increasingly being deployed across business intelligence and other exciting new applications. These technologies consist of a suite of core components, a collection of cross-platform desktop applications, and a mobile app, with further applications planned for the future to target different vertical markets.

With experience in agile and test driven development, you’ll be comfortable in planning and delivering new innovations in the core Wavestore products. Making the complex simple is at the core of our business and you’ll be instrumental in ensuring Wavestore can maintain its leading position in a world where ever-increasing integration across disparate devices needs to be managed effectively with emerging technologies, such video analytics and the Internet of Things (IoT), becoming increasingly important.

You’ll be able to use your ideas and skills to shape the direction of our product with supportive colleagues.      

The person

The ideal candidate will be an excellent communicator with enthusiasm to work in a complex software development environment. Working in a close-knit team, the candidate will be encouraged to participate in design discussions, requiring creativity as well as empathy when opinions differ.

Given the dynamic nature of the industry, a desire and enthusiasm to learn and work with new technologies is important.

The ideal candidate will have experience of:

·         Developing multi-threaded applications in modern C++11/C++14 on Linux and Windows

·         Object Oriented design principles and patterns

·         Scripting tools such as bash and Python

·         UI frameworks and technologies, preferably Qt5 and QML

·         Test driven development

Additionally, a degree (or equivalent) in an IT related subject would be beneficial, as would experience of the following:

·         git or similar DVCS

To apply for this position, please send a cover letter and CV to


Key Responsibilities

Achieving specific agreed KPIs
Scoping, planning and delivering new software features with a focus on innovation and differentiation ensuring the product remains an industry leader
Ensuring that the code is well documented, both within the code in the form of comments and API documentation, and outside the code to document the product's behaviour, usage and design
Writing unit tests and integration tests for any new functionality or bugs
Bug fixing using priorities set out in the bug tracking system
Committing code changes to the source control system ensuring that commits are well formed and well documented
Monitoring the continuous integration system to ensure the full product build is working well
Providing input to the strategic development plan
Balancing strategic development alongside day-to-day requirements
Adhering to company policy
Working to, and promoting, the core values of Wavestore