HALOS is an advanced body camera and cloud software scaleup, working with some of the biggest names in security, services, and law enforcement. At HALO, we're passionate about safety and innovation, constantly staying ahead of threats and reducing risk.Β
What sets HALOS apart is not just the cutting-edge technology we develop but the culture we've nurtured. Our team embodies openness, transparency, and a "one team" spirit. We're a group of passionate individuals, all working on exciting and impactful projects. Here, you'll find an environment that fosters collaboration, creativity, and a shared sense of purpose.
Weβre building a new firmware test automation function for our body-worn camera platform (embedded Linux). Youβll own the creation of a reliable, scalable daily regression system that pulls the latest firmware builds, deploys them to devices, runs automated suites (including video + streaming validation), and publishes clear results to the team.
This is a hands-on role combining automation, embedded systems, hardware-in-the-loop, video validation, and streaming.
What youβll work on
β’ Build the automation foundation
β’ Design and implement a maintainable test automation framework for embedded Linux firmware.
β’ Build the end-to-end daily pipeline: fetch latest firmware β upgrade/flash devices β execute suites β collect artifacts β publish reports.
β’ Make the system robust: retries, device recovery, quarantining flaky devices/tests, clear failure classification.
β’ Automate core camera workflows
β’ Recording start/stop behaviours, file integrity, metadata correctness, storage handling.
β’ Device lifecycle behaviours: reboot, crash recovery, factory reset paths, upgrade/rollback scenarios.
β’ Video validation automation (MP4, H.264/H.265)
β’ Automate decode integrity and structural checks (e.g., via FFmpeg/ffprobe).
β’ Validate stream properties (codec/profile, resolution, fps, bitrate), timestamp sanity, and dropped-frame indicators.
β’ Produce actionable artifacts (ffprobe JSON, short clips, logs) for triage.
β’ Streaming validation automation (RTSP + WebRTC)
β’ Automate connect/setup/teardown, stability, reconnection behaviour, and basic performance metrics.
β’ Capture and report streaming metrics (e.g., bitrate/FPS, jitter/RTT/packet loss where available) and attach useful artifacts (logs/stats, pcaps as needed).
β’ Stress, soak, performance & resilience testing
β’ Expand automation beyond functional tests to include repeatable, automatable stress and longevity coverage:
β’ Long-duration recording (soak), repeated record/stop cycles, rapid user-action loops
β’ Low storage / near-full disk behaviour, rollover, integrity after abrupt shutdown/power loss
β’ Battery edge cases (low battery recording), charging transitions, thermal-related scenarios (where observable)
β’ OTA/upgrade stress (repeat upgrade/downgrade, interrupted upgrade recovery)
β’ Network impairments for RTSP/WebRTC (loss/jitter/delay; bandwidth constraints) and reconnection loops
β’ Parallel execution across a fleet (multiple devices in CI daily)
β’ Define clear pass/fail criteria and trend metrics to reduce noise and catch regressions early.
β’ Lab / hardware-in-the-loop ownership
β’ Build and maintain test rigs and device control: provisioning, reset/recovery, power cycling, docking workflows.
β’ Scale execution across multiple devices running in parallel.
β’ Quality signal and collaboration
β’ Triage failures, isolate root cause, and write high-signal bug reports (repro steps,logs, clips, stats, traces).
β’ Partner with firmware engineers to improve testability and reduce flaky failures.
β’ Tooling & platform
β’ Source control/build environment: Bitbucket (Bitbucket repos; Bitbucket Pipelines or alternatives acceptable)
β’ Target platform: Embedded Linux
β’ Media + streaming: MP4 (H.264/H.265), RTSP, WebRTC
β’ This is a new function: youβll have freedom to propose and introduce tools, with an expectation of maintainability and measurable outcomes.
Your Experience
β’ Essential
β’ Strong experience building test automation for firmware/embedded systems (not only web/app UI).
β’ Strong scripting/programming (Python preferred; Bash/Go welcome).
β’ CI mindset: can build unattended daily execution with artifacts and easy triage.
β’ Comfort in Linux environments (logs, SSH, tooling, system debugging).
β’ Solid networking fundamentals (TCP/IP; practical debugging).
β’ Highly Valued
β’ Video validation using FFmpeg/ffprobe (metadata, decode checks, timing/PTS sanity, regression signatures).
β’ Streaming validation using GStreamer (RTSP; ideally WebRTC via webrtcbin or equivalent).
β’ Wireshark/tshark experience for network trace triage.
β’ WebRTC metrics understanding and automation (browser getStats() or non-browser approaches).
β’ Nice to Have
β’ Camera/video domain experience (body-worn, CCTV, dash cams).
β’ MP4 container tooling (e.g., MP4Box/GPAC) and compatibility pitfalls.
β’ Frame/content validation in automation (OpenCV/PyAV) for frozen/black frames, overlay checks.
β’ Network impairment testing
Benefits
Generous Annual Leave Allowance
Competitive salary and commission/bonus package
Learning and Development opportunities
Private Health Insurance
Cycle to work scheme
Home & Tech scheme
Regular company events and social initiatives
The HALOS Hiring Process
Hereβs what we expect the hiring process for this role to be, should all go well with your candidacy. This entire process is expected to take 1-3 weeks to complete and youβd be expected to start on a specific date.
Application
30 minute introductory meeting with the recruiting teamΒ
45 minute Interview with department hiring manager
30 minute meeting with wider department
Offer!
Diversity & Inclusion
Weβre an Equal Opportunity Employer and embrace a diversity of backgrounds, cultures, and perspectives. We do not discriminate on the basis of race, colour, gender, sexual orientation, gender identity or expression, religion, disability, national origin, protected veteran status, age, or any other status protected by applicable national, federal, state, or local law.