Senior Software Engineer (Onboard Services)

Senior Software Engineer (Onboard Services)

Full-Time 63000 - 77000 £ / year (est.) On-site
U

At a Glance

  • Tasks: Design and build software for uncrewed vehicles, focusing on autonomy and reliable operation.
  • Company: UFORCE, a cutting-edge defence-technology company based in London.
  • Benefits: Competitive salary, health benefits, and opportunities for professional growth.
  • Other info: Dynamic work environment with innovative projects and career advancement opportunities.
  • Why this job: Join a mission-driven team making a real impact in defence technology.
  • Qualifications: 7+ years in software engineering with strong Python skills and security-first mindset.

The predicted salary is between 63000 - 77000 £ per year.

UFORCE exists to make aggression unaffordable. Founded in Ukraine and headquartered in London, UFORCE is a defence-technology company with operations across Europe, the United States and Asia. UFORCE builds uncrewed vessels, ground robotics and aircraft, autonomy software, and the command-and-control layer that operates them together. Each platform is deployable on its own, and stronger as part of the system. Its product lines include the MAGURA family of uncrewed surface vessels, the NEMESIS family of strike platforms, the LIUT family of ground robotic platforms, and counter-UAS systems.

About the role

The Senior Software Engineer (Onboard Services) will design, build, and operate the software services that run on UFORCE’s uncrewed vehicles — spanning video streaming, telemetry, autonomy integration, vehicle control, health monitoring, navigation, and device integrations. You will turn independently evolved services into one secure, testable, and maintainable onboard platform. This is a hands-on software engineering role focused on production Python services, service architecture, messaging, and reliable operation on constrained Linux hardware, including Raspberry Pi, x86, and NVIDIA Jetson. You will also own the boundary between the vehicle and the backend: clear, versioned contracts with cloud services, deployment systems, video infrastructure, and operator interfaces that work over intermittent, low-bandwidth links. Working with backend, autonomy, hardware, QA, and field teams, you will make releases predictable and catch failures on the bench, not in the field.

What you’ll do

  • Define and evolve a unified onboard service architecture: service boundaries, messaging, configuration, startup ordering, readiness, watchdogs, and graceful degradation when dependencies or devices are unavailable.
  • Build and migrate production services to shared patterns, using reusable libraries and a reference service template covering project structure, packaging, logging, health reporting, and lifecycle management.
  • Standardise local service communication around NATS, with clear rules for integrating MAVLink, ZMQ IPC, and HTTP where appropriate.
  • Design stable, versioned vehicle-to-backend contracts for telemetry, commands and acknowledgements, video metadata and control, configuration, health, and logs.
  • Engineer for unreliable connectivity: buffering and store-and-forward, idempotent commands, explicit acknowledgements and timeouts, reconnection, back-off, and safe behaviour when the backend is unreachable.
  • Implement secure-by-default services: least-privilege identities and messaging permissions, mutually authenticated and encrypted backend links, secure credential provisioning and rotation, sandboxed runtimes, and audit events for safety-critical commands.
  • Strengthen automated testing across unit, contract, integration, simulation, and hardware-in-the-loop tests, with CI gates that catch regressions before release.
  • Build safer release workflows with signed packages, dependency scanning, bench smoke and soak tests, staged fleet rollouts, and reliable rollback.
  • Profile services and enforce practical CPU, memory, and latency budgets on target hardware.
  • Improve field diagnostics through structured logs, metrics, standardised health reporting, post-mission log capture, and actionable runbooks.
  • Document architectural decisions and service interfaces, communicate trade-offs clearly, and use AI coding tools to accelerate delivery without compromising quality.

What success looks like

  • Actively developed onboard services converge on a shared architecture, supported Python runtime, messaging model, and service template.
  • Engineers can take a new service from an empty repository to running on a bench vehicle in a day or less, with less duplicated infrastructure code.
  • Vehicle-to-backend contracts remain compatible as cloud and vehicle software evolve at different speeds, preventing integration failures in the field.
  • Authentication, least privilege, secret handling, runtime hardening, and supply-chain checks are consistently applied across the onboard stack.
  • Automated tests and bench validation catch defects before deployment, reducing issues discovered in the field.
  • Releases move predictably from bench validation to pilot vehicles and the wider fleet, with clear readiness gates and rollback procedures.
  • Services stay within resource budgets and remain diagnosable under hardware constraints and degraded connectivity.
  • Architecture documentation and runbooks help engineering, QA, and field teams integrate changes and resolve failures faster.

Required Qualifications

  • 7+ years of professional software engineering, delivering and operating production services.
  • Strong Python — experience designing and shipping production services, including asyncio, packaging, testing, and profiling; Node.js experience is a plus.
  • Web development and API experience — experience building and evolving HTTP/WebSocket APIs and message-based integrations with versioned contracts.
  • Development with AI tools — uses AI coding assistants/agents daily and can demonstrate how they apply these tools to design, implementation, review, and testing while maintaining high quality.
  • Security-first engineering — has applied authentication/authorisation, secrets management, least privilege, and secure update practices in a real system.
  • Testing and release discipline — has built test suites and CI gates for unit, integration, and contract testing, and shipped software through staged releases with rollback.
  • Experience with simulators or hardware-in-the-loop testing is a plus.
  • C++, Rust, or Go experience is a plus.
  • UxV, robotics, or embedded/edge Linux experience is a plus (e.g., MAVLink, GStreamer, serial/CAN devices, or systemd services on constrained hardware).

The nature of combat has changed. Tomorrow’s battlefield success depends on autonomy, speed, and adaptability. And UFORCE is ready. Are You?

Senior Software Engineer (Onboard Services) employer: UFORCE

UFORCE is an exceptional employer, offering a dynamic work culture that fosters innovation and collaboration in the defence technology sector. Employees benefit from comprehensive growth opportunities, hands-on experience with cutting-edge AI/ML tools, and the chance to contribute to impactful projects that enhance battlefield capabilities. Located in a vibrant area, UFORCE provides a supportive environment where your contributions are valued and recognised.

U

Contact Details:

UFORCE Recruitment Team

StudySmarter Expert Advice🤫

We think this is how you could land Senior Software Engineer (Onboard Services)

✨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 UFORCE 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 UFORCE.

✨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 UFORCE.

✨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 UFORCE 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 Senior Software Engineer (Onboard Services)

Python
Asyncio
Web Development
HTTP/WebSocket APIs
Message-based Integrations
AI Coding Tools
Authentication and Authorisation

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 UFORCE.

Craft a killer cover letter:Your cover letter is your chance to stand out—make it personal! Explain why you want to work at UFORCE 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 UFORCE

✨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 UFORCE 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.