← Back to jobs

Embedded Software Engineer

  • On-site
  • Sweden
  • English
  • Posted 11.09.26 15:22

About The Role

X Shore is rebuilding operations and product development under new ownership. We are now looking for an Embedded Software Engineer to build and maintain the software that runs on board our electric boats — the control units, the onboard gateway, and the CAN networks that decide how a boat starts, drives, charges, and reports back from the water.

This is a hands-on engineering role with real ownership. You will write the code, put it on the target, and prove that it works — on a bench you built, on a test rig, and on a boat. We care about what runs on the hardware, not what compiles on a laptop. The role is hybrid, with regular days on-site in Nyköping where the boats, the benches, and the production line are.

Role Purpose

Develop, test, and maintain the embedded software in X Shore boats — from firmware on onboard control units to services on the connected gateway — ensuring that what we ship is verified on target hardware and documented well enough to be serviced in the field.

Core Mission

Make onboard software something the rest of the company can rely on. Deliver software that behaves predictably on the water, fails in ways we can diagnose, and comes with the interface documentation and diagnostics that let production and service do their job without calling development.

Key Responsibilities

Develop and maintain embedded software in C for onboard control units, and in Python for tooling, diagnostics, and test automationDesign, implement, and debug CAN-based communication between onboard systems, including NMEA 2000 trafficTest your own code on target hardware — on the bench, on test rigs, and on boatsBuild the test setups, harnesses, and simple rigs needed to verify the code when no test environment existsTake part in bring-up of new hardware together with electrical engineeringDebug field issues together with service: read logs and CAN traces, reproduce the fault, and deliver a fixMaintain build, flashing, and provisioning tooling so releases are reproducible and traceableOwn the interface documentation for the systems you work on — message definitions, signals, parameters, and service proceduresTake part in code reviews and technical discussions across the software teamSupport production with end-of-line test and software procedures on the lineContribute to release decisions by stating clearly what has been verified, on which hardware, and what has notFeed lessons from delivered boats back into the software — better diagnostics, better logging, fewer repeat visits

Technical Depth — What We Need

X Shore boats run distributed embedded systems: bare-metal control units in C communicating over CAN, and a Linux-based onboard gateway handling logging and connectivity to shore. On top of that sits a delivered fleet across the Eelex 8000 and X Shore 1 platforms that has to keep working in the field. We are open on years of experience — we hire on demonstrated skill, and we expect you to go deep on the systems you own.

Write, debug, and maintain bare-metal C on onboard control unitsWork on the Linux side as well as the firmware side — services and tooling on the gateway, cross-compilation, and getting data off the boatUse Python effectively for test automation, diagnostics, log analysis, and internal toolingUse AI tools as a normal part of development — writing, reviewing, and analysing code, logs, and traces — while staying accountable for everything that ends up on the targetWork confidently with CAN: interpret traces, work with signal and message definitions, and separate a software fault from an electrical oneUse a debugger, a CAN interface, and basic lab instruments as ordinary parts of the working dayWork confidently in Git day to day, including branching and releases that can be traced back to sourcePut together a bench setup when the one you need does not exist — power, CAN, harnesses, and enough load or simulation to exercise the code before it reaches a boatContainerize builds and test environments with Docker so cross-compilation and verification are repeatable — strongly preferredJudge when a problem belongs in software and when it belongs in hardware, and say so with evidence

Qualifications

Required

Solid programming skills in C, applied to embedded targetsWorking knowledge of PythonComfortable working with AI tools in daily development, and able to review and verify what they produceConfident with Git in a team settingPractical experience with CAN bus — development, integration, or diagnosticsHands-on with hardware: flashing, probing, measuring, and building simple test setups without waiting for someone else to do itAble to read a schematic well enough to work with electrical engineers on bring-up and fault-findingFluent in English; Swedish is an advantageAble to be on-site in Nyköping on a regular basis

Nice to Have

Docker and containerized build or test environmentsExperience from boats, marine electronics, or NMEA 2000 — good to have, not a requirementEmbedded Linux: cross-compilation, system services, and Debian- or Yocto-based platformsMQTT, connected devices, or fleet-scale software updatesCyber security for embedded and connected products — secure boot, signed firmware updates, key and certificate handling; an area we will be building up over the coming yearBattery systems, electric drivetrains, or high-voltage environmentsAutomotive, off-highway, industrial vehicle, or other safety-relevant embedded backgroundCI/CD for embedded — automated build, flashing, and hardware-in-the-loop testExperience from a company in growth, transformation, or restart phase

Non-Negotiables

Tests on real hardware before calling something doneBuilds a test setup when one is needed rather than waiting for one to appearWrites code that someone else can read, review, and serviceSays early when something is unverified or unfinished, regardless of schedule pressureTakes ownership of a problem through to resolution — including the part that turns out not to be softwareDocuments interfaces and diagnostics as part of the work, not afterwardsComfortable working in an environment where processes are still being built

Personal Qualities

To succeed in this role we believe you

Are curious about how the whole boat works, not only your own modulePrefer measuring to guessing, and trust a trace over an assumptionAre pragmatic — you look for the simplest solution that holds up on open waterCommunicate clearly with people who are not software engineersAre comfortable in ambiguity and can create structure where little existsHave strong drive and see problems through to resolutionThrive in a small, fast-moving team where every person’s contribution is visible

Key Interfaces

Head of Software — direct reporting line; priorities, technical direction, and release decisionsElectrical engineering — hardware bring-up, schematics, CAN topology, and fault isolationProduction — end-of-line test, software provisioning, and support on the lineService and aftermarket — field faults, diagnostics, and software updates on delivered boatsComponent suppliers — interface specifications, firmware versions, and integration issues

What We Offer

At X Shore you get the chance to be part of an exciting journey with significant responsibility and real impact. Your code goes into boats that people take out on open water, and you will see the result of your work at the quay rather than in a backlog.

This is not a maintenance role. It is a building role — the software structure, test practices, and diagnostics you put in place now will shape how every X Shore boat behaves for years to come.