Software Engineer (C++/Linux Real-Time Systems) in London

Software Engineer (C++/Linux Real-Time Systems) in London

London Full-Time 50000 - 70000 £ / year (est.) No working from home possible
Defence

At a Glance

  • Tasks: Design and develop high-performance real-time software solutions using C++ in Linux environments.
  • Company: Join a leading tech company focused on innovative engineering projects.
  • Benefits: Competitive salary, professional development, and a supportive team culture.
  • Other info: Great opportunities for career growth and exposure to diverse technologies.
  • Why this job: Tackle complex challenges and work with cutting-edge technologies in a collaborative environment.
  • Qualifications: Strong C++ experience in Linux and knowledge of real-time systems required.

The predicted salary is between 50000 - 70000 £ per year.

The Opportunity

Are you an experienced Software Engineer with a passion for building high-performance, real-time systems? We are looking for a proactive and technically capable engineer to join a highly skilled development team responsible for designing, developing, integrating, and verifying advanced test and data capture systems. This is a hands-on role offering the opportunity to work on technically complex projects, developing software solutions that support the testing and validation of sophisticated, mission-critical technologies. You'll be part of a collaborative team of software and systems engineers tackling challenging engineering problems using modern development practices and cutting-edge technologies. This role offers excellent opportunities for professional growth across a broad range of products, platforms, and technologies.

What You'll Be Doing

As a Senior Software Engineer, you will play a key role in the development of real-time software solutions operating within Linux environments. Key responsibilities include:

  • Designing and developing real-time test and data capture software using C++ on Linux.
  • Integrating high-speed SFPDP cards into multi-channel data processing environments.
  • Architecting, developing, and maintaining scalable multi-threaded applications.
  • Implementing data sequencing, synchronisation, capture, and replay functionality.
  • Collaborating with hardware teams to ensure accurate timing and seamless hardware/software integration.
  • Leading and supporting integration, verification, and testing activities at both component and system level.
  • Performing performance analysis, debugging, troubleshooting, and optimisation of real-time systems.
  • Producing technical documentation including software architecture, interface definitions, and test procedures.

What We're Looking For

Essential Skills & Experience

  • Strong commercial experience developing software in C++ within Linux environments.
  • Knowledge and practical use of C# for tooling, interfaces, or supporting applications.
  • Experience developing real-time data processing systems.
  • Strong understanding of multi-threaded and concurrent programming concepts.
  • Experience working with low-level I/O, DMA, PCIe cards, or driver-level interfaces.
  • Experience developing sequencing frameworks, workflow engines, or state-machine-based execution systems.
  • Proven track record integrating and debugging complex software and hardware systems.
  • Strong understanding of software engineering best practices, memory management, and performance optimisation.
  • Experience using version control systems such as Git and familiarity with CI/CD practices.

Desirable Experience

  • Experience working with SFPDP (Serial Front Panel Data Port) technology.
  • Knowledge of FPGA-based data acquisition systems and synchronisation techniques.
  • Experience with Hardware-in-the-Loop (HWIL) environments, automated test rigs, or system test frameworks.
  • Exposure to Real-Time Operating Systems (RTOS) or real-time Linux extensions.
  • Experience using the LabVIEW suite of tools.

Why Join Us?

  • Work on technically challenging and innovative engineering projects.
  • Join a collaborative team of experienced software and systems engineers.
  • Gain exposure to a broad range of technologies including real-time systems, data acquisition, hardware integration, and advanced testing environments.
  • Be part of a supportive and inclusive culture that values innovation, continuous learning, and technical excellence.
  • Enjoy opportunities for professional development and career progression.

If you're a self-motivated Software Engineer who enjoys solving complex technical challenges and developing high-performance software solutions, we'd love to hear from you.

Software Engineer (C++/Linux Real-Time Systems) in London employer: Defence

As a Systems Engineer at our Bristol location, you will be part of a dynamic team dedicated to delivering cutting-edge training systems in a secure environment. We pride ourselves on fostering a collaborative work culture that encourages innovation and professional growth, offering extensive training and development opportunities to help you advance your career. Join us for a rewarding experience where your contributions directly impact the success of our projects and the safety of our nation.

Defence

Contact Details:

Defence Recruitment Team

StudySmarter Expert Advice🤫

We think this is how you could land Software Engineer (C++/Linux Real-Time Systems) in London

Join Local Tech Meetups

Get out there and mingle with fellow developers by joining local tech meetups. It’s a fantastic way to meet people who might be working at Defence or know someone who does. Plus, you can pick up some trendy tech skills and trends while you're at it!

Contribute to Open Source Projects

Show off your coding chops by jumping into open-source projects. Not only does this give you practical experience, but it also gets you noticed in the dev community. You'll create a killer portfolio that speaks volumes about your skills to Defence.

Tap into Online Developer Communities

Don’t underestimate the power of online developer communities like GitHub, Stack Overflow, and even Reddit. Participate in discussions, share your projects, and build your visibility. We can often find opportunities through these channels that can lead to a full-time gig at companies like Defence.

Explore Job Boards Specifically for Tech Roles

Keep your eyes peeled on job boards that focus on tech roles. Sites like TechCareers or Stack Overflow Jobs can often have listings for companies like Defence that might not show up on broader job sites. Make it a habit to check these regularly, and don’t hesitate to apply directly through our website!

We think you need these skills to ace Software Engineer (C++/Linux Real-Time Systems) in London

C++
Linux
Real-Time Systems
Multi-Threaded Programming
Data Processing Systems
Low-Level I/O
DMA

Some tips for your application 🫡

Show off your coding skills:When applying for a software engineering role, it's super important to showcase your coding skills. Make sure your CV includes your tech stack, any relevant programming languages you’re comfortable with, and examples of projects you've worked on. If you have a GitHub profile, link it up! We love to see code in action.

Tailor your portfolio:For a full-time role, we’d expect to see some solid examples of your work in your portfolio. Make sure to include at least two or three projects that highlight your problem-solving skills and your ability to work with different technologies. Focus on the projects that are most relevant to the position at Defence.

Craft a killer cover letter:Your cover letter is your chance to stand out—make it personal! Explain why you want to work at Defence and how your skills align with the role. Show us your passion for software development. We dig enthusiastic candidates who understand the value of collaboration and continuous learning!

Be clear and concise:When it comes to writing your CV and cover letter, clarity is key. Avoid jargon that could confuse us and stick to simple, direct language. Highlight your achievements with quantifiable results where possible, and keep everything easy to read. A well-organised application goes a long way!

How to prepare for a job interview at Defence

Brush Up on Your Coding Skills

For a full-time software engineering role, it's crucial that we stay sharp with our coding abilities. Expect technical questions that might involve solving problems on the spot or discussing algorithms. Practise on platforms like LeetCode or HackerRank to get comfortable with the types of questions that often come up.

Know Your Tools and Frameworks

Make sure we’re well-acquainted with the tools and technologies listed in the job description. Familiarise ourselves with any specific frameworks or programming languages mentioned. If Defence uses React or Node.js, for instance, be ready to discuss how we’ve used them in previous projects or coursework.

Showcase Your Projects

Bring along a portfolio that highlights our best work. This could be code samples, GitHub repositories, or any side projects we’ve built. Make sure we can talk through our thought process for each project, especially the challenges we faced and how we solved them—this shows our problem-solving skills in action.

Prepare for Behavioural Questions

While technical skills are key, full-time positions also require cultural fit. Be ready to discuss our previous experiences and how we handle teamwork, conflict, and deadlines. Brush up on the STAR method—Situation, Task, Action, Result—to clearly articulate our past experiences when discussing how we've contributed to a team.