Senior Software Engineer – Embedded Systems
Farnborough area, UK
Full Time.
Travel required: <15%
Reporting to: Workstream Lead
Salary: Negotiable depending on experience.

The Role

We are looking for a Lead Embedded Systems Engineer to assist us with building, shaping and managing a team of Software Engineers responsible for the design and implementation of a command and control system for our in-house developed autonomous underwater drone.

BOSS Background

Boss  is an innovative tech start up with strong shareholders including BP and Woodside. Our vision is to disrupt the Marine Seismic industry through the development of a large-scale autonomous ocean bottom seismic data acquisition system, resulting in a step change reduction in the cost, time and HSSE risks required to acquire high quality OBS data. We help our clients to reduce their carbon emissions and their carbon footprint.

BOSS is developing a revolutionary, integrated seismic acquisition system based around long endurance, self-repositioning robotic ocean bottom nodes.

These nodes are capable of multiple autonomous re-positions to allow rolling of the receiver array without having to recover and redeploy nodes. This, in combination with automated handling systems, rapid deployment/recovery and intelligent system control, allows for optimisation of seismic acquisition survey operations to minimise duration and cost, and removes the requirement for ROV support.

Required Experience & Qualifications

  • Have a proactive attitude and a professional approach to enable working independently and meeting firm deadlines with confidence
  • Must have prior experience managing and/or mentoring a team
  • Demonstrate excellent written and verbal communication skills
  • Have a proven history of reading, interpreting and producing high-quality technical documentation such as diagrams and documentation for software design, project management tools or component/product datasheetsOR
  • Display technical aptitude and sound analytical, decision making, problem solving and project prioritisation skills
  • Possess a Computer Science / Software Engineering / Electronic Engineering / Mechatronic Engineering Degree or equivalent
  • Proven industry and leadership experience
  • C/C++ programming and embedded systems experience
  • Familiarity with common Version Control Systems e.g. Git

Desirable Qualifications & Experience

  • Experience with operating and developing for MOOS, ROS or RTOS
  • Experience with project management tools such as Jira and Jama
  • Familiarity or experience with designing and implementing embedded state machine firmware in Linux environments
  • Programming autonomous command & control systems


Bonus Value Skills:

  • Familiarity with typical data storage approaches or solutions in distributed applications (e.g. MySQL / PostgreSQL)
  • Full stack embedded system or IoT experience/experimentation, from baremetal firmware to the browser
  • Browser-based user interface and dashboard design and implementation using Angular / React / Grafana, etc.
  • Experience working with control systems and electronics including related tools. e.g. KiCAD / Eagle / Altium
  • Familiarity with Matlab Simulink

General responsibilities:

The role is broad – your team will be required to assist with researching and analysing design concepts, designing and implementing solutions and testing/evaluating the development of C++ embedded system firmware and software modules across multiple platforms and from multiple aspects. Any prior experience or experimentation with IoT development will be beneficial.

Development of the control system will be within an autonomous middleware framework, with some potential to re-direct your focus and specialise in your preferred skillset as the project progresses.

The position may present opportunities for some domestic and international travel, both overseas within the company or meeting with stakeholders and to support testing and trials throughout project phases.

Specific responsibilities include, to lead the following project components:

  • Independently manage a small local team tasked with:
  • Designing and implementing new C++ software modules and interfaces
  • Maintaining and improving existing modules across a multi-platform embedded systems project
  • Remotely collaborate with the software development workstream
  • Co-ordinate deploying, testing and fault-finding the software stack during project milestone rollouts and testing phases including testing of prototypes in an offshore environment


Primary Responsibilities:

  • Prioritise project objectives of your team and manage work tasks and time independently to achieve firm deadlines
  • Participate in analysing, designing, documenting, implementing, testing, deploying and maintaining systems and producing quality code applying an Agile-inspired developmental approach